MoReFEM
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes
MoReFEM::MoReFEMData< ModelSettingsT, InputDataT, TimeManagerT, ProgramTypeT, DoTrackUnusedFieldsT, AdditionalCommandLineArgumentsPolicyT > Class Template Reference

Init MoReFEM: initialize mpi and read the input data file. More...

#include <MoReFEMData.hpp>

Inheritance diagram for MoReFEM::MoReFEMData< ModelSettingsT, InputDataT, TimeManagerT, ProgramTypeT, DoTrackUnusedFieldsT, AdditionalCommandLineArgumentsPolicyT >:
Collaboration diagram for MoReFEM::MoReFEMData< ModelSettingsT, InputDataT, TimeManagerT, ProgramTypeT, DoTrackUnusedFieldsT, AdditionalCommandLineArgumentsPolicyT >:

Public Types

using self
 Alias to the type of the class.
 
using parent
 Alias to parent.
 
using const_unique_ptr = std::unique_ptr<self>
 Alias to unique_ptr.
 
using input_data_type = InputDataT
 Convenient alias for InputData instantiation to use.
 
using model_settings_type = ModelSettingsT
 Alias to ModelSettingsT.
 
using time_manager_type = TimeManagerT
 Alias to TimeManagerT.
 

Public Member Functions

const Internal::ParallelismGetParallelismPtr () const noexcept
 
const ::MoReFEM::Wrappers::MpiGetMpi () const noexcept
 Accessor to underlying mpi object.
 
const ::MoReFEM::FilesystemNS::DirectoryGetResultDirectory () const noexcept
 Accessor to the result directory, in which all the outputs of MoReFEM should be written.
 
const model_settings_typeGetModelSettings () const noexcept
 Accessor to underlying model_settings_type object.
 
const input_data_typeGetInputData () const noexcept
 Accessor to underlying input_data_type object.
 
const time_manager_typeGetTimeManager () const noexcept
 Constant accessor to the object in charge of time management.
 
time_manager_typeGetNonCstTimeManager () noexcept
 Non constant access to the object in charge of time management.
 
Special members.
 MoReFEMData (int argc, char **argv)
 Constructor.
 
 MoReFEMData (FilesystemNS::File &&lua_file)
 Constructor from a Lua file.
 
virtual ~MoReFEMData () override
 Destructor.
 
 MoReFEMData (const MoReFEMData &rhs)=delete
 The copy constructor.
 
 MoReFEMData (MoReFEMData &&rhs)=delete
 The move constructor.
 
MoReFEMDataoperator= (const MoReFEMData &rhs)=delete
 The (copy) operator=.
 
MoReFEMDataoperator= (MoReFEMData &&rhs)=delete
 The (move) operator=.
 

Static Public Member Functions

static constexpr bool HasParallelismField ()
 

Static Public Attributes

static constexpr is_morefem_data ConceptIsMoReFEMData = is_morefem_data::yes
 Helper variable to define the MoReFEMDataType concept.
 

Protected Member Functions

::MoReFEM::FilesystemNS::behaviour DetermineDirectoryBehaviour (Advanced::CommandLineFlagsNS::overwrite_directory do_overwrite_directory) const noexcept
 Determine the behaviour to adopt for output directory creation.
 
void SetResultDirectory (std::filesystem::path path, Advanced::CommandLineFlagsNS::overwrite_directory do_overwrite_directory)
 Set the directory into which outputs will be written.
 
void SetTimeManager ()
 Init properly the TimeManagerT instance.
 
void SetInputData (typename input_data_type::const_unique_ptr &&input_data)
 Set the input_data_ object.
 
void InitCheckInvertedElementsSingleton ()
 Init the CheckInvertedElements singletons, depending whether there is a field or not in the input data or model settings.
 

Private Member Functions

const Internal::ParallelismGetParallelism () const noexcept
 
void Construct (FilesystemNS::File &&lua_file, Advanced::CommandLineFlagsNS::overwrite_directory do_overwrite_directory)
 Helper function used in constructors.
 
void CheckNoMissingIndexedSectionDescriptions () const
 Check all the expected IndexedSectionDescription class in the model-specific ModelSettings are properly present.
 

Private Attributes

