OGS
VolumetricSourceTerm.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#pragma once
5
6#include <memory>
7#include <vector>
8
9#include "SourceTerm.h"
11
12namespace ProcessLib
13{
14class VolumetricSourceTerm final : public SourceTerm
15{
16public:
18 unsigned const bulk_mesh_dimension,
19 MeshLib::Mesh const& source_term_mesh,
20 std::unique_ptr<NumLib::LocalToGlobalIndexMap> source_term_dof_table,
21 unsigned const integration_order, unsigned const shapefunction_order,
22 ParameterLib::Parameter<double> const& source_term_parameter);
23
24 void integrate(const double t, GlobalVector const& x, GlobalVector& b,
25 GlobalMatrix* jac) const override;
26
27private:
29 std::vector<std::unique_ptr<VolumetricSourceTermLocalAssemblerInterface>>
31};
32
33} // namespace ProcessLib
MathLib::EigenMatrix GlobalMatrix
MathLib::EigenVector GlobalVector
SourceTerm(std::unique_ptr< NumLib::LocalToGlobalIndexMap > source_term_dof_table)
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