ABLATE Source Documentation  0.12.36
ablate::domain::rbf::RBF Class Referenceabstract
+ Inheritance diagram for ablate::domain::rbf::RBF:

Public Member Functions

 RBF (int polyOrder=4, bool hasDerivatives=true, bool hasInterpolation=true, bool returnNeighborVertices=false)
 
void Initialize ()
 
void Setup (std::shared_ptr< ablate::domain::SubDomain > subDomain)
 
void SetDerivatives (PetscInt nDer, PetscInt dx[], PetscInt dy[], PetscInt dz[], PetscBool useCellsLocal)
 
void SetDerivatives (PetscInt nDer, PetscInt dx[], PetscInt dy[], PetscInt dz[])
 
void SetupDerivativeStencils ()
 
PetscReal EvalDer (const ablate::domain::Field *field, PetscInt c, PetscInt dx, PetscInt dy, PetscInt dz)
 
PetscReal EvalDer (DM dm, Vec vec, const PetscInt fid, PetscInt c, PetscInt dx, PetscInt dy, PetscInt dz)
 
PetscReal Interpolate (const ablate::domain::Field *field, Vec f, const PetscInt c, PetscReal xEval[3])
 
PetscReal Interpolate (const ablate::domain::Field *field, Vec f, PetscReal xEval[3])
 
PetscReal Interpolate (const ablate::domain::Field *field, PetscReal xEval[3])
 
virtual PetscReal RBFVal (PetscInt dim, PetscReal x[], PetscReal y[])=0
 
virtual PetscReal RBFDer (PetscInt dim, PetscReal x[], PetscInt dx, PetscInt dy, PetscInt dz)=0
 
virtual std::string_view type () const =0
 
PetscInt GetDimensions ()
 

Protected Member Functions

PetscReal DistanceSquared (PetscInt dim, PetscReal x[], PetscReal y[])
 
PetscReal DistanceSquared (PetscInt dim, PetscReal x[])
 
void Loc3D (PetscInt dim, PetscReal xIn[], PetscReal x[3])
 

Member Function Documentation

◆ EvalDer() [1/2]

PetscReal RBF::EvalDer ( const ablate::domain::Field field,
PetscInt  c,
PetscInt  dx,
PetscInt  dy,
PetscInt  dz 
)

Return the derivative of a field at a given location

Parameters
field- The field to take the derivative of
c- The location in ablate::domain::Range
dx,dy,dz- The derivative

◆ EvalDer() [2/2]

PetscReal RBF::EvalDer ( DM  dm,
Vec  vec,
const PetscInt  fid,
PetscInt  c,
PetscInt  dx,
PetscInt  dy,
PetscInt  dz 
)

Return the derivative of a field at a given location

Parameters
dm- The mesh
vec- Vector containing the data
fid- Field id.
c- The location in ablate::domain::Range
dx,dy,dz- The derivative

◆ Initialize()

void RBF::Initialize ( )

SubDomain Register and Setup

◆ Interpolate() [1/3]

PetscReal ablate::domain::rbf::RBF::Interpolate ( const ablate::domain::Field field,
PetscReal  xEval[3] 
)
inline

Return the interpolation of a field at a given location

Parameters
field- The field to interpolate
xEval- The location where to perform the interpolation

◆ Interpolate() [2/3]

PetscReal RBF::Interpolate ( const ablate::domain::Field field,
Vec  f,
const PetscInt  c,
PetscReal  xEval[3] 
)

Return the interpolation of a field at a given location

Parameters
field- The field to interpolate
f- The local vector containing the data
c- Cell containing the evaluation point
xEval- The location where to perform the interpolation

◆ Interpolate() [3/3]

PetscReal RBF::Interpolate ( const ablate::domain::Field field,
Vec  f,
PetscReal  xEval[3] 
)

Return the interpolation of a field at a given location

Parameters
field- The field to interpolate
f- The local vector containing the data
xEval- The location where to perform the interpolation

◆ RBFDer()

virtual PetscReal ablate::domain::rbf::RBF::RBFDer ( PetscInt  dim,
PetscReal  x[],
PetscInt  dx,
PetscInt  dy,
PetscInt  dz 
)
pure virtual

The RBF kernel derivative between at a location

Parameters
dim
x
dx,dy,dz- The derivative

Implemented in ablate::domain::rbf::PHS, ablate::domain::rbf::MQ, ablate::domain::rbf::IMQ, ablate::domain::rbf::HYBRID, and ablate::domain::rbf::GA.

◆ RBFVal()

virtual PetscReal ablate::domain::rbf::RBF::RBFVal ( PetscInt  dim,
PetscReal  x[],
PetscReal  y[] 
)
pure virtual

The RBF kernel value between two points

Parameters
dim
x
y

Implemented in ablate::domain::rbf::PHS, ablate::domain::rbf::MQ, ablate::domain::rbf::IMQ, ablate::domain::rbf::HYBRID, and ablate::domain::rbf::GA.

◆ SetDerivatives() [1/2]

void RBF::SetDerivatives ( PetscInt  numDer,
PetscInt  dx[],
PetscInt  dy[],
PetscInt  dz[] 
)

Set the derivatives to use, defaulting to useCells=False

Parameters
numDer- Number of derivatives to set
dx,dy,dz- Lists of length numDer indicating the derivatives

Set derivatives, defaulting to using common vertices

◆ SetDerivatives() [2/2]

void RBF::SetDerivatives ( PetscInt  nDer,
PetscInt  dx[],
PetscInt  dy[],
PetscInt  dz[],
PetscBool  useCellsLocal 
)

Set the derivatives to use

Parameters
numDer- Number of derivatives to set
dx,dy,dz- Lists of length numDer indicating the derivatives
useCellsLocal- Use common cells when determining neighbors. If false then use common edges.

◆ SetupDerivativeStencils()

void RBF::SetupDerivativeStencils ( )

Setup all derivatives in the subdomain.

◆ type()

virtual std::string_view ablate::domain::rbf::RBF::type ( ) const
pure virtual

The documentation for this class was generated from the following files: