|
FEAT 3
Finite Element Analysis Toolbox
|
Trace Integral Assembler class template. More...
#include <trace_assembler.hpp>
Public Types | |
| typedef TrafoType::MeshType | MeshType |
| typedef TrafoType::ShapeType | ShapeType |
| typedef Trafo_ | TrafoType |
Public Member Functions | |
| TraceAssembler (const TrafoType &trafo) | |
| Constructor. More... | |
| void | add_facet (Index ifacet) |
| Adds a single facet to the assembler. More... | |
| void | add_mesh_part (const Geometry::MeshPart< MeshType > &mesh_part) |
| Adds all facets of a mesh part to the assembler. More... | |
| template<typename Job_ > | |
| void | assemble (Job_ &job) |
| Executes a trace assembly job. More... | |
| void | clear () |
| Clears the assembler. More... | |
| void | compile () |
| Compiles the assembler for all facets that have been added manually. More... | |
| void | compile_all_facets (bool inner, bool outer) |
| Compiles the assembler for all inner and/our outer facets of the underlying mesh. More... | |
| const TrafoType & | get_trafo () const |
Static Public Attributes | |
| static constexpr int | facet_dim = shape_dim-1 |
| static constexpr int | shape_dim = ShapeType::dimension |
Protected Member Functions | |
| bool | _find_local_facet (Index face, Index cell, int &facet, int &ori) |
| Helper function: tries to find the local facet index for a given facet/cell pair. More... | |
Protected Attributes | |
| std::vector< int > | _cell_facet |
| std::vector< Index > | _cells |
| the indices of all cells and facets to loop over during assembly More... | |
| std::vector< int > | _facet_mask |
| the facet masks, local cell facet indices and facet orientation codes More... | |
| std::vector< int > | _facet_ori |
| std::vector< Index > | _facets |
| const TrafoType & | _trafo |
| a reference to the trafo More... | |
Trace Integral Assembler class template.
This class can be used to assemble operators, functionals and various other quantities on (a part of) the boundary of a mesh or any other set of mesh facets.
After you have constructed the trace assembler object, you still have to tell the assembler on which set of facets the assembly should take place before you can actually assemble anything. There are 2 ways to do this:
| Trafo_ | The transformation on whose underlying mesh the assembly should take place |
Definition at line 372 of file trace_assembler.hpp.
| typedef TrafoType::MeshType FEAT::Assembly::TraceAssembler< Trafo_ >::MeshType |
Definition at line 376 of file trace_assembler.hpp.
| typedef TrafoType::ShapeType FEAT::Assembly::TraceAssembler< Trafo_ >::ShapeType |
Definition at line 377 of file trace_assembler.hpp.
| typedef Trafo_ FEAT::Assembly::TraceAssembler< Trafo_ >::TrafoType |
Definition at line 375 of file trace_assembler.hpp.
|
inlineexplicit |
Constructor.
| [in] | trafo | A resident reference to the trafo on which to assemble |
Definition at line 397 of file trace_assembler.hpp.
|
inlineprotected |
Helper function: tries to find the local facet index for a given facet/cell pair.
| [in] | face | The global index of the facet that is adjacent to cell |
| [in] | cell | The global index of the cell/element that is adjacent to face |
| [out] | facet | The local facet index of face with respect to cell |
| [out] | ori | The local facet orientation code of face with respect to the corresponding reference element facet of cell |
true, if the local facet was identified, or false, if face does not seem to be a facet of cell Definition at line 652 of file trace_assembler.hpp.
References FEAT::Assembly::TraceAssembler< Trafo_ >::_trafo.
Referenced by FEAT::Assembly::TraceAssembler< Trafo_ >::compile(), and FEAT::Assembly::TraceAssembler< Trafo_ >::compile_all_facets().
|
inline |
Adds a single facet to the assembler.
| [in] | facet | The index of the facet to be added to the assembler. |
Definition at line 428 of file trace_assembler.hpp.
References FEAT::Assembly::TraceAssembler< Trafo_ >::_facet_mask, and ASSERTM.
|
inline |
Adds all facets of a mesh part to the assembler.
| [in] | mesh_part | The mesh part whose facets are to be added. |
Definition at line 440 of file trace_assembler.hpp.
References FEAT::Assembly::TraceAssembler< Trafo_ >::_facet_mask.
|
inline |
Executes a trace assembly job.
| [in,out] | job | A transient reference to the job that is to be assembled. See Assembly::TraceAssemblyJob for details. |
Definition at line 562 of file trace_assembler.hpp.
References FEAT::Assembly::TraceAssembler< Trafo_ >::_cells.
Referenced by FEAT::Assembly::assemble_bilinear_operator_apply_vector_1(), FEAT::Assembly::assemble_bilinear_operator_matrix_1(), FEAT::Assembly::assemble_bilinear_operator_matrix_2(), FEAT::Assembly::assemble_jump_mass_matrix(), FEAT::Assembly::assemble_jump_stabilization_matrix(), FEAT::Assembly::assemble_linear_functional_vector(), FEAT::Assembly::integrate_analytic_function(), FEAT::Assembly::integrate_discrete_function(), and FEAT::Assembly::integrate_error_function().
|
inline |
Clears the assembler.
Definition at line 412 of file trace_assembler.hpp.
References FEAT::Assembly::TraceAssembler< Trafo_ >::_cells.
|
inline |
Compiles the assembler for all facets that have been added manually.
This function compiles the assembler for all facets that have been added manually by previous calls of the add_facet or add_mesh_part functions.
Definition at line 457 of file trace_assembler.hpp.
References FEAT::Assembly::TraceAssembler< Trafo_ >::_cells, FEAT::Assembly::TraceAssembler< Trafo_ >::_facet_mask, FEAT::Assembly::TraceAssembler< Trafo_ >::_find_local_facet(), FEAT::Assembly::TraceAssembler< Trafo_ >::_trafo, FEAT::Adjacency::Graph::image_begin(), FEAT::Adjacency::Graph::image_end(), FEAT::Adjacency::injectify_transpose, and XABORTM.
|
inline |
Compiles the assembler for all inner and/our outer facets of the underlying mesh.
| [in] | inner | Specifies whether the mesh's inner facets are to be added to the assembler or not. |
| [in] | outer | Specifies whether the mesh's outer (i.e. boundary) facets are to be added to the assembler or not. |
Definition at line 508 of file trace_assembler.hpp.
References FEAT::Assembly::TraceAssembler< Trafo_ >::_cells, FEAT::Assembly::TraceAssembler< Trafo_ >::_facet_mask, FEAT::Assembly::TraceAssembler< Trafo_ >::_find_local_facet(), FEAT::Assembly::TraceAssembler< Trafo_ >::_trafo, FEAT::Adjacency::Graph::degree(), FEAT::Adjacency::Graph::image_begin(), FEAT::Adjacency::Graph::image_end(), FEAT::Adjacency::injectify_transpose, XABORTM, and XASSERT.
|
inline |
Definition at line 404 of file trace_assembler.hpp.
References FEAT::Assembly::TraceAssembler< Trafo_ >::_trafo.
Referenced by FEAT::Assembly::assemble_bilinear_operator_apply_vector_1(), FEAT::Assembly::assemble_bilinear_operator_matrix_1(), FEAT::Assembly::assemble_bilinear_operator_matrix_2(), FEAT::Assembly::assemble_jump_mass_matrix(), FEAT::Assembly::assemble_jump_stabilization_matrix(), FEAT::Assembly::assemble_linear_functional_vector(), FEAT::Assembly::integrate_analytic_function(), FEAT::Assembly::integrate_discrete_function(), and FEAT::Assembly::integrate_error_function().
|
protected |
Definition at line 386 of file trace_assembler.hpp.
|
protected |
the indices of all cells and facets to loop over during assembly
Definition at line 388 of file trace_assembler.hpp.
Referenced by FEAT::Assembly::TraceAssembler< Trafo_ >::assemble(), FEAT::Assembly::TraceAssembler< Trafo_ >::clear(), FEAT::Assembly::TraceAssembler< Trafo_ >::compile(), and FEAT::Assembly::TraceAssembler< Trafo_ >::compile_all_facets().
|
protected |
the facet masks, local cell facet indices and facet orientation codes
Definition at line 386 of file trace_assembler.hpp.
Referenced by FEAT::Assembly::TraceAssembler< Trafo_ >::add_facet(), FEAT::Assembly::TraceAssembler< Trafo_ >::add_mesh_part(), FEAT::Assembly::TraceAssembler< Trafo_ >::compile(), and FEAT::Assembly::TraceAssembler< Trafo_ >::compile_all_facets().
|
protected |
Definition at line 386 of file trace_assembler.hpp.
|
protected |
Definition at line 388 of file trace_assembler.hpp.
|
protected |
a reference to the trafo
Definition at line 384 of file trace_assembler.hpp.
Referenced by FEAT::Assembly::TraceAssembler< Trafo_ >::_find_local_facet(), FEAT::Assembly::TraceAssembler< Trafo_ >::compile(), FEAT::Assembly::TraceAssembler< Trafo_ >::compile_all_facets(), and FEAT::Assembly::TraceAssembler< Trafo_ >::get_trafo().
|
staticconstexpr |
Definition at line 380 of file trace_assembler.hpp.
|
staticconstexpr |
Definition at line 379 of file trace_assembler.hpp.