30#include "../option_structure.hpp"
31#include "../containers/C2DContainer.hpp"
41 unsigned long MinDonors = 0, AvgDonors = 0, MaxDonors = 0;
42 passivedouble Density = 0.0, AvgCorrection = 0.0, MaxCorrection = 0.0;
89 const su2activematrix& coords,
int& nPolynomial, vector<int>& keepPolynomialRow,
112 template <
typename Float,
typename Int,
class ForwardIt>
113 static pair<Int, Float> PruneSmallCoefficients(Float tolerance,
Int size, ForwardIt coeffs) {
117 for (
Int i = 0; i <
size; ++i) thresh = max(thresh, fabs(*(end++)));
122 Float coeffSum = 0.0;
123 for (
auto it = coeffs; it != end; ++it) {
124 if (fabs(*it) > thresh) {
133 Float correction = 1.0 / coeffSum;
134 while (coeffs != end) *(coeffs++) *= correction;
136 return make_pair(numNonZeros, correction);
Base class for multiphysics interpolation.
A templated matrix/vector-like object.
Definition C2DContainer.hpp:374
static constexpr bool IsRowMajor
Definition C2DContainer.hpp:391
Main class for defining the problem; basically this class reads the configuration file,...
Definition CConfig.hpp:64
Parent class for defining the geometry of the problem (complete geometry, multigrid agglomerated geom...
Definition CGeometry.hpp:75
Main class for defining the interpolator, it requires a child class for each particular interpolation...
Definition CInterpolator.hpp:47
const int size
MPI Size.
Definition CInterpolator.hpp:50
Radial basis function interpolation.
Definition CRadialBasisFunction.hpp:37
void PrintStatistics(void) const override
Print information about the interpolation.
Definition CRadialBasisFunction.cpp:57
static void ComputeGeneratorMatrix(RADIAL_BASIS type, bool usePolynomial, su2double radius, const su2activematrix &coords, int &nPolynomial, vector< int > &keepPolynomialRow, su2passivematrix &C_inv_trunc)
Compute the RBF "generator" matrix with or without polynomial terms.
Definition CRadialBasisFunction.cpp:427
void SetTransferCoeff(CGeometry ****geometry, const CConfig *const *config) override
Set up transfer matrix defining relation between two meshes.
Definition CRadialBasisFunction.cpp:105
static su2double Get_RadialBasisValue(RADIAL_BASIS type, const su2double radius, const su2double dist)
Compute the value of a radial basis function, this is static so it can be re-used.
Definition CRadialBasisFunction.cpp:73
static int CheckPolynomialTerms(su2double max_diff_tol, vector< int > &keep_row, su2passivematrix &P)
If the polynomial term is included in the interpolation, and the points lie on a plane,...
Definition CRadialBasisFunction.cpp:508
A simple SIMD type relying on implicit vectorization, i.e. done by the compiler, explicitly vectorize...
Definition vectorization.hpp:89
double passivedouble
Definition code_config.hpp:129
passivedouble su2double
Definition code_config.hpp:181
RADIAL_BASIS
Types of radial basis functions.
Definition option_structure.hpp:452