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.