Class BasisFunc#

Inheritance Relationships#

Derived Types#

Class Documentation#

class BasisFunc#

This class is an abstract class used to create all other basis function classes.

It defines standard methods to call the basis function and its derivatives, as well as provides wrappers for XLA computation.

Subclassed by CP, ELM, FS, HoPphy, HoPpro, LaP, LeP, nBasisFunc

Public Functions

BasisFunc(double x0in, double xf, int *nCin, int ncDim0, int min, double z0in = 0., double zf = DBL_MAX)#

Basis function class constructor.

  • Stores variables based on user supplied givens

  • Stores a pointer to itself using static variables

  • Creates PyCapsule for xla function.

inline BasisFunc()#

Dummy empty constructor allows derived classes without calling constructor explicitly.

virtual ~BasisFunc()#

Basis function class destructor.

Removes memory used by the basis function class.

virtual void H(double *x, int n, const int d, int *nOut, int *mOut, double **F, bool full)#

Function is used to create a basis function matrix and its derivatives.

This matrix is is an m x N matrix where:

  • m is the number of basis functions

  • N = in is the number of points in x

  • d is used to specify the derivative

  • full is a bool that specifies:

    • If true, full matrix with no basis functions removed is returned

    • If false, matrix columns corresponding to the values in nC are removed

  • useVal is a bool that specifies:

    • If true, uses the x values given

    • If false, uses the z values from the class Note that this function is used to hook into Python, thus the extra arguments.

virtual void xla(void *out, void **in)#

This function is an XLA version of the basis function.

Public Members

double z0#

Beginning of the basis function domain.

double x0#

Start of the problem domain.

double c#

Multiplier in the linear domain map.

int *nC#

Array that specifies which basis functions to remove.

int numC#

Number of basis functions to be removed.

int m#

Number of basis functions to use.

int identifier#

Unique identifier for this instance of BasisFunc.

PyObject *xlaCapsule#

PyObject that contains the XLA version of the basis function.

const char *xlaGpuCapsule = "CUDA NOT FOUND, GPU NOT IMPLEMENTED."#

Public Static Attributes

static int nIdentifier = 0#

Counter that increments each time a new instance of BasisFunc is created.

static std::vector<BasisFunc*> BasisFuncContainer#

Vector that contains pointers to all BasisFunc classes.

Protected Functions

PyObject *GetXlaCapsule()#

This function creates a PyCapsule object that wraps the XLA verison of the basis function.