13#include <range/v3/view/filter.hpp>
18 std::vector<std::reference_wrapper<ProcessVariable>>
const&
21 unsigned const integration_order,
24 for (
int variable_id = 0;
25 variable_id < static_cast<int>(process_variables.size());
33 std::move(sts.begin(), sts.end(), std::back_inserter(
_source_terms));
42 auto non_nullptr = [](std::unique_ptr<SourceTermBase>
const& st)
43 {
return st !=
nullptr; };
45 for (
auto const& st :
_source_terms | ranges::views::filter(non_nullptr))
47 st->integrate(t, x, b, jac);
Global vector based on Eigen vector.
std::vector< std::unique_ptr< SourceTermBase > > createSourceTerms(const NumLib::LocalToGlobalIndexMap &dof_table, const int variable_id, unsigned const integration_order, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, std::vector< std::reference_wrapper< ProcessVariable > > const &all_process_variables_for_this_process, const MeshLib::Mesh &bulk_mesh)
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)
std::vector< std::unique_ptr< SourceTermBase > > _source_terms
std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const & _parameters