OGS
VolumetricSourceTerm.cpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
5
7
8namespace ProcessLib
9{
11 unsigned const bulk_mesh_dimension, MeshLib::Mesh const& source_term_mesh,
12 std::unique_ptr<NumLib::LocalToGlobalIndexMap> source_term_dof_table,
13 unsigned const integration_order, unsigned const shapefunction_order,
14 ParameterLib::Parameter<double> const& source_term_parameter)
15 : SourceTerm(std::move(source_term_dof_table)),
16 _source_term_parameter(source_term_parameter)
17{
20 bulk_mesh_dimension, source_term_mesh.getElements(),
21 *_source_term_dof_table, shapefunction_order, _local_assemblers,
22 NumLib::IntegrationOrder{integration_order},
23 source_term_mesh.isAxiallySymmetric(), _source_term_parameter);
24}
25
26void VolumetricSourceTerm::integrate(const double t, GlobalVector const& /*x*/,
27 GlobalVector& b,
28 GlobalMatrix* /*jac*/) const
29{
30 DBUG("Assemble VolumetricSourceTerm.");
31
32 // Call global assembler for each local assembly item.
36}
37
38} // namespace ProcessLib
MathLib::EigenMatrix GlobalMatrix
MathLib::EigenVector GlobalVector
void DBUG(fmt::format_string< Args... > fmt, Args &&... args)
Definition Logging.h:22
bool isAxiallySymmetric() const
Definition Mesh.h:128
std::vector< Element * > const & getElements() const
Get the element-vector for the mesh.
Definition Mesh.h:100
SourceTerm(std::unique_ptr< NumLib::LocalToGlobalIndexMap > source_term_dof_table)
std::unique_ptr< NumLib::LocalToGlobalIndexMap > const _source_term_dof_table
virtual void integrate(std::size_t const id, NumLib::LocalToGlobalIndexMap const &source_term_dof_table, double const t, GlobalVector &b)=0
ParameterLib::Parameter< double > const & _source_term_parameter
VolumetricSourceTerm(unsigned const bulk_mesh_dimension, MeshLib::Mesh const &source_term_mesh, std::unique_ptr< NumLib::LocalToGlobalIndexMap > source_term_dof_table, unsigned const integration_order, unsigned const shapefunction_order, ParameterLib::Parameter< double > const &source_term_parameter)
void integrate(const double t, GlobalVector const &x, GlobalVector &b, GlobalMatrix *jac) const override
std::vector< std::unique_ptr< VolumetricSourceTermLocalAssemblerInterface > > _local_assemblers
void createLocalAssemblers(const unsigned dimension, std::vector< MeshLib::Element * > const &mesh_elements, NumLib::LocalToGlobalIndexMap const &dof_table, const unsigned shapefunction_order, std::vector< std::unique_ptr< LocalAssemblerInterface > > &local_assemblers, NumLib::IntegrationOrder const integration_order, ExtraCtorArgs &&... extra_ctor_args)
static void executeMemberOnDereferenced(Method method, Container const &container, Args &&... args)