PRISMS-PF Manual
Loading...
Searching...
No Matches
field_container.h File Reference
#include <deal.II/base/config.h>
#include <deal.II/base/exceptions.h>
#include <deal.II/base/point.h>
#include <deal.II/base/symmetric_tensor.h>
#include <deal.II/base/tensor.h>
#include <deal.II/lac/vector.h>
#include <deal.II/matrix_free/evaluation_flags.h>
#include <deal.II/matrix_free/fe_evaluation.h>
#include <deal.II/matrix_free/matrix_free.h>
#include <prismspf/core/dependencies.h>
#include <prismspf/core/field_attributes.h>
#include <prismspf/core/solution_indexer.h>
#include <prismspf/core/solve_block.h>
#include <prismspf/core/system_wide.h>
#include <prismspf/core/type_enums.h>
#include <prismspf/core/types.h>
#include <prismspf/config.h>
#include <utility>
Include dependency graph for field_container.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  FieldContainer< dim, degree, number >
 This class permits the access of a subset of indexed fields and gives an error if any non-allowed fields are requested. More...
 
struct  FieldContainer< dim, degree, number >::FEEValuationDeps< Rank >
 Struct to hold the relevant dealii::FEEvaluation for a given solution block index. More...
 
class  ExcDepNotInitialized
 

Macros

#define AssertAccessible(fe_eval_pair_ptr, dependency_type)
 
#define GetterTempl(dependency_type)
 
#define GetterNoTempl(dependency_type)
 
#define ReturnGetter(get_handle, Rank, field_index, dependency_type, getter)
 

Variables

static const std::map< DependencyType, std::string > dependency_type_to_string
 

Macro Definition Documentation

◆ AssertAccessible

#define AssertAccessible ( fe_eval_pair_ptr,
dependency_type )

◆ GetterNoTempl

#define GetterNoTempl ( dependency_type)
Value:
get(dependency_type)

◆ GetterTempl

#define GetterTempl ( dependency_type)
Value:
template get<dependency_type>()

◆ ReturnGetter

#define ReturnGetter ( get_handle,
Rank,
field_index,
dependency_type,
getter )
Value:
try \
{ \
AssertThrowDebug((field_index) < get_relevant_feeval_vector<Rank>().size(), \
dealii::ExcMessage("Error: Field index " + \
std::to_string(field_index) + \
" is not associated with any field.")); \
return get_relevant_feeval_vector<Rank>()[field_index] \
.getter(dependency_type) \
.get_handle(q_point); \
} \
catch (const ExcDepNotInitialized &e) \
{ \
std::cerr << "Error when trying to access field with index " << (field_index) \
<< " and dependency type " \
<< dependency_type_to_string.at(dependency_type) << ":\n" \
<< e.what() \
<< "Ensure that each dependency is requested in the solve block.\n" \
<< std::flush; \
throw; \
} \
catch (const dealii::internal::ExcAccessToUninitializedField &e) \
{ \
std::cerr << "Error when trying to access field with index " << (field_index) \
<< " and dependency type " \
<< dependency_type_to_string.at(dependency_type) \
<< ":\nAccess was attempted for values or gradients that were " \
"not requested.\n" \
<< std::flush; \
throw; \
}
Definition field_container.h:559
static const std::map< DependencyType, std::string > dependency_type_to_string
Definition field_container.h:511

Variable Documentation

◆ dependency_type_to_string

const std::map<DependencyType, std::string> dependency_type_to_string
inlinestatic
Initial value:
= {
}
@ Current
Definition type_enums.h:80
@ DST
Definition type_enums.h:74
@ OldFour
Definition type_enums.h:84
@ OldThree
Definition type_enums.h:83
@ SRC
Definition type_enums.h:75
@ OldOne
Definition type_enums.h:81
@ OldTwo
Definition type_enums.h:82