From 2ee9ad5cff8bb4f69a06ce7865f7a1c9fb8cff04 Mon Sep 17 00:00:00 2001 From: Dmitri Naumov <dmitri.naumov@ufz.de> Date: Tue, 13 Aug 2019 15:33:23 +0200 Subject: [PATCH] [PL] Add initialize to local assemblers. Some of the local assembler initialization cannot be done in its constructor but after initial conditions have been set. This function allows such initialization procedures. --- ProcessLib/LocalAssemblerInterface.cpp | 7 +++++++ ProcessLib/LocalAssemblerInterface.h | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/ProcessLib/LocalAssemblerInterface.cpp b/ProcessLib/LocalAssemblerInterface.cpp index adc706ab213..63836d0bb49 100644 --- a/ProcessLib/LocalAssemblerInterface.cpp +++ b/ProcessLib/LocalAssemblerInterface.cpp @@ -91,6 +91,13 @@ void LocalAssemblerInterface::setInitialConditions( setInitialConditionsConcrete(local_x, t); } +void LocalAssemblerInterface::initialize( + std::size_t const /*mesh_item_id*/, + NumLib::LocalToGlobalIndexMap const& /*dof_table*/) +{ + initializeConcrete(); +} + void LocalAssemblerInterface::preTimestep( std::size_t const mesh_item_id, NumLib::LocalToGlobalIndexMap const& dof_table, GlobalVector const& x, diff --git a/ProcessLib/LocalAssemblerInterface.h b/ProcessLib/LocalAssemblerInterface.h index 28352e86d44..ecd1878c598 100644 --- a/ProcessLib/LocalAssemblerInterface.h +++ b/ProcessLib/LocalAssemblerInterface.h @@ -39,6 +39,9 @@ public: NumLib::LocalToGlobalIndexMap const& dof_table, GlobalVector const& x, double const t); + virtual void initialize(std::size_t const mesh_item_id, + NumLib::LocalToGlobalIndexMap const& dof_table); + virtual void preAssemble(double const /*t*/, std::vector<double> const& /*local_x*/){}; @@ -116,6 +119,8 @@ private: { } + virtual void initializeConcrete() {} + virtual void preTimestepConcrete(std::vector<double> const& /*local_x*/, double const /*t*/, double const /*dt*/) { -- GitLab