Internal::Parallelism::unique_ptr parallelism_ = nullptr
 Object which holds the parallelism strategy to use.
 
::MoReFEM::FilesystemNS::Directory::const_unique_ptr result_directory_ { nullptr }
 Directory into which model results will be written,.
 
ModelSettingsT model_settings_
 The model-specific ModelSettings, which encompasses data specific to the model but that shouldn't be modified by the end-user.
 
TimeManagerT::unique_ptr time_manager_ { nullptr }
 
input_data_type::const_unique_ptr input_data_ { nullptr }
 Holds InputData.
 

Detailed Description

template<::MoReFEM::Concept::ModelSettingsType ModelSettingsT, ::MoReFEM::Concept::InputDataType InputDataT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT, program_type ProgramTypeT, InputDataNS::DoTrackUnusedFields DoTrackUnusedFieldsT = InputDataNS::DoTrackUnusedFields::yes, class AdditionalCommandLineArgumentsPolicyT = std::false_type>
class MoReFEM::MoReFEMData< ModelSettingsT, InputDataT, TimeManagerT, ProgramTypeT, DoTrackUnusedFieldsT, AdditionalCommandLineArgumentsPolicyT >

Init MoReFEM: initialize mpi and read the input data file.

Warning
As mpi is not assumed to exist until the constructor has done is job, the exceptions there that might happen only on some of the ranks don't lead to a call to MPI_Abort(), which can lead to a dangling program. Make sure each exception is properly communicated to all ranks so that each rank can gracefully throw an exception and hence allow the program to stop properly.
Template Parameters
ProgramTypeTType of the program run. For instance for post-processing there is no removal of the existing result directory, contrary to what happens in model run. If update_lua_file, the result directory can't be queried at all
AdditionalCommandLineArgumentsPolicyTPolicy if you need additional arguments on the command line. To see a concrete example of this possibility, have a look at Test/Core/MoReFEMData/test_command_line_options.cpp which demonstrate the possibility. If none, use std::false_type.

http://tclap.sourceforge.net gives a nice manual of how to add additional argument on the command lines. By default, there is one mandatory argument (–input_data lua file) and one optional that might be repeated to define pseudo environment variables (-e KEY=VALUE).

Member Typedef Documentation

◆ self

template<::MoReFEM::Concept::ModelSettingsType ModelSettingsT, ::MoReFEM::Concept::InputDataType InputDataT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT, program_type ProgramTypeT, InputDataNS::DoTrackUnusedFields DoTrackUnusedFieldsT = InputDataNS::DoTrackUnusedFields::yes, class AdditionalCommandLineArgumentsPolicyT = std::false_type>
using MoReFEM::MoReFEMData< ModelSettingsT, InputDataT, TimeManagerT, ProgramTypeT, DoTrackUnusedFieldsT, AdditionalCommandLineArgumentsPolicyT >::self
Initial value:
<
ModelSettingsT,
InputDataT,
TimeManagerT,
ProgramTypeT,
DoTrackUnusedFieldsT,
AdditionalCommandLineArgumentsPolicyT
>
MoReFEMData(int argc, char **argv)
Constructor.

Alias to the type of the class.

◆ parent

template<::MoReFEM::Concept::ModelSettingsType ModelSettingsT, ::MoReFEM::Concept::InputDataType InputDataT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT, program_type ProgramTypeT, InputDataNS::DoTrackUnusedFields DoTrackUnusedFieldsT = InputDataNS::DoTrackUnusedFields::yes, class AdditionalCommandLineArgumentsPolicyT = std::false_type>
using MoReFEM::MoReFEMData< ModelSettingsT, InputDataT, TimeManagerT, ProgramTypeT, DoTrackUnusedFieldsT, AdditionalCommandLineArgumentsPolicyT >::parent
Initial value:
Internal::MoReFEMDataNS::AbstractClass
<
ProgramTypeT,
TimeManagerT,
ModelSettingsT,
InputDataT
>

Alias to parent.

◆ input_data_type

template<::MoReFEM::Concept::ModelSettingsType ModelSettingsT, ::MoReFEM::Concept::InputDataType InputDataT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT, program_type ProgramTypeT, InputDataNS::DoTrackUnusedFields DoTrackUnusedFieldsT = InputDataNS::DoTrackUnusedFields::yes, class AdditionalCommandLineArgumentsPolicyT = std::false_type>
using MoReFEM::MoReFEMData< ModelSettingsT, InputDataT, TimeManagerT, ProgramTypeT, DoTrackUnusedFieldsT, AdditionalCommandLineArgumentsPolicyT >::input_data_type = InputDataT

