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_3rdOrder & | operator= (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_weights Pair 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 >
|
inline |
◆ ~Interpolate_3rdOrder()
template<int D, typename SourceMeshType , typename TargetMeshType , typename SourceStateType , typename TargetStateType >
|
default |
Destructor.
Member Function Documentation
◆ operator()()
template<int D, typename SourceMeshType , typename TargetMeshType , typename SourceStateType , typename TargetStateType >
|
inline |
Functor to do the 3rd order interpolation of cell values.
- Parameters
-
[in] targetCellID The index of the target cell. [in] sources_and_weights Vector 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 >
|
delete |
Copy constructor (disabled)
Assignment operator (disabled)
◆ set_interpolation_variable()
template<int D, typename SourceMeshType , typename TargetMeshType , typename SourceStateType , typename TargetStateType >
|
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 >
|
static |
The documentation for this class was generated from the following file:
- /home/portage/portage/portage/interpolate/interpolate_3rd_order.h