Provides transformation routines for converting integrals on elements in physical space to elements in reference orientation. More...
#include "viennafem/forwards.h"#include "viennafem/cell_quan.hpp"#include "viennamath/expression.hpp"#include "viennamath/manipulation/substitute.hpp"#include "viennamath/manipulation/diff.hpp"#include "viennagrid/topology/triangle.hpp"#include "viennagrid/topology/tetrahedron.hpp"Go to the source code of this file.
Data Structures | |
| struct | jacobian_adder< CellType, InterfaceType, ReferenceCellTag > |
| Multiplies a given expression with the Jacobian cell-quantity. If the expression is given by an integral, the integrand is multiplied with the Jacobian. More... | |
Namespaces | |
| namespace | viennafem |
The main namespace for ViennaFEM. All user functionality resides in this namespace. | |
| namespace | viennafem::detail |
Contains implementation details of ViennaFEM not intended to be used by the library user directly. | |
Functions | |
| template<typename CellType , typename InterfaceType > | |
| void | wrap_jacobian (viennafem::cell_quan< CellType, InterfaceType > &det_dF_dt, viennafem::unit_interval) |
| Wraps the cell quantity for the Jacobian on each cell depending on the reference element used. This is the overload for the unit interval. | |
| template<typename CellType , typename InterfaceType > | |
| void | wrap_jacobian (viennafem::cell_quan< CellType, InterfaceType > &det_dF_dt, viennafem::unit_triangle) |
| Wraps the cell quantity for the Jacobian on each cell depending on the reference element used. This is the overload for the unit triangle. | |
| template<typename CellType , typename InterfaceType > | |
| void | wrap_jacobian (viennafem::cell_quan< CellType, InterfaceType > &det_dF_dt, viennafem::unit_tetrahedron) |
| Wraps the cell quantity for the Jacobian on each cell depending on the reference element used. This is the overload for the unit tetrahedron. | |
| template<typename CellType , typename InterfaceType > | |
| void | wrap_jacobian (viennafem::cell_quan< CellType, InterfaceType > &det_dF_dt, viennafem::unit_square) |
| Wraps the cell quantity for the Jacobian on each cell depending on the reference element used. This is the overload for the unit square. | |
| template<typename CellType , typename InterfaceType > | |
| void | wrap_jacobian (viennafem::cell_quan< CellType, InterfaceType > &det_dF_dt, viennafem::unit_cube) |
| Wraps the cell quantity for the Jacobian on each cell depending on the reference element used. This is the overload for the unit cube. | |
| template<long i, long j, typename CellType , typename InterfaceType > | |
| void | wrap_dt_dx (viennafem::cell_quan< CellType, InterfaceType > &dt_dx, viennafem::unit_interval) |
| Wraps the cell quantity for the partial derivatives of the reference mapping on each cell depending on the reference element used. This is the overload for the unit interval. | |
| template<long i, long j, typename CellType , typename InterfaceType > | |
| void | wrap_dt_dx (viennafem::cell_quan< CellType, InterfaceType > &dt_dx, viennafem::unit_triangle) |
| Wraps the cell quantity for the partial derivatives of the reference mapping on each cell depending on the reference element used. This is the overload for the unit triangle. | |
| template<long i, long j, typename CellType , typename InterfaceType > | |
| void | wrap_dt_dx (viennafem::cell_quan< CellType, InterfaceType > &dt_dx, viennafem::unit_tetrahedron) |
| Wraps the cell quantity for the partial derivatives of the reference mapping on each cell depending on the reference element used. This is the overload for the unit tetrahedron. | |
| template<long i, long j, typename CellType , typename InterfaceType > | |
| void | wrap_dt_dx (viennafem::cell_quan< CellType, InterfaceType > &dt_dx, viennafem::unit_square) |
| Wraps the cell quantity for the partial derivatives of the reference mapping on each cell depending on the reference element used. This is the overload for the unit square. | |
| template<long i, long j, typename CellType , typename InterfaceType > | |
| void | wrap_dt_dx (viennafem::cell_quan< CellType, InterfaceType > &dt_dx, viennafem::unit_cube) |
| Wraps the cell quantity for the partial derivatives of the reference mapping on each cell depending on the reference element used. This is the overload for the unit cube. | |
| template<typename CellType , typename EquationType , typename PDESystemType , typename ReferenceCellTag > | |
| EquationType | transform_to_reference_cell_1d (EquationType const &weak_form, PDESystemType const &pde_system, ReferenceCellTag) |
| Transforms a weak formulation given in physical space to the reference cell. Also transforms derivatives where appropriate. Implementation for the 1d-case. | |
| template<typename CellType , typename EquationType , typename PDESystemType , typename ReferenceCellTag > | |
| EquationType | transform_to_reference_cell_2d (EquationType const &weak_form, PDESystemType const &pde_system, ReferenceCellTag) |
| Transforms a weak formulation given in physical space to the reference cell. Also transforms derivatives where appropriate. Implementation for the 2d-case. | |
| template<typename CellType , typename EquationType , typename PDESystemType , typename ReferenceCellTag > | |
| EquationType | transform_to_reference_cell_3d (EquationType const &weak_form, PDESystemType const &pde_system, ReferenceCellTag) |
| Transforms a weak formulation given in physical space to the reference cell. Also transforms derivatives where appropriate. Implementation for the 3d-case. | |
| template<typename CellType , typename EquationType , typename PDESystemType > | |
| EquationType | transform_to_reference_cell (EquationType const &weak_form, PDESystemType const &pde_system, viennafem::unit_interval) |
| Transforms a general weak form on any line to an integration over the unit interval. | |
| template<typename CellType , typename EquationType , typename PDESystemType > | |
| EquationType | transform_to_reference_cell (EquationType const &weak_form, PDESystemType const &pde_system, viennafem::unit_square) |
| Transforms a general weak form on any quadrilateral to an integration over the unit square. | |
| template<typename CellType , typename EquationType , typename PDESystemType > | |
| EquationType | transform_to_reference_cell (EquationType const &weak_form, PDESystemType const &pde_system, viennafem::unit_triangle) |
| Transforms a general weak form on any triangle to an integration over the unit triangle. | |
| template<typename CellType , typename EquationType , typename PDESystemType > | |
| EquationType | transform_to_reference_cell (EquationType const &weak_form, PDESystemType const &pde_system, viennafem::unit_cube) |
| Transforms a general weak form on any hexahedron to an integration over the unit cube. | |
| template<typename CellType , typename EquationType , typename PDESystemType > | |
| EquationType | transform_to_reference_cell (EquationType const &weak_form, PDESystemType const &pde_system, viennafem::unit_tetrahedron) |
| Transforms a general weak form on any tetrahedron to an integration over the unit tetrahedron. | |
| template<typename CellType , typename EquationType , typename PDESystemType > | |
| EquationType | transform_to_reference_cell (EquationType const &weak_form, PDESystemType const &pde_system) |
| Transforms a weak formulation given by an integration over an arbitrary cell to the reference element. | |
| template<typename EquationType , typename PDESystemType , typename ExpressionType > | |
| EquationType | insert_test_and_trial_functions (EquationType weak_form, PDESystemType const &pde_system, std::vector< ExpressionType > test_func, std::vector< ExpressionType > trial_func) |
| Inserts vector-valued test and trial functions into the weak form. | |
Provides transformation routines for converting integrals on elements in physical space to elements in reference orientation.
1.7.1