Convenient alias for InputData instantiation to use.

Constructor & Destructor Documentation

◆ MoReFEMData() [1/4]

template<::MoReFEM::Concept::ModelSettingsType ModelSettingsT, ::MoReFEM::Concept::InputDataType InputDataT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT, program_type ProgramTypeT, InputDataNS::DoTrackUnusedFields DoTrackUnusedFieldsT = InputDataNS::DoTrackUnusedFields::yes, class AdditionalCommandLineArgumentsPolicyT = std::false_type>
MoReFEM::MoReFEMData< ModelSettingsT, InputDataT, TimeManagerT, ProgramTypeT, DoTrackUnusedFieldsT, AdditionalCommandLineArgumentsPolicyT >::MoReFEMData ( int argc,
char ** argv )
explicit

Constructor.

This is the staple constructor used in models: at the beginning of the main the object is constructed and initializes under the hood stuff like the initialization of MPI (which requires the argc and argv values).

Parameters
[in]argcNumber of argument in the command line (including the program name).
[in]argvList of arguments read.

◆ MoReFEMData() [2/4]

template<::MoReFEM::Concept::ModelSettingsType ModelSettingsT, ::MoReFEM::Concept::InputDataType InputDataT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT, program_type ProgramTypeT, InputDataNS::DoTrackUnusedFields DoTrackUnusedFieldsT = InputDataNS::DoTrackUnusedFields::yes, class AdditionalCommandLineArgumentsPolicyT = std::false_type>
MoReFEM::MoReFEMData< ModelSettingsT, InputDataT, TimeManagerT, ProgramTypeT, DoTrackUnusedFieldsT, AdditionalCommandLineArgumentsPolicyT >::MoReFEMData ( FilesystemNS::File && lua_file)
explicit

Constructor from a Lua file.

Useful for tests.

Attention
This constructor does not initialize Internal::PetscNS::RAII singleton and assumes this has already be done!
Parameters
[in]lua_fileInput data file.

◆ MoReFEMData() [3/4]

template<::MoReFEM::Concept::ModelSettingsType ModelSettingsT, ::MoReFEM::Concept::InputDataType InputDataT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT, program_type ProgramTypeT, InputDataNS::DoTrackUnusedFields DoTrackUnusedFieldsT = InputDataNS::DoTrackUnusedFields::yes, class AdditionalCommandLineArgumentsPolicyT = std::false_type>
MoReFEM::MoReFEMData< ModelSettingsT, InputDataT, TimeManagerT, ProgramTypeT, DoTrackUnusedFieldsT, AdditionalCommandLineArgumentsPolicyT >::MoReFEMData ( const MoReFEMData< ModelSettingsT, InputDataT, TimeManagerT, ProgramTypeT, DoTrackUnusedFieldsT, AdditionalCommandLineArgumentsPolicyT > & rhs)
delete

The copy constructor.

Parameters
[in]rhsThe object from which the construction occurs.

◆ MoReFEMData() [4/4]

template<::MoReFEM::Concept::ModelSettingsType ModelSettingsT, ::MoReFEM::Concept::InputDataType InputDataT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT, program_type ProgramTypeT, InputDataNS::DoTrackUnusedFields DoTrackUnusedFieldsT = InputDataNS::DoTrackUnusedFields::yes, class AdditionalCommandLineArgumentsPolicyT = std::false_type>
MoReFEM::MoReFEMData< ModelSettingsT, InputDataT, TimeManagerT, ProgramTypeT, DoTrackUnusedFieldsT, AdditionalCommandLineArgumentsPolicyT >::MoReFEMData ( MoReFEMData< ModelSettingsT, InputDataT, TimeManagerT, ProgramTypeT, DoTrackUnusedFieldsT, AdditionalCommandLineArgumentsPolicyT > && rhs)
delete

The move constructor.

Parameters
[in]rhsThe object from which the construction occurs.

Member Function Documentation

◆ HasParallelismField()

