OGS
PrimaryVariableConstraintDirichletBoundaryCondition.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 <string>
8
9#include "BoundaryCondition.h"
11
12namespace BaseLib
13{
14class ConfigTree;
15}
16namespace ParameterLib
17{
18template <typename T>
19struct Parameter;
20}
21
22namespace ProcessLib
23{
30
39 : public BoundaryCondition
40{
41public:
43 ParameterLib::Parameter<double> const& parameter,
44 MeshLib::Mesh const& bc_mesh,
45 NumLib::LocalToGlobalIndexMap const& dof_table_bulk,
46 int const variable_id, int const component_id,
47 ParameterLib::Parameter<double> const& threshold_parameter,
48 bool const less);
49
51 const double t, GlobalVector const& x,
52 NumLib::IndexValueVector<GlobalIndexType>& bc_values) const override;
53
54private:
57
59 std::unique_ptr<NumLib::LocalToGlobalIndexMap const> _dof_table_boundary;
60 int const _variable_id;
61 int const _component_id;
62
66
75 bool const _less;
76};
77
80 BaseLib::ConfigTree const& config);
81
82std::unique_ptr<PrimaryVariableConstraintDirichletBoundaryCondition>
85 MeshLib::Mesh const& bc_mesh,
86 NumLib::LocalToGlobalIndexMap const& dof_table_bulk, int const variable_id,
87 int const component_id,
88 const std::vector<std::unique_ptr<ParameterLib::ParameterBase>>&
89 parameters);
90
91} // namespace ProcessLib
MathLib::EigenVector GlobalVector
void getEssentialBCValues(const double t, GlobalVector const &x, NumLib::IndexValueVector< GlobalIndexType > &bc_values) const override
Writes the values of essential BCs to bc_values.
PrimaryVariableConstraintDirichletBoundaryCondition(ParameterLib::Parameter< double > const &parameter, MeshLib::Mesh const &bc_mesh, NumLib::LocalToGlobalIndexMap const &dof_table_bulk, int const variable_id, int const component_id, ParameterLib::Parameter< double > const &threshold_parameter, bool const less)
ParameterLib::Parameter< double > const & _parameter
< parameter that defines the Dirirchlet-type condition values
PrimaryVariableConstraintDirichletBoundaryConditionConfig parsePrimaryVariableConstraintDirichletBoundaryCondition(BaseLib::ConfigTree const &config)
std::unique_ptr< PrimaryVariableConstraintDirichletBoundaryCondition > createPrimaryVariableConstraintDirichletBoundaryCondition(PrimaryVariableConstraintDirichletBoundaryConditionConfig const &config, MeshLib::Mesh const &bc_mesh, NumLib::LocalToGlobalIndexMap const &dof_table_bulk, int const variable_id, int const component_id, const std::vector< std::unique_ptr< ParameterLib::ParameterBase > > &parameters)