diff --git a/ProcessLib/BoundaryCondition/BoundaryCondition.h b/ProcessLib/BoundaryCondition/BoundaryCondition.h index c284739c87b94a2c6aef11ce120421d2ac11fa50..960f830ca5cf9aaa02d578e42741e9cd213da001 100644 --- a/ProcessLib/BoundaryCondition/BoundaryCondition.h +++ b/ProcessLib/BoundaryCondition/BoundaryCondition.h @@ -34,14 +34,20 @@ class BoundaryCondition public: //! Applies natural BCs (i.e. non-Dirichlet BCs) to the stiffness matrix //! \c K and the vector \c b. - virtual void apply(const double t, GlobalVector const& x, GlobalMatrix& K, - GlobalVector& b) = 0; + virtual void applyNaturalBC(const double /*t*/, GlobalVector const& /*x*/, + GlobalMatrix& /*K*/, GlobalVector& /*b*/) + { + // By default it is assumed that the BC is not a natural BC. Therefore + // there is nothing to do here. + } - // TODO docu + //! Writes the values of Dirichlet BCs to \c bc_values. virtual void getDirichletBCValues( const double /*t*/, NumLib::IndexValueVector<GlobalIndexType>& /*bc_values*/) const { + // By default it is assumed that the BC is not a Dirichlet BC. Therefore + // there is nothing to do here. } virtual ~BoundaryCondition() = default; diff --git a/ProcessLib/BoundaryCondition/BoundaryConditionCollection.cpp b/ProcessLib/BoundaryCondition/BoundaryConditionCollection.cpp index 889d6cd1a3bdcdd308beb33a489b6bdf7dff63d7..bd6e4f844a19cad5d5bb6ccb027c5bed20a2ab53 100644 --- a/ProcessLib/BoundaryCondition/BoundaryConditionCollection.cpp +++ b/ProcessLib/BoundaryCondition/BoundaryConditionCollection.cpp @@ -11,12 +11,13 @@ namespace ProcessLib { -void BoundaryConditionCollection::apply(const double t, GlobalVector const& x, - GlobalMatrix& K, - GlobalVector& b) +void BoundaryConditionCollection::applyNaturalBC(const double t, + GlobalVector const& x, + GlobalMatrix& K, + GlobalVector& b) { for (auto const& bc : _boundary_conditions) - bc->apply(t, x, K, b); + bc->applyNaturalBC(t, x, K, b); } void BoundaryConditionCollection::addBCsForProcessVariables( diff --git a/ProcessLib/BoundaryCondition/BoundaryConditionCollection.h b/ProcessLib/BoundaryCondition/BoundaryConditionCollection.h index 140721a5289224be0afc7f346ba4ca48c25f929d..902418c758e28c2174f7d1db81ef2f96c0cc7c43 100644 --- a/ProcessLib/BoundaryCondition/BoundaryConditionCollection.h +++ b/ProcessLib/BoundaryCondition/BoundaryConditionCollection.h @@ -24,8 +24,8 @@ public: { } - void apply(const double t, GlobalVector const& x, GlobalMatrix& K, - GlobalVector& b); + void applyNaturalBC(const double t, GlobalVector const& x, GlobalMatrix& K, + GlobalVector& b); std::vector<NumLib::IndexValueVector<GlobalIndexType>> const* getKnownSolutions(double const t) const diff --git a/ProcessLib/BoundaryCondition/GenericNaturalBoundaryCondition-impl.h b/ProcessLib/BoundaryCondition/GenericNaturalBoundaryCondition-impl.h index 769b72e06ced02109c9d87570c06b3b634d78f63..8c0db0201b83c563b2eca8cd537889a8532d09e0 100644 --- a/ProcessLib/BoundaryCondition/GenericNaturalBoundaryCondition-impl.h +++ b/ProcessLib/BoundaryCondition/GenericNaturalBoundaryCondition-impl.h @@ -74,10 +74,10 @@ template <typename BoundaryConditionData, class LocalAssemblerImplementation> void GenericNaturalBoundaryCondition< BoundaryConditionData, - LocalAssemblerImplementation>::apply(const double t, - const GlobalVector& x, - GlobalMatrix& K, - GlobalVector& b) + LocalAssemblerImplementation>::applyNaturalBC(const double t, + const GlobalVector& x, + GlobalMatrix& K, + GlobalVector& b) { GlobalExecutor::executeMemberOnDereferenced( &GenericNaturalBoundaryConditionLocalAssemblerInterface::assemble, diff --git a/ProcessLib/BoundaryCondition/GenericNaturalBoundaryCondition.h b/ProcessLib/BoundaryCondition/GenericNaturalBoundaryCondition.h index bf930784154a1ff908385e053053cf74820bc930..f40fc809009a51d35509888a8ce32c9948623017 100644 --- a/ProcessLib/BoundaryCondition/GenericNaturalBoundaryCondition.h +++ b/ProcessLib/BoundaryCondition/GenericNaturalBoundaryCondition.h @@ -41,10 +41,10 @@ public: /// Calls local assemblers which calculate their contributions to the global /// matrix and the right-hand-side. - void apply(const double t, - GlobalVector const& x, - GlobalMatrix& K, - GlobalVector& b) override; + void applyNaturalBC(const double t, + GlobalVector const& x, + GlobalMatrix& K, + GlobalVector& b) override; private: /// Data used in the assembly of the specific boundary condition. diff --git a/ProcessLib/BoundaryCondition/UniformDirichletBoundaryCondition.h b/ProcessLib/BoundaryCondition/UniformDirichletBoundaryCondition.h index 5044da0ba3ba3735abbb27cd9ac3b691ca9733b6..79479f1370542b568dadc813095d873786a81f2b 100644 --- a/ProcessLib/BoundaryCondition/UniformDirichletBoundaryCondition.h +++ b/ProcessLib/BoundaryCondition/UniformDirichletBoundaryCondition.h @@ -29,11 +29,6 @@ public: { } - void apply(const double, GlobalVector const&, GlobalMatrix&, - GlobalVector&) override - { - } - void getDirichletBCValues( const double /*t*/, NumLib::IndexValueVector<GlobalIndexType>& bc_values) const diff --git a/ProcessLib/Process.cpp b/ProcessLib/Process.cpp index 1b325595532a864394f2159c87852dc44c89eee1..478919f7fc513217bcf4a83291f4e24e74159a19 100644 --- a/ProcessLib/Process.cpp +++ b/ProcessLib/Process.cpp @@ -112,7 +112,7 @@ void Process::assemble(const double t, GlobalVector const& x, GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b) { assembleConcreteProcess(t, x, M, K, b); - _boundary_conditions.apply(t, x, K, b); + _boundary_conditions.applyNaturalBC(t, x, K, b); } void Process::assembleJacobian(const double t, GlobalVector const& x,