template<::MoReFEM::Concept::ModelSettingsType ModelSettingsT, ::MoReFEM::Concept::InputDataType InputDataT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT, program_type ProgramTypeT, InputDataNS::DoTrackUnusedFields DoTrackUnusedFieldsT = InputDataNS::DoTrackUnusedFields::yes, class AdditionalCommandLineArgumentsPolicyT = std::false_type>
static constexpr bool MoReFEM::MoReFEMData< ModelSettingsT, InputDataT, TimeManagerT, ProgramTypeT, DoTrackUnusedFieldsT, AdditionalCommandLineArgumentsPolicyT >::HasParallelismField ( )
staticconstexpr

Whether there is a Parallelism block in MoReFEM input data.

Returns
True if there is one.

◆ operator=() [1/2]

template<::MoReFEM::Concept::ModelSettingsType ModelSettingsT, ::MoReFEM::Concept::InputDataType InputDataT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT, program_type ProgramTypeT, InputDataNS::DoTrackUnusedFields DoTrackUnusedFieldsT = InputDataNS::DoTrackUnusedFields::yes, class AdditionalCommandLineArgumentsPolicyT = std::false_type>
MoReFEMData & MoReFEM::MoReFEMData< ModelSettingsT, InputDataT, TimeManagerT, ProgramTypeT, DoTrackUnusedFieldsT, AdditionalCommandLineArgumentsPolicyT >::operator= ( const MoReFEMData< ModelSettingsT, InputDataT, TimeManagerT, ProgramTypeT, DoTrackUnusedFieldsT, AdditionalCommandLineArgumentsPolicyT > & rhs)
delete

The (copy) operator=.

Parameters
[in]rhsThe object from which the affectation occurs.
Returns
Reference to the object (to enable chained affectation).

◆ operator=() [2/2]

template<::MoReFEM::Concept::ModelSettingsType ModelSettingsT, ::MoReFEM::Concept::InputDataType InputDataT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT, program_type ProgramTypeT, InputDataNS::DoTrackUnusedFields DoTrackUnusedFieldsT = InputDataNS::DoTrackUnusedFields::yes, class AdditionalCommandLineArgumentsPolicyT = std::false_type>
MoReFEMData & MoReFEM::MoReFEMData< ModelSettingsT, InputDataT, TimeManagerT, ProgramTypeT, DoTrackUnusedFieldsT, AdditionalCommandLineArgumentsPolicyT >::operator= ( MoReFEMData< ModelSettingsT, InputDataT, TimeManagerT, ProgramTypeT, DoTrackUnusedFieldsT, AdditionalCommandLineArgumentsPolicyT > && rhs)
delete

The (move) operator=.

Parameters
[in]rhsThe object from which the affectation occurs.
Returns
Reference to the object (to enable chained affectation).

◆ GetParallelismPtr()

template<::MoReFEM::Concept::ModelSettingsType ModelSettingsT, ::MoReFEM::Concept::InputDataType InputDataT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT, program_type ProgramTypeT, InputDataNS::DoTrackUnusedFields DoTrackUnusedFieldsT = InputDataNS::DoTrackUnusedFields::yes, class AdditionalCommandLineArgumentsPolicyT = std::false_type>
const Internal::Parallelism * MoReFEM::MoReFEMData< ModelSettingsT, InputDataT, TimeManagerT, ProgramTypeT, DoTrackUnusedFieldsT, AdditionalCommandLineArgumentsPolicyT >::GetParallelismPtr ( ) const
noexcept

Accessor to the object which keeps the data related to parallelism strategy. Might be nullptr if none specified in the input lua file.

◆ GetParallelism()

template<::MoReFEM::Concept::ModelSettingsType ModelSettingsT, ::MoReFEM::Concept::InputDataType InputDataT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT, program_type ProgramTypeT, InputDataNS::DoTrackUnusedFields DoTrackUnusedFieldsT = InputDataNS::DoTrackUnusedFields::yes, class AdditionalCommandLineArgumentsPolicyT = std::false_type>
const Internal::Parallelism & MoReFEM::MoReFEMData< ModelSettingsT, InputDataT, TimeManagerT, ProgramTypeT, DoTrackUnusedFieldsT, AdditionalCommandLineArgumentsPolicyT >::GetParallelism ( ) const
privatenoexcept

