From 852ddfc840a01630ae9f2c300f81475d83fc9cae Mon Sep 17 00:00:00 2001 From: Dmitri Naumov <github@naumov.de> Date: Thu, 28 Sep 2017 08:55:50 +0200 Subject: [PATCH] [PL] BCs: Rename PressureBC to NormalTractionBC. --- .../BoundaryCondition/BoundaryCondition.cpp | 24 ++++++----- .../BoundaryCondition/BoundaryCondition.h | 3 +- .../PressureBoundaryCondition-impl.h | 42 ++++++++++--------- .../PressureBoundaryCondition.h | 28 ++++++------- .../PressureBoundaryConditionLocalAssembler.h | 23 +++++----- 5 files changed, 64 insertions(+), 56 deletions(-) diff --git a/ProcessLib/BoundaryCondition/BoundaryCondition.cpp b/ProcessLib/BoundaryCondition/BoundaryCondition.cpp index 5ad6afe6310..b983c11d24f 100644 --- a/ProcessLib/BoundaryCondition/BoundaryCondition.cpp +++ b/ProcessLib/BoundaryCondition/BoundaryCondition.cpp @@ -17,7 +17,7 @@ #include "NeumannBoundaryCondition.h" #include "NonuniformDirichletBoundaryCondition.h" #include "NonuniformNeumannBoundaryCondition.h" -#include "PressureBoundaryCondition.h" +#include "NormalTractionBoundaryCondition.h" #include "RobinBoundaryCondition.h" namespace ProcessLib @@ -66,11 +66,11 @@ BoundaryConditionBuilder::createBoundaryCondition( // // Special boundary conditions // - if (type == "Pressure") + if (type == "NormalTraction") { - return createPressureBoundaryCondition(config, dof_table, mesh, - variable_id, integration_order, - shapefunction_order, parameters); + return createNormalTractionBoundaryCondition( + config, dof_table, mesh, variable_id, integration_order, + shapefunction_order, parameters); } OGS_FATAL("Unknown boundary condition type: `%s'.", type.c_str()); } @@ -204,7 +204,7 @@ BoundaryConditionBuilder::createNonuniformNeumannBoundaryCondition( } std::unique_ptr<BoundaryCondition> -BoundaryConditionBuilder::createPressureBoundaryCondition( +BoundaryConditionBuilder::createNormalTractionBoundaryCondition( const BoundaryConditionConfig& config, const NumLib::LocalToGlobalIndexMap& dof_table, const MeshLib::Mesh& mesh, const int variable_id, const unsigned integration_order, @@ -221,11 +221,13 @@ BoundaryConditionBuilder::createPressureBoundaryCondition( MeshGeoToolsLib::BoundaryElementsSearcher boundary_element_searcher( mesh, mesh_node_searcher); - return ProcessLib::PressureBoundaryCondition::createPressureBoundaryCondition( - config.config, - getClonedElements(boundary_element_searcher, config.geometry), - dof_table, variable_id, mesh.isAxiallySymmetric(), integration_order, - shapefunction_order, mesh.getDimension(), parameters); + return ProcessLib::NormalTractionBoundaryCondition:: + createNormalTractionBoundaryCondition( + config.config, + getClonedElements(boundary_element_searcher, config.geometry), + dof_table, variable_id, mesh.isAxiallySymmetric(), + integration_order, shapefunction_order, mesh.getDimension(), + parameters); } std::vector<MeshLib::Element*> BoundaryConditionBuilder::getClonedElements( diff --git a/ProcessLib/BoundaryCondition/BoundaryCondition.h b/ProcessLib/BoundaryCondition/BoundaryCondition.h index 08c89fb5386..b0b8b4f49c2 100644 --- a/ProcessLib/BoundaryCondition/BoundaryCondition.h +++ b/ProcessLib/BoundaryCondition/BoundaryCondition.h @@ -118,7 +118,8 @@ protected: const MeshLib::Mesh& mesh, const int variable_id, const unsigned integration_order, const unsigned shapefunction_order); - virtual std::unique_ptr<BoundaryCondition> createPressureBoundaryCondition( + virtual std::unique_ptr<BoundaryCondition> + createNormalTractionBoundaryCondition( const BoundaryConditionConfig& config, const NumLib::LocalToGlobalIndexMap& dof_table, const MeshLib::Mesh& mesh, const int variable_id, diff --git a/ProcessLib/BoundaryCondition/PressureBoundaryCondition-impl.h b/ProcessLib/BoundaryCondition/PressureBoundaryCondition-impl.h index d1b62717f20..1c8176e8575 100644 --- a/ProcessLib/BoundaryCondition/PressureBoundaryCondition-impl.h +++ b/ProcessLib/BoundaryCondition/PressureBoundaryCondition-impl.h @@ -14,16 +14,16 @@ #include "ProcessLib/Utils/CreateLocalAssemblers.h" #include "ProcessLib/Utils/ProcessUtils.h" -#include "PressureBoundaryConditionLocalAssembler.h" +#include "NormalTractionBoundaryConditionLocalAssembler.h" namespace ProcessLib { -namespace PressureBoundaryCondition +namespace NormalTractionBoundaryCondition { template <template <typename, typename, unsigned> class LocalAssemblerImplementation> -PressureBoundaryCondition<LocalAssemblerImplementation>:: - PressureBoundaryCondition( +NormalTractionBoundaryCondition<LocalAssemblerImplementation>:: + NormalTractionBoundaryCondition( bool const is_axially_symmetric, unsigned const integration_order, unsigned const shapefunction_order, NumLib::LocalToGlobalIndexMap const& dof_table_bulk, @@ -67,8 +67,8 @@ PressureBoundaryCondition<LocalAssemblerImplementation>:: template <template <typename, typename, unsigned> class LocalAssemblerImplementation> -PressureBoundaryCondition< - LocalAssemblerImplementation>::~PressureBoundaryCondition() +NormalTractionBoundaryCondition< + LocalAssemblerImplementation>::~NormalTractionBoundaryCondition() { for (auto e : _elements) delete e; @@ -76,17 +76,20 @@ PressureBoundaryCondition< template <template <typename, typename, unsigned> class LocalAssemblerImplementation> -void PressureBoundaryCondition<LocalAssemblerImplementation>::applyNaturalBC( - const double t, const GlobalVector& x, GlobalMatrix& K, GlobalVector& b) +void NormalTractionBoundaryCondition< + LocalAssemblerImplementation>::applyNaturalBC(const double t, + const GlobalVector& x, + GlobalMatrix& K, + GlobalVector& b) { GlobalExecutor::executeMemberOnDereferenced( - &PressureBoundaryConditionLocalAssemblerInterface::assemble, + &NormalTractionBoundaryConditionLocalAssemblerInterface::assemble, _local_assemblers, *_dof_table_boundary, t, x, K, b); } -std::unique_ptr< - PressureBoundaryCondition<PressureBoundaryConditionLocalAssembler>> -createPressureBoundaryCondition( +std::unique_ptr<NormalTractionBoundaryCondition< + NormalTractionBoundaryConditionLocalAssembler>> +createNormalTractionBoundaryCondition( BaseLib::ConfigTree const& config, std::vector<MeshLib::Element*>&& elements, NumLib::LocalToGlobalIndexMap const& dof_table, int const variable_id, @@ -94,22 +97,23 @@ createPressureBoundaryCondition( unsigned const shapefunction_order, unsigned const global_dim, std::vector<std::unique_ptr<ParameterBase>> const& parameters) { - DBUG("Constructing PressureBoundaryCondition from config."); + DBUG("Constructing NormalTractionBoundaryCondition from config."); //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions__boundary_condition__type} - config.checkConfigParameter("type", "Pressure"); + config.checkConfigParameter("type", "NormalTraction"); auto const parameter_name = - //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions__boundary_condition__Pressure__parameter} + //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions__boundary_condition__NormalTraction__parameter} config.getConfigParameter<std::string>("parameter"); DBUG("Using parameter %s", parameter_name.c_str()); auto const& pressure = findParameter<double>(parameter_name, parameters, 1); - return std::unique_ptr< - PressureBoundaryCondition<PressureBoundaryConditionLocalAssembler>>{ - new PressureBoundaryCondition<PressureBoundaryConditionLocalAssembler>{ + return std::unique_ptr<NormalTractionBoundaryCondition< + NormalTractionBoundaryConditionLocalAssembler>>{ + new NormalTractionBoundaryCondition< + NormalTractionBoundaryConditionLocalAssembler>{ is_axially_symmetric, integration_order, shapefunction_order, dof_table, variable_id, global_dim, std::move(elements), pressure}}; } -} // namespace PressureBoundaryCondition +} // namespace NormalTractionBoundaryCondition } // ProcessLib diff --git a/ProcessLib/BoundaryCondition/PressureBoundaryCondition.h b/ProcessLib/BoundaryCondition/PressureBoundaryCondition.h index 818b0df12c9..601509a20a7 100644 --- a/ProcessLib/BoundaryCondition/PressureBoundaryCondition.h +++ b/ProcessLib/BoundaryCondition/PressureBoundaryCondition.h @@ -10,17 +10,17 @@ #pragma once -#include "MeshLib/MeshSubset.h" #include "BoundaryCondition.h" -#include "PressureBoundaryConditionLocalAssembler.h" +#include "MeshLib/MeshSubset.h" +#include "NormalTractionBoundaryConditionLocalAssembler.h" namespace ProcessLib { -namespace PressureBoundaryCondition +namespace NormalTractionBoundaryCondition { -class PressureBoundaryConditionLocalAssemblerInterface; +class NormalTractionBoundaryConditionLocalAssemblerInterface; -/// The pressure boundary condition is a special type of Neumann boundary +/// The normal traction boundary condition is a special type of Neumann boundary /// condition where the given value is applied in the direction of the element's /// normal vector \f$\mathbf{n}\f$: /// \f[ @@ -29,13 +29,13 @@ class PressureBoundaryConditionLocalAssemblerInterface; /// where \f$p\f$ is the value on the boundary given by the parameter tag. template <template <typename, typename, unsigned> class LocalAssemblerImplementation> -class PressureBoundaryCondition final : public BoundaryCondition +class NormalTractionBoundaryCondition final : public BoundaryCondition { public: /// Create a boundary condition process from given config, /// DOF-table, and a mesh subset for a given variable and its component. /// A local DOF-table, a subset of the given one, is constructed. - PressureBoundaryCondition( + NormalTractionBoundaryCondition( bool const is_axially_symmetric, unsigned const integration_order, unsigned const shapefunction_order, NumLib::LocalToGlobalIndexMap const& dof_table_bulk, @@ -43,7 +43,7 @@ public: std::vector<MeshLib::Element*>&& elements, Parameter<double> const& pressure); - ~PressureBoundaryCondition() override; + ~NormalTractionBoundaryCondition() override; /// Calls local assemblers which calculate their contributions to the global /// matrix and the right-hand-side. @@ -68,15 +68,15 @@ private: /// Local assemblers for each element of #_elements. std::vector< - std::unique_ptr<PressureBoundaryConditionLocalAssemblerInterface>> + std::unique_ptr<NormalTractionBoundaryConditionLocalAssemblerInterface>> _local_assemblers; Parameter<double> const& _pressure; }; -std::unique_ptr< - PressureBoundaryCondition<PressureBoundaryConditionLocalAssembler>> -createPressureBoundaryCondition( +std::unique_ptr<NormalTractionBoundaryCondition< + NormalTractionBoundaryConditionLocalAssembler>> +createNormalTractionBoundaryCondition( BaseLib::ConfigTree const& config, std::vector<MeshLib::Element*>&& elements, NumLib::LocalToGlobalIndexMap const& dof_table, int const variable_id, @@ -84,7 +84,7 @@ createPressureBoundaryCondition( unsigned const shapefunction_order, unsigned const global_dim, std::vector<std::unique_ptr<ParameterBase>> const& parameters); -} // namespace PressureBoundaryCondition +} // namespace NormalTractionBoundaryCondition } // namespace ProcessLib -#include "PressureBoundaryCondition-impl.h" +#include "NormalTractionBoundaryCondition-impl.h" diff --git a/ProcessLib/BoundaryCondition/PressureBoundaryConditionLocalAssembler.h b/ProcessLib/BoundaryCondition/PressureBoundaryConditionLocalAssembler.h index 59cdb469afb..3d423ec6eca 100644 --- a/ProcessLib/BoundaryCondition/PressureBoundaryConditionLocalAssembler.h +++ b/ProcessLib/BoundaryCondition/PressureBoundaryConditionLocalAssembler.h @@ -18,7 +18,7 @@ namespace ProcessLib { -namespace PressureBoundaryCondition +namespace NormalTractionBoundaryCondition { template <typename ShapeMatricesTypeDisplacement, int GlobalDim, int NPoints> struct IntegrationPointData final @@ -38,20 +38,20 @@ struct IntegrationPointData final double const integration_weight; }; -class PressureBoundaryConditionLocalAssemblerInterface +class NormalTractionBoundaryConditionLocalAssemblerInterface { public: virtual void assemble( std::size_t const id, NumLib::LocalToGlobalIndexMap const& dof_table_boundary, double const t, const GlobalVector& /*x*/, GlobalMatrix& /*K*/, GlobalVector& b) = 0; - virtual ~PressureBoundaryConditionLocalAssemblerInterface() = default; + virtual ~NormalTractionBoundaryConditionLocalAssemblerInterface() = default; }; template <typename ShapeFunctionDisplacement, typename IntegrationMethod, unsigned GlobalDim> -class PressureBoundaryConditionLocalAssembler final - : public PressureBoundaryConditionLocalAssemblerInterface +class NormalTractionBoundaryConditionLocalAssembler final + : public NormalTractionBoundaryConditionLocalAssemblerInterface { public: using ShapeMatricesTypeDisplacement = @@ -60,11 +60,12 @@ public: typename ShapeMatrixPolicyType<ShapeFunctionDisplacement, GlobalDim>::GlobalDimVectorType; - PressureBoundaryConditionLocalAssembler(MeshLib::Element const& e, - std::size_t const local_matrix_size, - bool is_axially_symmetric, - unsigned const integration_order, - Parameter<double> const& pressure) + NormalTractionBoundaryConditionLocalAssembler( + MeshLib::Element const& e, + std::size_t const local_matrix_size, + bool is_axially_symmetric, + unsigned const integration_order, + Parameter<double> const& pressure) : _integration_method(integration_order), _pressure(pressure) { _local_rhs.setZero(local_matrix_size); @@ -170,5 +171,5 @@ public: EIGEN_MAKE_ALIGNED_OPERATOR_NEW; }; -} // namespace PressureBoundaryCondition +} // namespace NormalTractionBoundaryCondition } // namespace ProcessLib -- GitLab