MoReFEM
Loading...
Searching...
No Matches
Public Types | Private Types
MoReFEM::Internal::ParameterNS::ParameterAtDofImpl< TypeT, TimeManagerT, TimeDependencyT, NfeltSpaceT > Struct Template Reference

Intermediate traits class that provide the type for a parameter defined at dof. More...

#include <ParameterAtDof.hpp>

Collaboration diagram for MoReFEM::Internal::ParameterNS::ParameterAtDofImpl< TypeT, TimeManagerT, TimeDependencyT, NfeltSpaceT >:

Public Types

using type
 Alias which provides the parameter type.
 

Private Types

template<ParameterNS::Type TypeTT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerTT>
using intermediate_policy_type = ::MoReFEM::ParameterNS::Policy::AtDof<TypeTT, TimeManagerTT, NfeltSpaceT>
 Alias which the proper prototype for ParameterInstance.
 

Detailed Description

template<ParameterNS::Type TypeT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT, template< ParameterNS::Type, TIME_MANAGER_TEMPLATE_KEYWORD > class TimeDependencyT = ::MoReFEM::ParameterNS::TimeDependencyNS::None, std::size_t NfeltSpaceT = 1ul>
struct MoReFEM::Internal::ParameterNS::ParameterAtDofImpl< TypeT, TimeManagerT, TimeDependencyT, NfeltSpaceT >

Intermediate traits class that provide the type for a parameter defined at dof.

Template Parameters
TypeTParameterNS::Type might be scalar or vectorial.
NfeltSpaceTIf 1, only one FEltSpace is expected; of any dimension. If 2, two are expected: one that deals with LocalFEltSpace the same dimension of the mesh, the other for this dimension minus 1. 3 is possible as well, going up to dimension minus 2.

A Parameter is first and foremost a spatial-dependent data: its main purpose is to describe the value of a physical parameter at a given local position. However, we might also want to apply a decoupled time dependency, i.e. consider value of the parameter might be determined by:

P(x, t) = f(x) * g(t)

In this case, g(t) is stored as a function and is recomputed at each Parameter::TimeUpdate() calls (such calls should therefore be located in Model::InitializeStep() where the time update actually occur).

You shouldn't have to deal with this class directly; it's just a bridge to deal with the fact ParameterNS::Policy::ParameterAtDof gets an additional template parameter (namely the number of FEltSpace).

Member Typedef Documentation

◆ intermediate_policy_type

template<ParameterNS::Type TypeT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT, template< ParameterNS::Type, TIME_MANAGER_TEMPLATE_KEYWORD > class TimeDependencyT = ::MoReFEM::ParameterNS::TimeDependencyNS::None, std::size_t NfeltSpaceT = 1ul>
template<ParameterNS::Type TypeTT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerTT>
using MoReFEM::Internal::ParameterNS::ParameterAtDofImpl< TypeT, TimeManagerT, TimeDependencyT, NfeltSpaceT >::intermediate_policy_type = ::MoReFEM::ParameterNS::Policy::AtDof<TypeTT, TimeManagerTT, NfeltSpaceT>
private

Alias which the proper prototype for ParameterInstance.

ParameterNS::Policy::AtDof does not work directly, as there are 2 template arguments whereas template template argument of ParameterInstance expects only one.

◆ type

template<ParameterNS::Type TypeT, TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT, template< ParameterNS::Type, TIME_MANAGER_TEMPLATE_KEYWORD > class TimeDependencyT = ::MoReFEM::ParameterNS::TimeDependencyNS::None, std::size_t NfeltSpaceT = 1ul>
using MoReFEM::Internal::ParameterNS::ParameterAtDofImpl< TypeT, TimeManagerT, TimeDependencyT, NfeltSpaceT >::type
Initial value:
Internal::ParameterNS::ParameterInstance<TypeT, intermediate_policy_type, TimeManagerT, TimeDependencyT>

Alias which provides the parameter type.


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