Smith  0.1
Smith is an implicit thermal structural 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  smith::TensorProductQuadratureRule< q >
 a convenience class for generating information about tensor product integration rules from the underlying 1D rule. More...
 
struct  smith::CompileTimeValue< val >
 
struct  smith::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  smith::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  smith::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  smith::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  smith::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  smith::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  smith::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  smith::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  smith::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  smith::H1< p, c >
 H1 elements of order p. More...
 
struct  smith::Hcurl< p, c >
 H(curl) elements of order p. More...
 
struct  smith::L2< p, c >
 Discontinuous elements of order p. More...
 
struct  smith::QOI
 "Quantity of Interest" elements (i.e. elements with a single shape function, 1) More...
 
struct  smith::FunctionSpace
 a small POD class for tracking function space metadata More...
 

Namespaces

 smith
 Accelerator functionality.
 

Enumerations

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

Functions

template<mfem::Geometry::Type g>
constexpr SMITH_HOST_DEVICE int smith::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>
SMITH_HOST_DEVICE void smith::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>
SMITH_HOST_DEVICE void smith::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.