Loading [MathJax]/extensions/tex2jax.js
OGS
ProcessLib::SourceTermCollection Class Referencefinal

Detailed Description

Definition at line 18 of file SourceTermCollection.h.

#include <SourceTermCollection.h>

Public Member Functions

 SourceTermCollection (std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const &parameters)
 
void integrate (const double t, GlobalVector const &x, GlobalVector &b, GlobalMatrix *jac) const
 
void addSourceTermsForProcessVariables (std::vector< std::reference_wrapper< ProcessVariable > > const &process_variables, NumLib::LocalToGlobalIndexMap const &dof_table, unsigned const integration_order, const MeshLib::Mesh &bulk_mesh)
 

Private Attributes

std::vector< std::unique_ptr< SourceTermBase > > _source_terms
 
std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const & _parameters
 

Constructor & Destructor Documentation

◆ SourceTermCollection()

ProcessLib::SourceTermCollection::SourceTermCollection ( std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const & parameters)
inlineexplicit

Definition at line 21 of file SourceTermCollection.h.

24 : _parameters(parameters)
25 {
26 }
std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const & _parameters

Member Function Documentation

◆ addSourceTermsForProcessVariables()

void ProcessLib::SourceTermCollection::addSourceTermsForProcessVariables ( std::vector< std::reference_wrapper< ProcessVariable > > const & process_variables,
NumLib::LocalToGlobalIndexMap const & dof_table,
unsigned const integration_order,
const MeshLib::Mesh & bulk_mesh )

Definition at line 17 of file SourceTermCollection.cpp.

23{
24 for (int variable_id = 0;
25 variable_id < static_cast<int>(process_variables.size());
26 ++variable_id)
27 {
28 ProcessVariable& pv = process_variables[variable_id];
29 auto sts =
30 pv.createSourceTerms(dof_table, variable_id, integration_order,
31 _parameters, process_variables, bulk_mesh);
32
33 std::move(sts.begin(), sts.end(), std::back_inserter(_source_terms));
34 }
35}
std::vector< std::unique_ptr< SourceTermBase > > _source_terms

References _parameters, _source_terms, and ProcessLib::ProcessVariable::createSourceTerms().

◆ integrate()

void ProcessLib::SourceTermCollection::integrate ( const double t,
GlobalVector const & x,
GlobalVector & b,
GlobalMatrix * jac ) const

Definition at line 37 of file SourceTermCollection.cpp.

39{
40 // For parallel computing with DDC, a partition may not have source term
41 // but a nullptr is assigned to its element in _source_terms.
42 auto non_nullptr = [](std::unique_ptr<SourceTermBase> const& st)
43 { return st != nullptr; };
44
45 for (auto const& st : _source_terms | ranges::views::filter(non_nullptr))
46 {
47 st->integrate(t, x, b, jac);
48 }
49}

References _source_terms.

Member Data Documentation

◆ _parameters

std::vector<std::unique_ptr<ParameterLib::ParameterBase> > const& ProcessLib::SourceTermCollection::_parameters
private

Definition at line 41 of file SourceTermCollection.h.

Referenced by addSourceTermsForProcessVariables().

◆ _source_terms

std::vector<std::unique_ptr<SourceTermBase> > ProcessLib::SourceTermCollection::_source_terms
private

Definition at line 39 of file SourceTermCollection.h.

Referenced by addSourceTermsForProcessVariables(), and integrate().


The documentation for this class was generated from the following files: