1#ifndef _FieldInterpolator_HPP
2#define _FieldInterpolator_HPP
4#include <fish/fiber/vector/Interpolate.hpp>
5#include <fish/fiber/vector/LinearIpol.hpp>
6#include <fish/fiber/vector/CubicIpol.hpp>
7#include <aerie/AnalyticFunction.hpp>
8#include <fish/fiber/baseop/RectilinearInterpolation.hpp>
9#include <fish/fiber/baseop/LocalFromWorldPoint.hpp>
21 enum InterpolType{LINEAR, CUBIC, RECTILINEAR, ANALYTIC, EIGENLINEAR, EIGENCUBIC};
41 return TheField->getCreator( localPoint.frag_id )->create();
49template<
typename FieldType,
typename CoordType,
int InterpolType>
59 puts(
"template<FieldType>::Interpolator::doIt() no valid Interpolation type specialization");
66template<
typename FieldType,
typename CoordType>
90template<
typename FieldType,
typename CoordType>
101 assert(CoordType::Dims == 3);
106 RectilinearInterpolation::rectilinear_interpolation(localPoint.local_point, TheField, data);
111template<
typename FieldType,
typename CoordType>
135template<
typename FieldType,
typename CoordType>
157 puts(
"Interpolator<FieldType, Dims, InterpolatorBase::ANALYTIC>::doIt() ERROR: No analytic equation!");
168 tvector unique_orientation;
174 tvector limit(
const tvector& T)
const
178 if(
dot( T, unique_orientation ) < 0)
185template<
typename CoordType>
190 tvector unique_orientation;
196 , unique_orientation(1.0, 0.0, 0.0)
222template<
typename CoordType>
227 tvector unique_orientation;
233 , unique_orientation(1.0, 0.0, 0.0)
An iterator with an optional DataCreator, which is just a class to intercept creation of data along a...
Definition CreativeIterator.hpp:34
Definition FieldInterpolator.hpp:166
Definition FieldInterpolator.hpp:15
FieldType doIt(const FragmentedPoint_t &localPoint, const CoordType &worldlocation, const double time)
worldlocation and time are required of the parameters.
Definition FieldInterpolator.hpp:146
FieldType doIt(const FragmentedPoint_t &localPoint, const CoordType &worldlocation, const double time)
Only the localPoint is really required of the parameters.
Definition FieldInterpolator.hpp:121
FieldType doIt(const FragmentedPoint_t &localPoint, const CoordType &worldlocation, const double time)
Only the localPoint is really required of the parameters.
Definition FieldInterpolator.hpp:76
FieldType doIt(const FragmentedPoint_t &localPoint, const CoordType &worldlocation, const double time)
Only the localPoint is really required of the parameters.
Definition FieldInterpolator.hpp:99
tvector doIt(const FragmentedPoint_t &localPoint, const CoordType &worldlocation, const double time)
Only the localPoint is really required of the parameters.
Definition FieldInterpolator.hpp:243
tvector doIt(const FragmentedPoint_t &localPoint, const CoordType &worldlocation, const double time)
Only the localPoint is really required of the parameters.
Definition FieldInterpolator.hpp:206
The FieldInterpolation class provides a function to do data interpolation on a data field.
Definition FieldInterpolator.hpp:51
vector dot(const bivector &a, const vector &b)
Given a fragmented field of curvilinear coordinates, (3D array of coordinates), build a uniform Grid ...
Definition FAQ.dox:2
Definition LocalFromWorldPoint.hpp:39