OGS
SolutionDependentDirichletBoundaryCondition.h
Go to the documentation of this file.
1 
11 #pragma once
12 
13 #include "BoundaryCondition.h"
15 
16 namespace ProcessLib
17 {
27  : public BoundaryCondition
28 {
29 public:
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 
56 private:
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 
67 std::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:26
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)