OGS
SolutionDependentDirichletBoundaryCondition.h
Go to the documentation of this file.
1
11#pragma once
12
13#include "BoundaryCondition.h"
15
16namespace ProcessLib
17{
27 : public BoundaryCondition
28{
29public:
31 std::string property_name,
32 ParameterLib::Parameter<double> const& parameter,
33 MeshLib::Mesh const& bc_mesh,
34 NumLib::LocalToGlobalIndexMap const& dof_table_bulk,
35 int const variable_id, int const component_id);
36
38 double const t, GlobalVector const& x,
39 NumLib::IndexValueVector<GlobalIndexType>& bc_values) const override;
40
52 void postTimestep(double const /*t*/,
53 std::vector<GlobalVector*> const& x,
54 int const process_id) override;
55
56private:
58 int const _variable_id;
59 int const _component_id;
60 std::unique_ptr<NumLib::LocalToGlobalIndexMap const> _dof_table_boundary;
61 std::unique_ptr<ParameterLib::MeshNodeParameter<double>> _parameter;
62 // avoid repetitively retrieving the desired property from the boundary mesh
63 // over time steps
65};
66
67std::unique_ptr<SolutionDependentDirichletBoundaryCondition>
69 BaseLib::ConfigTree const& config, MeshLib::Mesh const& bc_mesh,
70 NumLib::LocalToGlobalIndexMap const& dof_table_bulk, int const variable_id,
71 int const component_id,
72 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const&
73 parameters);
74
75} // namespace ProcessLib
Global vector based on Eigen vector.
Definition EigenVector.h:25
void getEssentialBCValues(double const t, GlobalVector const &x, NumLib::IndexValueVector< GlobalIndexType > &bc_values) const override
Writes the values of essential BCs to bc_values.
std::unique_ptr< NumLib::LocalToGlobalIndexMap const > _dof_table_boundary
std::unique_ptr< ParameterLib::MeshNodeParameter< double > > _parameter
SolutionDependentDirichletBoundaryCondition(std::string property_name, ParameterLib::Parameter< double > const &parameter, MeshLib::Mesh const &bc_mesh, NumLib::LocalToGlobalIndexMap const &dof_table_bulk, int const variable_id, int const component_id)
void postTimestep(double const, std::vector< GlobalVector * > const &x, int const process_id) override
std::unique_ptr< SolutionDependentDirichletBoundaryCondition > createSolutionDependentDirichletBoundaryCondition(BaseLib::ConfigTree const &config, MeshLib::Mesh const &bc_mesh, NumLib::LocalToGlobalIndexMap const &dof_table_bulk, int const variable_id, int const component_id, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const &parameters)