3rd order interpolate class specialization for nodes
More...
#include <interpolate_3rd_order.h>
|
static constexpr int | order = 3 |
|
template<int D, typename SourceMeshType, typename TargetMeshType, typename SourceStateType, typename TargetStateType>
class Portage::Interpolate_3rdOrder< D, Entity_kind::NODE, SourceMeshType, TargetMeshType, SourceStateType, TargetStateType >
3rd order interpolate class specialization for nodes
- Parameters
-
[in] | dualcells_and_weights | Pair containing vector of contributing source nodes (dual cells) and vector of contribution weights |
◆ Interpolate_3rdOrder()
template<int D, typename SourceMeshType , typename TargetMeshType , typename SourceStateType , typename TargetStateType >
◆ ~Interpolate_3rdOrder()
template<int D, typename SourceMeshType , typename TargetMeshType , typename SourceStateType , typename TargetStateType >
◆ operator()()
template<int D, typename SourceMeshType , typename TargetMeshType , typename SourceStateType , typename TargetStateType >
double Portage::Interpolate_3rdOrder< D, Entity_kind::NODE, SourceMeshType, TargetMeshType, SourceStateType, TargetStateType >::operator() |
( |
const int |
targetNodeID, |
|
|
std::vector< Weights_t > const & |
sources_and_weights |
|
) |
| const |
|
inline |
Functor to do the 3rd order interpolation of node values.
- Parameters
-
[in] | sources_and_weights | A pair of two vectors |
sources_and_weights.first()
is the vector of source entity indices in the source mesh that will contribute to the current target mesh entity.
sources_and_weights.second()
is the
- 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 interpolate on nodes 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 central NODE.
- 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::NODE, SourceMeshType, TargetMeshType, SourceStateType, TargetStateType >::operator= |
( |
const Interpolate_3rdOrder< D, Entity_kind::NODE, 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 >
Set the name of the interpolation variable and the limiter type.
◆ order
template<int D, typename SourceMeshType , typename TargetMeshType , typename SourceStateType , typename TargetStateType >
The documentation for this class was generated from the following file: