#include <VectorInterpolator.h>
Public Member Functions | |
VectorInterpolator (std::vector< Vector * > parameter_points, std::vector< Matrix * > rotation_matrices, std::vector< Vector * > reduced_vectors, int ref_point, std::string rbf="G", double epsilon=1.0) | |
Constructor. More... | |
Vector * | interpolate (Vector *point) |
Obtain the interpolated reduced vector of the unsampled parameter point. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from CAROM::Interpolator | |
Interpolator (std::vector< Vector * > parameter_points, std::vector< Matrix * > rotation_matrices, int ref_point, std::string rbf, double epsilon=1.0) | |
Constructor. More... | |
std::vector< double > | obtainRBFToTrainingPoints (Vector *point) |
Compute the RBF from the parameter points with the unsampled parameter point. More... | |
double | obtainRBF (Vector *point1, Vector *point2) |
Compute the RBF between two points. More... | |
Protected Attributes inherited from CAROM::Interpolator | |
int | d_rank |
The rank of the process this object belongs to. | |
int | d_num_procs |
The number of processors being run on. | |
int | d_ref_point |
The index within the vector of parameter points to the reference point. | |
std::string | d_rbf |
The RBF type (gaussian, multiquadric, inverse quadratic, inverse multiquadric) | |
int | d_epsilon |
The RBF parameter that determines the width of influence. a small epsilon: larger influential width a large epsilon: smaller influential width. | |
std::vector< Vector * > | d_parameter_points |
The sampled parameter points. | |
std::vector< Matrix * > | d_rotation_matrices |
The reduced bases with compatible coordinates. | |
Matrix * | d_lambda_T |
The reduced elements in tangential space. | |
VectorInterpolator interpolates reduced vectors of a set of parameter points and returns an interpolated reduced vector for an unseen parameter point. The interpolation algorithm was adapted from "Gradient-based Constrained Optimization Using a Database of Linear Reduced-Order Models" by Y. Choi et al.
CAROM::VectorInterpolator::VectorInterpolator | ( | std::vector< Vector * > | parameter_points, |
std::vector< Matrix * > | rotation_matrices, | ||
std::vector< Vector * > | reduced_vectors, | ||
int | ref_point, | ||
std::string | rbf = "G" , |
||
double | epsilon = 1.0 |
||
) |
Constructor.
[in] | parameter_points | The parameter points. |
[in] | rotation_matrices | The rotation matrices associated with each parameter point. |
[in] | reduced_vectors | The reduced vectors associated with each parameter point. |
[in] | ref_point | The index within the vector of parameter points to the reference point |
[in] | rbf | The RBF type ("G" == gaussian, "MQ" == multiquadric, "IQ" == inverse quadratic, "IMQ" == inverse multiquadric) |
[in] | epsilon | The RBF parameter that determines the width of influence. |
Obtain the interpolated reduced vector of the unsampled parameter point.
[in] | point | The unsampled parameter point. |