Accessor to the object which keeps the data related to parallelism strategy. No pointer here, but it assumes parallelism_ is not nullptr.

◆ Construct()

template<::MoReFEM::Concept::ModelSettingsType ModelSettingsT, ::MoReFEM::Concept::InputDataType InputDataT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT, program_type ProgramTypeT, InputDataNS::DoTrackUnusedFields DoTrackUnusedFieldsT = InputDataNS::DoTrackUnusedFields::yes, class AdditionalCommandLineArgumentsPolicyT = std::false_type>
void MoReFEM::MoReFEMData< ModelSettingsT, InputDataT, TimeManagerT, ProgramTypeT, DoTrackUnusedFieldsT, AdditionalCommandLineArgumentsPolicyT >::Construct ( FilesystemNS::File && lua_file,
Advanced::CommandLineFlagsNS::overwrite_directory do_overwrite_directory )
private

Helper function used in constructors.

Parameters
[in]lua_fileInput data file.
[in]do_overwrite_directoryWhether the program may overwrite result directory or not. In the general case it is the value read from command line (if any) but for tests it is arbitrarily set to yes.

◆ CheckNoMissingIndexedSectionDescriptions()

template<::MoReFEM::Concept::ModelSettingsType ModelSettingsT, ::MoReFEM::Concept::InputDataType InputDataT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT, program_type ProgramTypeT, InputDataNS::DoTrackUnusedFields DoTrackUnusedFieldsT = InputDataNS::DoTrackUnusedFields::yes, class AdditionalCommandLineArgumentsPolicyT = std::false_type>
void MoReFEM::MoReFEMData< ModelSettingsT, InputDataT, TimeManagerT, ProgramTypeT, DoTrackUnusedFieldsT, AdditionalCommandLineArgumentsPolicyT >::CheckNoMissingIndexedSectionDescriptions ( ) const
private

Check all the expected IndexedSectionDescription class in the model-specific ModelSettings are properly present.

If there is a leaf or a section either in the model-specific ModelSettings or in the model-specific InputData that is related to an IndexedSection, then the related IndexedSectionDescription should be declared in the model-specific ModelSettings. Current method checks that this is the case, and if not provide a clear error in runtime to help the author of the model to fix it quickly.

◆ GetResultDirectory()

template<program_type ProgramTypeT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT, ::MoReFEM::Concept::ModelSettingsType ModelSettingsT, ::MoReFEM::Concept::InputDataType InputDataT, ::MoReFEM::InputDataNS::DoTrackUnusedFields DoTrackUnusedFieldsT = ::MoReFEM::InputDataNS::DoTrackUnusedFields::yes>
const ::MoReFEM::FilesystemNS::Directory & MoReFEM::Internal::MoReFEMDataNS::AbstractClass< ProgramTypeT, TimeManagerT, ModelSettingsT, InputDataT, DoTrackUnusedFieldsT >::GetResultDirectory ( ) const
noexceptinherited

Accessor to the result directory, in which all the outputs of MoReFEM should be written.

Returns
Result directory.

◆ DetermineDirectoryBehaviour()

template<program_type ProgramTypeT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT, ::MoReFEM::Concept::ModelSettingsType ModelSettingsT, ::MoReFEM::Concept::InputDataType InputDataT, ::MoReFEM::InputDataNS::DoTrackUnusedFields DoTrackUnusedFieldsT = ::MoReFEM::InputDataNS::DoTrackUnusedFields::yes>
::MoReFEM::FilesystemNS::behaviour MoReFEM::Internal::MoReFEMDataNS::AbstractClass< ProgramTypeT, TimeManagerT, ModelSettingsT, InputDataT, DoTrackUnusedFieldsT >::DetermineDirectoryBehaviour ( Advanced::CommandLineFlagsNS::overwrite_directory do_overwrite_directory) const
protectednoexceptinherited

Determine the behaviour to adopt for output directory creation.

This behaviour depends both on the do_overwrite_directory argument and on the type of program you are running (model, test, update a Lua file, etc...)

Parameters
[in]do_overwrite_directoryWhether an eventual pre-existing output directory should be overwritten.
Returns
Behaviour to adopt for output directory creation.

◆ SetResultDirectory()

