/home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/model/component_descriptor.hh Source File#
|
DiFfRG
|
component_descriptor.hh
Go to the documentation of this file.
36 Well, depending on your compiler, this may end up in a wierd bug, where it messes up the internals of the array in
50 static constexpr std::array<const char *, sizeof...(_descriptors)> names{{_descriptors::name...}};
81 template <unsigned N> consteval size_t operator[](FixedString<N> name) const { return get(name); }
82 template <unsigned N> consteval size_t operator()(FixedString<N> name) const { return get(name); }
84 template <unsigned N> consteval size_t operator[](char const(&arr)[N]) const { return get( FixedString<N-1>(arr) ); }
85 template <unsigned N> consteval size_t operator()(char const(&arr)[N]) const { return get( FixedString<N-1>(arr) ); }
148 void add_dependency(uint dependent_subsystem, uint dependent, uint independent_subsystem, uint independent)
162 couplings[dependent_subsystem][independent_subsystem - 1].push_back({{dependent, dependency[1]}});
190 static constexpr uint count_fe_functions(uint subsystem = 0) { return n_components[subsystem]; }
195 template <typename DoFH> static std::vector<uint> get_component_block_structure(const DoFH &dofh)
202 template <typename T> using SubsystemMatrix = std::array<std::array<T, n_fe_subsystems>, n_fe_subsystems>;
A class to describe how many FE functions, additional variables and extractors are used in a model.
Definition component_descriptor.hh:117
ComponentDescriptor()
Definition component_descriptor.hh:133
_VariableDescriptor Variable_Descriptor
Definition component_descriptor.hh:122
void set_jacobian_constant(uint dependent_subsystem, uint independent_subsystem)
Definition component_descriptor.hh:166
static constexpr uint count_variables()
Definition component_descriptor.hh:191
SubsystemMatrix< bool > j_const
Definition component_descriptor.hh:205
static constexpr std::array< uint, n_fe_subsystems > n_components
Definition component_descriptor.hh:127
static constexpr uint count_fe_functions(uint subsystem=0)
Definition component_descriptor.hh:190
bool jacobians_constant(uint dependent_subsystem, uint independent_subsystem) const
Definition component_descriptor.hh:185
static constexpr uint count_extractors()
Definition component_descriptor.hh:192
const CouplingList & ldg_couplings(uint dependent_subsystem, uint independent_subsystem) const
Definition component_descriptor.hh:181
void add_dependency(uint dependent_subsystem, uint dependent, uint independent_subsystem, uint independent)
Add a dependency between two FE subsystems, i.e. for LDG constructions.
Definition component_descriptor.hh:148
static constexpr uint n_extractors
Definition component_descriptor.hh:130
_ExtractorDescriptor Extractor_Descriptor
Definition component_descriptor.hh:123
static constexpr uint n_fe_subsystems
Definition component_descriptor.hh:126
std::array< std::array< T, n_fe_subsystems >, n_fe_subsystems > SubsystemMatrix
Definition component_descriptor.hh:202
static constexpr uint n_variables
Definition component_descriptor.hh:129
static std::vector< uint > get_component_block_structure(const DoFH &dofh)
Definition component_descriptor.hh:195
std::vector< std::array< uint, 2 > > CouplingList
Definition component_descriptor.hh:118
_FEFunctionDescriptor FEFunction_Descriptor
Definition component_descriptor.hh:121
static constexpr uint count_fe_subsystems()
Definition component_descriptor.hh:193
SubsystemMatrix< CouplingList > couplings
Definition component_descriptor.hh:204
Definition complex_math.hh:10
consteval bool strings_equal(FixedString< N1 > s1, FixedString< N2 > s2)
Definition fixed_string.hh:49
A class to describe a function with a compile-time name and a fixed number of dimensions.
Definition component_descriptor.hh:21
static constexpr std::array< size_t, dim > nd_sizes
Definition component_descriptor.hh:25
Definition component_descriptor.hh:33
static constexpr std::array< size_t, dim > nd_sizes
Definition component_descriptor.hh:43
Definition component_descriptor.hh:46
consteval size_t operator()(char const(&arr)[N]) const
Definition component_descriptor.hh:85
static std::vector< std::string > get_names_vector()
Definition component_descriptor.hh:90
consteval size_t operator()(FixedString< N > name) const
Definition component_descriptor.hh:82
static constexpr std::array< const char *, sizeof...(_descriptors)> names
Definition component_descriptor.hh:50
consteval char const * name(size_t index) const
Definition component_descriptor.hh:87
consteval std::array< const char *, sizeof...(_descriptors)> get_names() const
Definition component_descriptor.hh:89
static constexpr size_t total_size
Definition component_descriptor.hh:54
consteval size_t operator[](FixedString< N > name) const
Definition component_descriptor.hh:81
static constexpr auto names_tuple
Definition component_descriptor.hh:48
consteval size_t operator[](char const(&arr)[N]) const
Definition component_descriptor.hh:84
static constexpr std::array< size_t, sizeof...(_descriptors)> sizes
Definition component_descriptor.hh:51
consteval size_t get(FixedString< N > name) const
Definition component_descriptor.hh:67
consteval size_t size(char const(&arr)[N]) const
Definition component_descriptor.hh:93
std::tuple< _descriptors... > descriptor_tuple
Definition component_descriptor.hh:52
Generated by