Portage::Interpolate_3rdOrder< D, Entity_kind::CELL, SourceMeshType, TargetMeshType, SourceStateType, TargetStateType > Class Template Reference

3rd order interpolate class specialization for cells More...

#include <interpolate_3rd_order.h>

Public Member Functions

 Interpolate_3rdOrder (SourceMeshType const &source_mesh, TargetMeshType const &target_mesh, SourceStateType const &source_state, NumericTolerances_t num_tols, const Parts *const parts=nullptr)
 
void set_interpolation_variable (std::string const &interp_var_name, Limiter_type limiter_type=NOLIMITER, Boundary_Limiter_type boundary_limiter_type=BND_NOLIMITER, Portage::vector< Vector< D >> *gradients=nullptr)
 Set the name of the interpolation variable and the limiter type. More...
 
Interpolate_3rdOrderoperator= (const Interpolate_3rdOrder &)=delete
 Copy constructor (disabled) More...
 
 ~Interpolate_3rdOrder ()=default
 Destructor. More...
 
double operator() (int const targetCellID, std::vector< Weights_t > const &sources_and_weights) const
 Functor to do the 3rd order interpolation of cell values. More...
 

Static Public Attributes

static constexpr int order = 3
 

Detailed Description

template<int D, typename SourceMeshType, typename TargetMeshType, typename SourceStateType, typename TargetStateType>
class Portage::Interpolate_3rdOrder< D, Entity_kind::CELL, SourceMeshType, TargetMeshType, SourceStateType, TargetStateType >

3rd order interpolate class specialization for cells

Parameters
[in]cells_and_weightsPair containing vector of contributing source cells and vector of contribution weights

Constructor & Destructor Documentation

◆ Interpolate_3rdOrder()

template<int D, typename SourceMeshType , typename TargetMeshType , typename SourceStateType , typename TargetStateType >
Portage::Interpolate_3rdOrder< D, Entity_kind::CELL, SourceMeshType, TargetMeshType, SourceStateType, TargetStateType >::Interpolate_3rdOrder ( SourceMeshType const &  source_mesh,
TargetMeshType const &  target_mesh,
SourceStateType const &  source_state,
NumericTolerances_t  num_tols,
const Parts *const  parts = nullptr 
)
inline

◆ ~Interpolate_3rdOrder()

template<int D, typename SourceMeshType , typename TargetMeshType , typename SourceStateType , typename TargetStateType >
Portage::Interpolate_3rdOrder< D, Entity_kind::CELL, SourceMeshType, TargetMeshType, SourceStateType, TargetStateType >::~Interpolate_3rdOrder ( )
default

Destructor.

Member Function Documentation

◆ operator()()

template<int D, typename SourceMeshType , typename TargetMeshType , typename SourceStateType , typename TargetStateType >
double Portage::Interpolate_3rdOrder< D, Entity_kind::CELL, SourceMeshType, TargetMeshType, SourceStateType, TargetStateType >::operator() ( int const  targetCellID,
std::vector< Weights_t > const &  sources_and_weights 
) const
inline

Functor to do the 3rd order interpolation of cell values.

Parameters
[in]targetCellIDThe index of the target cell.
[in]sources_and_weightsVector of source mesh entities and corresponding weight vectors. Each element of the weights vector is a moment of the source data over the target entity; for first order interpolation, only the first element (or zero'th moment) of the weights vector (i.e. the volume of intersection) is used. Source entities may be repeated in the list if the intersection of a target entity and a source entity consists of two or more disjoint pieces
Todo:
must remove assumption that field is scalar

Implementation of the () operator for 3rd order interpolation on cells Method: Uses an SVD decomposition to compute a quadratic multinomial fit to a given field, and approximates the field using the quadratic multinomial at points around the CELL center.

Todo:
Should use zip_iterator here but I am not sure I know how to

◆ operator=()

template<int D, typename SourceMeshType , typename TargetMeshType , typename SourceStateType , typename TargetStateType >
Interpolate_3rdOrder& Portage::Interpolate_3rdOrder< D, Entity_kind::CELL, SourceMeshType, TargetMeshType, SourceStateType, TargetStateType >::operator= ( const Interpolate_3rdOrder< D, Entity_kind::CELL, SourceMeshType, TargetMeshType, SourceStateType, TargetStateType > &  )
delete

Copy constructor (disabled)

Assignment operator (disabled)

◆ set_interpolation_variable()

template<int D, typename SourceMeshType , typename TargetMeshType , typename SourceStateType , typename TargetStateType >
void Portage::Interpolate_3rdOrder< D, Entity_kind::CELL, SourceMeshType, TargetMeshType, SourceStateType, TargetStateType >::set_interpolation_variable ( std::string const &  interp_var_name,
Limiter_type  limiter_type = NOLIMITER,
Boundary_Limiter_type  boundary_limiter_type = BND_NOLIMITER,
Portage::vector< Vector< D >> *  gradients = nullptr 
)
inline

Set the name of the interpolation variable and the limiter type.

Member Data Documentation

◆ order

template<int D, typename SourceMeshType , typename TargetMeshType , typename SourceStateType , typename TargetStateType >
constexpr int Portage::Interpolate_3rdOrder< D, Entity_kind::CELL, SourceMeshType, TargetMeshType, SourceStateType, TargetStateType >::order = 3
static

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