Loading [MathJax]/jax/input/TeX/config.js
OGS
SolutionDependentDirichletBoundaryCondition.h
Go to the documentation of this file.
1
11#pragma once
12
13#include "BoundaryCondition.h"
16
17namespace ProcessLib
18{
28 : public BoundaryCondition
29{
30public:
32 std::string property_name,
33 ParameterLib::Parameter<double> const& parameter,
34 MeshLib::Mesh const& bc_mesh,
35 NumLib::LocalToGlobalIndexMap const& dof_table_bulk,
36 int const variable_id, int const component_id);
37
39 double const t, GlobalVector const& x,
40 NumLib::IndexValueVector<GlobalIndexType>& bc_values) const override;
41
53 void postTimestep(double const /*t*/,
54 std::vector<GlobalVector*> const& x,
55 int const process_id) override;
56
57private:
59 int const _variable_id;
60 int const _component_id;
61 std::unique_ptr<NumLib::LocalToGlobalIndexMap const> _dof_table_boundary;
62 std::unique_ptr<ParameterLib::MeshNodeParameter<double>> _parameter;
63 // avoid repetitively retrieving the desired property from the boundary mesh
64 // over time steps
66};
67
68std::unique_ptr<SolutionDependentDirichletBoundaryCondition>
70 BaseLib::ConfigTree const& config, MeshLib::Mesh const& bc_mesh,
71 NumLib::LocalToGlobalIndexMap const& dof_table_bulk, int const variable_id,
72 int const component_id,
73 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const&
74 parameters);
75
76} // 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)