From 0631370009cfec921c1d96e71d07ee134e2f0fdd Mon Sep 17 00:00:00 2001 From: Thomas Fischer <thomas.fischer@ufz.de> Date: Mon, 4 Jun 2018 07:52:17 +0200 Subject: [PATCH] [PL] Implementation of createConstraintDirichletBC. --- ProcessLib/BoundaryCondition/BoundaryCondition.cpp | 14 ++++++++++++++ ProcessLib/BoundaryCondition/BoundaryCondition.h | 10 ++++++++++ 2 files changed, 24 insertions(+) diff --git a/ProcessLib/BoundaryCondition/BoundaryCondition.cpp b/ProcessLib/BoundaryCondition/BoundaryCondition.cpp index ba1385d9ef2..a30b6d7ddc2 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 ef2638956fc..762b0b19b1d 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, -- GitLab