LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
Loading...
Searching...
No Matches
Public Member Functions | Private Types | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
lf::refinement::MeshFunctionTransfer< MF > Class Template Reference

A MeshFunction representing interpolation on a lf::refinement::MeshHierarchy. More...

#include <lf/refinement/mesh_function_transfer.h>

Public Member Functions

 MeshFunctionTransfer (const lf::refinement::MeshHierarchy &mh, const MF &mf, lf::base::size_type level_coarse, lf::base::size_type level_fine)
 Constructor.
 
decltype(auto) operator() (const lf::mesh::Entity &e, const Eigen::MatrixXd &local) const
 Evaluate the MeshFunction.
 
std::shared_ptr< const lf::mesh::MeshgetMesh () const
 Access the underlying Mesh.
 

Private Types

using mf_t = std::remove_cv_t<std::remove_reference_t<MF>>
 

Static Private Member Functions

template<typename MF_TEST , typename = decltype(std::declval<MF_TEST>().getMesh())>
static std::true_type has_getMesh_impl (int)
 
template<typename MF_TEST >
static std::false_type has_getMesh_impl (...)
 

Private Attributes

const lf::refinement::MeshHierarchymh_
 
const MF & mf_
 
const lf::base::size_type level_coarse_
 
const lf::base::size_type level_fine_
 

Static Private Attributes

static constexpr bool provides_getMesh
 

Detailed Description

template<mesh::utils::MeshFunction MF>
class lf::refinement::MeshFunctionTransfer< MF >

A MeshFunction representing interpolation on a lf::refinement::MeshHierarchy.

Template Parameters
Thetype of mesh function to interpolate on a finer mesh

Definition at line 18 of file mesh_function_transfer.h.

Member Typedef Documentation

◆ mf_t

template<mesh::utils::MeshFunction MF>
using lf::refinement::MeshFunctionTransfer< MF >::mf_t = std::remove_cv_t<std::remove_reference_t<MF>>
private

Definition at line 19 of file mesh_function_transfer.h.

Constructor & Destructor Documentation

◆ MeshFunctionTransfer()

template<mesh::utils::MeshFunction MF>
lf::refinement::MeshFunctionTransfer< MF >::MeshFunctionTransfer ( const lf::refinement::MeshHierarchy & mh,
const MF & mf,
lf::base::size_type level_coarse,
lf::base::size_type level_fine )
inline

Constructor.

Parameters
mhThe lf::refinement::MeshHierarchy along which the function should be interpolated
mfThe mesh function to be interpolated on a finer mesh
level_coarseThe level of the Mesh which mf is defined on
level_fineThe level of the Mesh this wrapper MeshFunction is defined on

Definition at line 40 of file mesh_function_transfer.h.

References lf::refinement::MeshHierarchy::getMesh(), lf::refinement::MeshHierarchy::NumLevels(), and lf::refinement::MeshFunctionTransfer< MF >::provides_getMesh.

Member Function Documentation

◆ getMesh()

template<mesh::utils::MeshFunction MF>
std::shared_ptr< const lf::mesh::Mesh > lf::refinement::MeshFunctionTransfer< MF >::getMesh ( ) const
inline

Access the underlying Mesh.

Returns
A shared pointer to the Mesh on which this MeshFunction is defined

Definition at line 89 of file mesh_function_transfer.h.

References lf::refinement::MeshHierarchy::getMesh(), lf::refinement::MeshFunctionTransfer< MF >::level_coarse_, and lf::refinement::MeshFunctionTransfer< MF >::mh_.

◆ has_getMesh_impl() [1/2]

template<mesh::utils::MeshFunction MF>
template<typename MF_TEST >
static std::false_type lf::refinement::MeshFunctionTransfer< MF >::has_getMesh_impl ( ...)
staticprivate

◆ has_getMesh_impl() [2/2]

template<mesh::utils::MeshFunction MF>
template<typename MF_TEST , typename = decltype(std::declval<MF_TEST>().getMesh())>
static std::true_type lf::refinement::MeshFunctionTransfer< MF >::has_getMesh_impl ( int )
staticprivate

◆ operator()()

template<mesh::utils::MeshFunction MF>
decltype(auto) lf::refinement::MeshFunctionTransfer< MF >::operator() ( const lf::mesh::Entity & e,
const Eigen::MatrixXd & local ) const
inline

Evaluate the MeshFunction.

Parameters
eThe Entity on which to evaluate this MeshFunction
localThe local coordinates inside e where the MeshFunction should be evaluated
Returns
A std::vector of point evaluations of the MeshFunction

Definition at line 71 of file mesh_function_transfer.h.

References lf::refinement::MeshHierarchy::GeometryInParent(), lf::refinement::MeshFunctionTransfer< MF >::level_coarse_, lf::refinement::MeshFunctionTransfer< MF >::level_fine_, lf::refinement::MeshFunctionTransfer< MF >::mf_, lf::refinement::MeshFunctionTransfer< MF >::mh_, and lf::refinement::MeshHierarchy::ParentEntity().

Member Data Documentation

◆ level_coarse_

template<mesh::utils::MeshFunction MF>
const lf::base::size_type lf::refinement::MeshFunctionTransfer< MF >::level_coarse_
private

◆ level_fine_

template<mesh::utils::MeshFunction MF>
const lf::base::size_type lf::refinement::MeshFunctionTransfer< MF >::level_fine_
private

◆ mf_

template<mesh::utils::MeshFunction MF>
const MF& lf::refinement::MeshFunctionTransfer< MF >::mf_
private

◆ mh_

template<mesh::utils::MeshFunction MF>
const lf::refinement::MeshHierarchy& lf::refinement::MeshFunctionTransfer< MF >::mh_
private

◆ provides_getMesh

template<mesh::utils::MeshFunction MF>
constexpr bool lf::refinement::MeshFunctionTransfer< MF >::provides_getMesh
staticconstexprprivate
Initial value:
=
decltype(has_getMesh_impl<mf_t>(int{})){}

Definition at line 27 of file mesh_function_transfer.h.

Referenced by lf::refinement::MeshFunctionTransfer< MF >::MeshFunctionTransfer().


The documentation for this class was generated from the following file: