diff --git a/ProcessLib/BoundaryCondition/BoundaryCondition.cpp b/ProcessLib/BoundaryCondition/BoundaryCondition.cpp index ba1385d9ef2619cb1b5500c2ca58852536de2edf..a30b6d7ddc2752b52fb204a4de23b3321b4a68e2 100644 --- a/ProcessLib/BoundaryCondition/BoundaryCondition.cpp +++ b/ProcessLib/BoundaryCondition/BoundaryCondition.cpp @@ -10,6 +10,7 @@ #include "BoundaryCondition.h" #include "BoundaryConditionConfig.h" #include "DirichletBoundaryCondition.h" +#include "ConstraintDirichletBoundaryCondition.h" #include "NeumannBoundaryCondition.h" #include "NonuniformDirichletBoundaryCondition.h" #include "NonuniformNeumannBoundaryCondition.h" @@ -90,6 +91,19 @@ BoundaryConditionBuilder::createDirichletBoundaryCondition( *config.component_id, parameters); } +std::unique_ptr<BoundaryCondition> +BoundaryConditionBuilder::createConstraintDirichletBoundaryCondition( + const BoundaryConditionConfig& config, + const NumLib::LocalToGlobalIndexMap& dof_table, const MeshLib::Mesh& mesh, + const int variable_id, const unsigned integration_order, + const std::vector<std::unique_ptr<ProcessLib::ParameterBase>>& parameters, + Process const& process) +{ + return ProcessLib::createConstraintDirichletBoundaryCondition( + config.config, config.mesh, dof_table, variable_id, integration_order, + *config.component_id, parameters, process); +} + std::unique_ptr<BoundaryCondition> BoundaryConditionBuilder::createNeumannBoundaryCondition( const BoundaryConditionConfig& config, diff --git a/ProcessLib/BoundaryCondition/BoundaryCondition.h b/ProcessLib/BoundaryCondition/BoundaryCondition.h index ef2638956fccab40080a66fb3c084af439628735..762b0b19b1dc83283d6e97117da7256b0f3f9de4 100644 --- a/ProcessLib/BoundaryCondition/BoundaryCondition.h +++ b/ProcessLib/BoundaryCondition/BoundaryCondition.h @@ -81,6 +81,16 @@ protected: const std::vector<std::unique_ptr<ProcessLib::ParameterBase>>& parameters); + virtual std::unique_ptr<BoundaryCondition> + createConstraintDirichletBoundaryCondition( + const BoundaryConditionConfig& config, + const NumLib::LocalToGlobalIndexMap& dof_table, + const MeshLib::Mesh& mesh, const int variable_id, + const unsigned integration_order, + const std::vector<std::unique_ptr<ProcessLib::ParameterBase>>& + parameters, + Process const& process); + virtual std::unique_ptr<BoundaryCondition> createNeumannBoundaryCondition( const BoundaryConditionConfig& config, const NumLib::LocalToGlobalIndexMap& dof_table,