OGS
ProcessLib::SourceTermCollection Class Referencefinal

Detailed Description

Definition at line 11 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 14 of file SourceTermCollection.h.

17 : _parameters(parameters)
18 {
19 }
std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const & _parameters

References _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 10 of file SourceTermCollection.cpp.

16{
17 for (int variable_id = 0;
18 variable_id < static_cast<int>(process_variables.size());
19 ++variable_id)
20 {
21 ProcessVariable& pv = process_variables[variable_id];
22 auto sts =
23 pv.createSourceTerms(dof_table, variable_id, integration_order,
24 _parameters, process_variables, bulk_mesh);
25
26 std::move(sts.begin(), sts.end(), std::back_inserter(_source_terms));
27 }
28}
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 30 of file SourceTermCollection.cpp.

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

References _source_terms.

Member Data Documentation

◆ _parameters

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

◆ _source_terms

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

Definition at line 32 of file SourceTermCollection.h.

Referenced by addSourceTermsForProcessVariables(), and integrate().


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