This class permits the access of a subset of indexed fields and gives an error if any non-allowed fields are requested.
More...
|
| | FieldContainer (const std::vector< FieldAttributes > &_field_attributes, const SolutionIndexer< dim, number > &_solution_indexer, unsigned int _relative_level, const DependencyMap &dependency_map, const SolveBlock &_solve_block, const MatrixFree< dim, number > &matrix_free) |
| | Constructor.
|
| |
| void | reinit (unsigned int cell) |
| | Initialize based on cell for all dependencies.
|
| |
| void | eval (const BlockVector< number > *src_solutions, bool plain) |
| | Read solution vector, and evaluate based on dependency flags for all dependencies.
|
| |
| void | reinit_and_eval (unsigned int cell, const BlockVector< number > *src_solutions, bool plain) |
| | Initialize based on cell, read solution vector, and evaluate based on dependency flags for all dependencies.
|
| |
| void | integrate () |
| | Integrate the residuals.
|
| |
| void | distribute (BlockVector< number > *dst_solutions) |
| | Distribute the integrated residuals.
|
| |
| void | integrate_and_distribute (BlockVector< number > *dst_solutions) |
| | Integrate the residuals and distribute from local to global.
|
| |
| void | set_q_point (unsigned int q) |
| | Set the current quadrature point.
|
| |
| template<TensorRank Rank, DependencyType type> |
| Value< Rank > | get_value (Types::Index field_index) const |
| | Return the value of the specified field.
|
| |
| template<TensorRank Rank> |
| Value< Rank > | get_value (Types::Index field_index, DependencyType type) const |
| | Return the value of the specified field.
|
| |
| template<TensorRank Rank, DependencyType type> |
| Gradient< Rank > | get_gradient (Types::Index field_index) const |
| | Return the gradient of the specified field.
|
| |
| template<TensorRank Rank> |
| Gradient< Rank > | get_gradient (Types::Index field_index, DependencyType type) const |
| | Return the gradient of the specified field.
|
| |
| template<TensorRank Rank, DependencyType type> |
| Hessian< Rank > | get_hessian (Types::Index field_index) const |
| | Return the hessian of the specified field.
|
| |
| template<TensorRank Rank> |
| Hessian< Rank > | get_hessian (Types::Index field_index, DependencyType type) const |
| | Return the hessian of the specified field.
|
| |
| template<TensorRank Rank, DependencyType type> |
| Gradient< Rank > | get_hessian_diagonal (Types::Index field_index) const |
| | Return the diagonal of the hessian of the specified field.
|
| |
| template<TensorRank Rank> |
| Gradient< Rank > | get_hessian_diagonal (Types::Index field_index, DependencyType type) const |
| | Return the diagonal of the hessian of the specified field.
|
| |
| template<TensorRank Rank, DependencyType type> |
| Value< Rank > | get_laplacian (Types::Index field_index) const |
| | Return the laplacian of the specified field.
|
| |
| template<TensorRank Rank> |
| Value< Rank > | get_laplacian (Types::Index field_index, DependencyType type) const |
| | Return the laplacian of the specified field.
|
| |
| template<TensorRank Rank, DependencyType type> |
| ScalarValue | get_divergence (Types::Index field_index) const |
| | Return the divergence of the specified field.
|
| |
| template<TensorRank Rank> |
| ScalarValue | get_divergence (Types::Index field_index, DependencyType type) const |
| | Return the divergence of the specified field.
|
| |
| template<TensorRank Rank, DependencyType type> |
| dealii::SymmetricTensor< 2, dim, ScalarValue > | get_symmetric_gradient (Types::Index field_index) const |
| | Return the symmetric gradient of the specified field.
|
| |
| template<TensorRank Rank> |
| dealii::SymmetricTensor< 2, dim, ScalarValue > | get_symmetric_gradient (Types::Index field_index, DependencyType type) const |
| | Return the symmetric gradient of the specified field.
|
| |
| template<TensorRank Rank, DependencyType type> |
| dealii::Tensor< 1,(dim==2 ? 1 :dim), ScalarValue > | get_curl (Types::Index field_index) const |
| | Return the curl of the specified field.
|
| |
| template<TensorRank Rank> |
| dealii::Tensor< 1,(dim==2 ? 1 :dim), ScalarValue > | get_curl (Types::Index field_index, DependencyType type) const |
| | Return the curl of the specified field.
|
| |
| dealii::Point< dim, ScalarValue > | get_q_point_location () const |
| | Return the quadrature point location.
|
| |
| ScalarValue | get_element_volume () const |
| | Return the quadrature point location.
|
| |
| unsigned int | get_n_q_points () const |
| | Return the number of quadrature points.
|
| |
| template<typename ValType> |
| void | set_value_term (Types::Index field_index, const ValType &val) |
| | Set the residual value of the specified scalar/vector field.
|
| |
| template<typename GradType> |
| void | set_gradient_term (Types::Index field_index, const GradType &val) |
| | Set the residual gradient of the specified scalar/vector field.
|
| |
| template<TensorRank Rank, DependencyType type> |
| DEAL_II_ALWAYS_INLINE FieldContainer< dim, degree, number >::template Value< Rank > | get_value (Types::Index field_index) const |
| |
| template<TensorRank Rank> |
| DEAL_II_ALWAYS_INLINE FieldContainer< dim, degree, number >::template Value< Rank > | get_value (Types::Index field_index, DependencyType type) const |
| |
| template<TensorRank Rank, DependencyType type> |
| DEAL_II_ALWAYS_INLINE FieldContainer< dim, degree, number >::template Gradient< Rank > | get_gradient (Types::Index field_index) const |
| |
| template<TensorRank Rank> |
| DEAL_II_ALWAYS_INLINE FieldContainer< dim, degree, number >::template Gradient< Rank > | get_gradient (Types::Index field_index, DependencyType type) const |
| |
| template<TensorRank Rank, DependencyType type> |
| DEAL_II_ALWAYS_INLINE FieldContainer< dim, degree, number >::template Hessian< Rank > | get_hessian (Types::Index field_index) const |
| |
| template<TensorRank Rank> |
| DEAL_II_ALWAYS_INLINE FieldContainer< dim, degree, number >::template Hessian< Rank > | get_hessian (Types::Index field_index, DependencyType type) const |
| |
| template<TensorRank Rank, DependencyType type> |
| DEAL_II_ALWAYS_INLINE FieldContainer< dim, degree, number >::template Gradient< Rank > | get_hessian_diagonal (Types::Index field_index) const |
| |
| template<TensorRank Rank> |
| DEAL_II_ALWAYS_INLINE FieldContainer< dim, degree, number >::template Gradient< Rank > | get_hessian_diagonal (Types::Index field_index, DependencyType type) const |
| |
| template<TensorRank Rank, DependencyType type> |
| DEAL_II_ALWAYS_INLINE FieldContainer< dim, degree, number >::template Value< Rank > | get_laplacian (Types::Index field_index) const |
| |
| template<TensorRank Rank> |
| DEAL_II_ALWAYS_INLINE FieldContainer< dim, degree, number >::template Value< Rank > | get_laplacian (Types::Index field_index, DependencyType type) const |
| |
| template<TensorRank Rank, DependencyType type> |
| DEAL_II_ALWAYS_INLINE FieldContainer< dim, degree, number >::ScalarValue | get_divergence (Types::Index field_index) const |
| |
| template<TensorRank Rank> |
| DEAL_II_ALWAYS_INLINE FieldContainer< dim, degree, number >::ScalarValue | get_divergence (Types::Index field_index, DependencyType type) const |
| |
| template<TensorRank Rank, DependencyType type> |
| DEAL_II_ALWAYS_INLINE dealii::SymmetricTensor< 2, dim, typename FieldContainer< dim, degree, number >::ScalarValue > | get_symmetric_gradient (Types::Index field_index) const |
| |
| template<TensorRank Rank> |
| DEAL_II_ALWAYS_INLINE dealii::SymmetricTensor< 2, dim, typename FieldContainer< dim, degree, number >::ScalarValue > | get_symmetric_gradient (Types::Index field_index, DependencyType type) const |
| |
| template<TensorRank Rank, DependencyType type> |
| DEAL_II_ALWAYS_INLINE dealii::Tensor< 1,(dim==2 ? 1 :dim), typename FieldContainer< dim, degree, number >::ScalarValue > | get_curl (Types::Index field_index) const |
| |
| template<TensorRank Rank> |
| DEAL_II_ALWAYS_INLINE dealii::Tensor< 1,(dim==2 ? 1 :dim), typename FieldContainer< dim, degree, number >::ScalarValue > | get_curl (Types::Index field_index, DependencyType type) const |
| |
| template<typename ValType> |
| DEAL_II_ALWAYS_INLINE void | set_value_term (Types::Index field_index, const ValType &val) |
| |
| template<typename GradType> |
| DEAL_II_ALWAYS_INLINE void | set_gradient_term (Types::Index field_index, const GradType &val) |
| |
| template<TensorRank Rank> |
| DEAL_II_ALWAYS_INLINE std::vector< typename FieldContainer< dim, degree, number >::template FEEValuationDeps< Rank > > & | get_relevant_feeval_vector () |
| |
| template<TensorRank Rank> |
| DEAL_II_ALWAYS_INLINE const std::vector< typename FieldContainer< dim, degree, number >::template FEEValuationDeps< Rank > > & | get_relevant_feeval_vector () const |
| |
template<unsigned int dim, unsigned int degree, typename number>
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.
- Template Parameters
-
| dim | The number of dimensions in the problem. |
| degree | The polynomial degree of the shape functions. |
| number | Datatype to use for dealii::VectorizedArray<number>. Either double or float. |
Importantly, this class is mostly a wrapper for the dealii::FEEvaluation class, which allows for the evaluation of functions at quadrature points and cell integrations (basically the backbone of the FEM solver). As such, it is one of the most important classes when it comes to performance because these functions are called millions of times.