|
FEAT 3
Finite Element Analysis Toolbox
|
Assemble class Discrete Integrale of an FE function over a d-1 manifold. More...
#include <surface_integrator.hpp>
Public Types | |
| typedef Tiny::Vector< DataType, domain_dim > | CoordVecType |
| typedef Cubature::Rule< SurfaceShapeType, DataType, DataType, RefCoordVecType > | CubatureRuleType |
| typedef TrafoType::CoordType | DataType |
| typedef Tiny::Matrix< DataType, domain_dim, sub_dim, sub_dim > | HessianInvType |
| typedef Tiny::Tensor3< DataType, domain_dim, sub_dim, sub_dim > | HessianType |
| typedef Index | IndexType |
| typedef Tiny::Matrix< DataType, sub_dim, domain_dim > | JacobianInvType |
| typedef Tiny::Matrix< DataType, domain_dim, sub_dim > | JacobianType |
| typedef TrafoType::MeshType | MeshType |
| typedef Tiny::Vector< DataType, domain_dim > | NormalVecType |
| typedef Tiny::Vector< DataType, sub_dim > | RefCoordVecType |
| typedef SurfaceShape_ | SurfaceShapeType |
| typedef Trafo_ | TrafoType |
Public Member Functions | |
| SurfaceIntegrator (const Trafo_ &trafo, const Cubature::DynamicFactory &cubature_factory_) | |
| Initializes the integrator with a cell wise list of vertices. More... | |
| template<typename VertIdx_ > | |
| void | add_face (const VertIdx_ &vert_idx) |
| template<typename Vtxs_ > | |
| void | add_face_vertices (const Vtxs_ &face_vertices) |
| Simply pushes new vertices to the end of the current vertex array. More... | |
| template<typename Job_ > | |
| void | assemble (Job_ &job) |
| template<typename Job_ > | |
| void | assemble_omp (Job_ &job) |
| void | compile () |
| bool | get_normal_view () const |
| template<typename MaskVec_ > | |
| void | set_mask_vector (const MaskVec_ &cell_mask_vec) |
| Sets the cell mask vector, which sorts out any cells completelly outside the fluid domain. More... | |
| void | set_normal_view (bool inside_view) |
| template<typename Vtxs_ > | |
| void | set_vertices (const std::vector< Vtxs_ > &vertices) |
Static Public Attributes | |
| static constexpr int | domain_dim = Trafo_::ShapeType::dimension |
| static constexpr int | sub_dim = SurfaceShapeType::dimension |
| static constexpr int | verts_per_face = Shape::FaceTraits<SurfaceShapeType, 0>::count |
Private Member Functions | |
| bool | boundingbox_intersect_test (const BoundingBoxType< DataType, domain_dim > &bb_a, const BoundingBoxType< DataType, domain_dim > &bb_b) |
| tests whether two boundingboxes intersect in any way More... | |
Private Attributes | |
| std::vector< IndexType > | _active_surfaces |
| std::vector< IndexType > | _cell_helper |
| std::vector< IndexType > | _cell_helper_offsets |
| std::vector< int > | _cell_mask_vec |
| CubatureRuleType | _cubature_rule |
| bool | _inside_view |
| Normal defined from the inside or outside? More... | |
| std::vector< Geometry::IndexTuple< verts_per_face > > | _shape_index_tmp |
| Geometry::IndexSet< verts_per_face > | _shape_indices |
| std::vector< Tiny::Vector< DataType, domain_dim > > | _shape_vertices |
| const TrafoType & | _trafo |
Assemble class Discrete Integrale of an FE function over a d-1 manifold.
| Trafo_ | The trafo on which the FE spaces are defined on |
| SurfaceShape_ | The shapetype of the surface elements |
Also any vertex mapping provided to this class is assumed to have the 0-th submanifold ordering in the sense of the FEAT3 mesh element mapping, i.e. We always look onto the inner face and the ordering is always left to right:
Line2d: 0 --— 1
Quad: 2 --— 3 | | | | 0 --— 1
Triang: 2 | - | | | - 0 — 1
Definition at line 96 of file surface_integrator.hpp.
| typedef Tiny::Vector<DataType, domain_dim> FEAT::Assembly::SurfaceIntegrator< Trafo_, SurfaceShape_ >::CoordVecType |
Definition at line 106 of file surface_integrator.hpp.
| typedef Cubature::Rule<SurfaceShapeType, DataType, DataType, RefCoordVecType> FEAT::Assembly::SurfaceIntegrator< Trafo_, SurfaceShape_ >::CubatureRuleType |
Definition at line 113 of file surface_integrator.hpp.
| typedef TrafoType::CoordType FEAT::Assembly::SurfaceIntegrator< Trafo_, SurfaceShape_ >::DataType |
Definition at line 104 of file surface_integrator.hpp.
| typedef Tiny::Matrix<DataType, domain_dim, sub_dim, sub_dim> FEAT::Assembly::SurfaceIntegrator< Trafo_, SurfaceShape_ >::HessianInvType |
Definition at line 112 of file surface_integrator.hpp.
| typedef Tiny::Tensor3<DataType, domain_dim, sub_dim, sub_dim> FEAT::Assembly::SurfaceIntegrator< Trafo_, SurfaceShape_ >::HessianType |
Definition at line 111 of file surface_integrator.hpp.
| typedef Index FEAT::Assembly::SurfaceIntegrator< Trafo_, SurfaceShape_ >::IndexType |
Definition at line 105 of file surface_integrator.hpp.
| typedef Tiny::Matrix<DataType, sub_dim, domain_dim> FEAT::Assembly::SurfaceIntegrator< Trafo_, SurfaceShape_ >::JacobianInvType |
Definition at line 110 of file surface_integrator.hpp.
| typedef Tiny::Matrix<DataType, domain_dim, sub_dim> FEAT::Assembly::SurfaceIntegrator< Trafo_, SurfaceShape_ >::JacobianType |
Definition at line 109 of file surface_integrator.hpp.
| typedef TrafoType::MeshType FEAT::Assembly::SurfaceIntegrator< Trafo_, SurfaceShape_ >::MeshType |
Definition at line 100 of file surface_integrator.hpp.
| typedef Tiny::Vector<DataType, domain_dim> FEAT::Assembly::SurfaceIntegrator< Trafo_, SurfaceShape_ >::NormalVecType |
Definition at line 107 of file surface_integrator.hpp.
| typedef Tiny::Vector<DataType, sub_dim> FEAT::Assembly::SurfaceIntegrator< Trafo_, SurfaceShape_ >::RefCoordVecType |
Definition at line 108 of file surface_integrator.hpp.
| typedef SurfaceShape_ FEAT::Assembly::SurfaceIntegrator< Trafo_, SurfaceShape_ >::SurfaceShapeType |
Definition at line 101 of file surface_integrator.hpp.
| typedef Trafo_ FEAT::Assembly::SurfaceIntegrator< Trafo_, SurfaceShape_ >::TrafoType |
Definition at line 99 of file surface_integrator.hpp.
|
inlineexplicit |
Initializes the integrator with a cell wise list of vertices.
| [in] | vertices | Vector of tupled vertex data |
| [in] | index | The sparse index array into the vertex data, e.g. face 7 -> Verts (0, 7, 14, 36) |
Definition at line 275 of file surface_integrator.hpp.
|
inline |
Adds a new face, indexing into the current vertex set
Definition at line 320 of file surface_integrator.hpp.
|
inline |
Simply pushes new vertices to the end of the current vertex array.
Definition at line 301 of file surface_integrator.hpp.
|
inline |
Definition at line 331 of file surface_integrator.hpp.
|
inline |
Definition at line 363 of file surface_integrator.hpp.
|
inlineprivate |
tests whether two boundingboxes intersect in any way
Definition at line 136 of file surface_integrator.hpp.
|
inline |
Definition at line 159 of file surface_integrator.hpp.
|
inline |
Definition at line 154 of file surface_integrator.hpp.
|
inline |
Sets the cell mask vector, which sorts out any cells completelly outside the fluid domain.
| [in] | cell_mask_vec | Mask vector, for example generated by fbm_asm->get_fbm_mask_vector(dim) |
Definition at line 352 of file surface_integrator.hpp.
|
inline |
Definition at line 149 of file surface_integrator.hpp.
|
inline |
Careful, this overwrites any previous vertex info
Definition at line 286 of file surface_integrator.hpp.
|
private |
Definition at line 127 of file surface_integrator.hpp.
|
private |
Definition at line 125 of file surface_integrator.hpp.
|
private |
Definition at line 126 of file surface_integrator.hpp.
|
private |
Definition at line 128 of file surface_integrator.hpp.
|
private |
Definition at line 130 of file surface_integrator.hpp.
|
private |
Normal defined from the inside or outside?
Definition at line 133 of file surface_integrator.hpp.
|
private |
Definition at line 123 of file surface_integrator.hpp.
|
private |
Definition at line 121 of file surface_integrator.hpp.
|
private |
Definition at line 120 of file surface_integrator.hpp.
|
private |
Definition at line 119 of file surface_integrator.hpp.
|
staticconstexpr |
Definition at line 102 of file surface_integrator.hpp.
|
staticconstexpr |
Definition at line 103 of file surface_integrator.hpp.
|
staticconstexpr |
Definition at line 115 of file surface_integrator.hpp.