Serac  0.1
Serac is an implicit thermal strucural mechanics simulation code.
Classes | Namespaces | Enumerations | Functions
finite_element.hpp File Reference

This file contains helper traits and enumerations for classifying finite elements. More...

#include "tuple.hpp"
#include "tensor.hpp"
#include "geometry.hpp"
#include "polynomials.hpp"
#include "detail/segment_H1.inl"
#include "detail/segment_Hcurl.inl"
#include "detail/segment_L2.inl"
#include "detail/triangle_H1.inl"
#include "detail/triangle_L2.inl"
#include "detail/quadrilateral_H1.inl"
#include "detail/quadrilateral_Hcurl.inl"
#include "detail/quadrilateral_L2.inl"
#include "detail/tetrahedron_H1.inl"
#include "detail/tetrahedron_L2.inl"
#include "detail/hexahedron_H1.inl"
#include "detail/hexahedron_Hcurl.inl"
#include "detail/hexahedron_L2.inl"
#include "detail/qoi.inl"
Include dependency graph for finite_element.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  serac::TensorProductQuadratureRule< q >
 a convenience class for generating information about tensor product integration rules from the underlying 1D rule. More...
 
struct  serac::CompileTimeValue< val >
 
struct  serac::batched_jacobian< mfem::Geometry::CUBE, q >
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
struct  serac::batched_jacobian< mfem::Geometry::SQUARE, q >
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
struct  serac::batched_jacobian< mfem::Geometry::TRIANGLE, q >
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
struct  serac::batched_jacobian< mfem::Geometry::TETRAHEDRON, q >
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
struct  serac::batched_position< mfem::Geometry::CUBE, q >
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
struct  serac::batched_position< mfem::Geometry::SQUARE, q >
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
struct  serac::batched_position< mfem::Geometry::TRIANGLE, q >
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
struct  serac::batched_position< mfem::Geometry::TETRAHEDRON, q >
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
struct  serac::batched_position< mfem::Geometry::SEGMENT, q >
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
struct  serac::H1< p, c >
 H1 elements of order p. More...
 
struct  serac::Hcurl< p, c >
 H(curl) elements of order p. More...
 
struct  serac::L2< p, c >
 Discontinuous elements of order p. More...
 
struct  serac::QOI
 "Quantity of Interest" elements (i.e. elements with a single shape function, 1) More...
 
struct  serac::FunctionSpace
 a small POD class for tracking function space metadata More...
 

Namespaces

 serac
 Accelerator functionality.
 

Enumerations

enum class  serac::Family {
  QOI , H1 , HCURL , HDIV ,
  L2
}
 Element conformity. More...
 

Functions

template<mfem::Geometry::Type g>
constexpr SERAC_HOST_DEVICE int serac::elements_per_block (int q)
 this function returns information about how many elements should be processed by a single thread block in CUDA (note: the optimal values are hardware and problem specific, but these values are still significantly faster than naively allocating only 1 element / block) More...
 
template<Family f, typename T , int q, int dim>
SERAC_HOST_DEVICE void serac::parent_to_physical (tensor< T, q > &qf_input, const tensor< double, dim, dim, q > &jacobians)
 transform information in the parent space (i.e. values and derivatives w.r.t {xi, eta, zeta}) into the physical space (i.e. values and derivatives w.r.t. {x, y, z}) More...
 
template<Family f, typename T , int q, int dim>
SERAC_HOST_DEVICE void serac::physical_to_parent (tensor< T, q > &qf_output, const tensor< double, dim, dim, q > &jacobians)
 transform information in the physical space (i.e. sources and fluxes w.r.t {x, y, z}) back to the parent space (i.e. values and derivatives w.r.t. {xi, eta, zeta}). Note: this also multiplies by the outputs by the determinant of the quadrature point Jacobian. More...
 

Detailed Description

This file contains helper traits and enumerations for classifying finite elements.

Definition in file finite_element.hpp.