Serac  0.1
Serac is an implicit thermal strucural mechanics simulation code.
geometric_factors.hpp
1 #pragma once
2 
3 #include "serac/numerics/functional/element_restriction.hpp" // for FaceType
4 #include "serac/numerics/functional/finite_element.hpp" // for Geometry
6 
7 #include "mfem.hpp"
8 
9 namespace serac {
10 
19 
28  GeometricFactors(const Domain& domain, int q, mfem::Geometry::Type elem_geom);
29 
39  GeometricFactors(const Domain& domain, int q, mfem::Geometry::Type elem_geom, FaceType type);
40 
41  // descriptions copied from mfem
42 
44 
49  mfem::Vector X;
50 
52 
58  mfem::Vector J;
59 
61  std::vector<int> elements;
62 
64  std::size_t num_elements;
65 };
66 
67 } // namespace serac
many of the functions in this file amount to extracting element indices from an mfem::Mesh like
This file contains helper traits and enumerations for classifying finite elements.
Accelerator functionality.
Definition: serac.cpp:38
constexpr SERAC_HOST_DEVICE auto type(const tuple< T... > &values)
a function intended to be used for extracting the ith type from a tuple.
Definition: tuple.hpp:274
a class for representing a geometric region that can be used for integration
Definition: domain.hpp:21
a class that computes and stores positions and jacobians at each quadrature point
std::size_t num_elements
the number of elements in the domain
std::vector< int > elements
list of element indices that are part of the associated domain
mfem::Vector J
Jacobians of the element transformations at all quadrature points.
mfem::Vector X
Mapped (physical) coordinates of all quadrature points.
GeometricFactors()
default ctor, leaving this object uninitialized