template<program_type ProgramTypeT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT, ::MoReFEM::Concept::ModelSettingsType ModelSettingsT, ::MoReFEM::Concept::InputDataType InputDataT, ::MoReFEM::InputDataNS::DoTrackUnusedFields DoTrackUnusedFieldsT = ::MoReFEM::InputDataNS::DoTrackUnusedFields::yes>
void MoReFEM::Internal::MoReFEMDataNS::AbstractClass< ProgramTypeT, TimeManagerT, ModelSettingsT, InputDataT, DoTrackUnusedFieldsT >::SetResultDirectory ( std::filesystem::path path,
Advanced::CommandLineFlagsNS::overwrite_directory do_overwrite_directory )
protectedinherited

Set the directory into which outputs will be written.

Parameters
[in]pathPath on your filesystem to the directory in which the outputs should be written. It should be determined internally in the class derived from this one (MoReFEMData or MoReFEMDataForTest so far are possible).
[in]do_overwrite_directoryWhether an eventual pre-existing output directory should be overwritten.

◆ SetTimeManager()

template<program_type ProgramTypeT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT, ::MoReFEM::Concept::ModelSettingsType ModelSettingsT, ::MoReFEM::Concept::InputDataType InputDataT, ::MoReFEM::InputDataNS::DoTrackUnusedFields DoTrackUnusedFieldsT = ::MoReFEM::InputDataNS::DoTrackUnusedFields::yes>
void MoReFEM::Internal::MoReFEMDataNS::AbstractClass< ProgramTypeT, TimeManagerT, ModelSettingsT, InputDataT, DoTrackUnusedFieldsT >::SetTimeManager ( )
protectedinherited

Init properly the TimeManagerT instance.

It is not done automatically because it requires some data that are to be defined in the constructors of child classes.

Attention
Must be called after SetInputData!

◆ SetInputData()

template<program_type ProgramTypeT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT, ::MoReFEM::Concept::ModelSettingsType ModelSettingsT, ::MoReFEM::Concept::InputDataType InputDataT, ::MoReFEM::InputDataNS::DoTrackUnusedFields DoTrackUnusedFieldsT = ::MoReFEM::InputDataNS::DoTrackUnusedFields::yes>
void MoReFEM::Internal::MoReFEMDataNS::AbstractClass< ProgramTypeT, TimeManagerT, ModelSettingsT, InputDataT, DoTrackUnusedFieldsT >::SetInputData ( typename input_data_type::const_unique_ptr && input_data)
protectedinherited

Set the input_data_ object.

Even MoReFEMDataTest child class which doesn't rely on it provides a dummy object and must do this call.

Parameters
[in]input_dataThe input_data object, that should be initialized in derived classes constructors.

Field Documentation

◆ model_settings_

template<program_type ProgramTypeT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT, ::MoReFEM::Concept::ModelSettingsType ModelSettingsT, ::MoReFEM::Concept::InputDataType InputDataT, ::MoReFEM::InputDataNS::DoTrackUnusedFields DoTrackUnusedFieldsT = ::MoReFEM::InputDataNS::DoTrackUnusedFields::yes>
ModelSettingsT MoReFEM::Internal::MoReFEMDataNS::AbstractClass< ProgramTypeT, TimeManagerT, ModelSettingsT, InputDataT, DoTrackUnusedFieldsT >::model_settings_
privateinherited

The model-specific ModelSettings, which encompasses data specific to the model but that shouldn't be modified by the end-user.

◆ time_manager_

template<program_type ProgramTypeT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT, ::MoReFEM::Concept::ModelSettingsType ModelSettingsT, ::MoReFEM::Concept::InputDataType InputDataT, ::MoReFEM::InputDataNS::DoTrackUnusedFields DoTrackUnusedFieldsT = ::MoReFEM::InputDataNS::DoTrackUnusedFields::yes>
TimeManagerT::unique_ptr MoReFEM::Internal::MoReFEMDataNS::AbstractClass< ProgramTypeT, TimeManagerT, ModelSettingsT, InputDataT, DoTrackUnusedFieldsT >::time_manager_ { nullptr }
privateinherited

Time management facility.

Attention
SetTimeManager() must be called explicitly in derived classes constructors!

The documentation for this class was generated from the following file: