27 #include "BaseManipulation.hpp"
28 #include <bitpit_RBF.hpp>
174 MRBF(
const bitpit::Config::Section & rootXML);
237 virtual void absorbSectionXML(
const bitpit::Config::Section & slotXML, std::string name=
"");
238 virtual void flushSectionXML(bitpit::Config::Section & slotXML, std::string name=
"");
244 void plotCloud(std::string directory, std::string filename,
int counterFile,
bool binary,
bool deformed);
253 std::vector<double>
evalRBF(
const std::array<double,3> & val);
260 void setSupportRadius(
double val){bitpit::RBFKernel::setSupportRadius(val);};
261 double getSupportRadius(){
return bitpit::RBFKernel::getSupportRadius();};
262 void setMode(bitpit::RBFMode mode){bitpit::RBFKernel::setMode(mode);};
264 void setDataToNode (
int n,
const std::vector<double> &data){bitpit::RBFKernel::setDataToNode(n,data);};
265 void setDataToAllNodes(
int n ,
const std::vector<double> & data){bitpit::RBFKernel::setDataToAllNodes(n,data);};
267 int addData(){
return bitpit::RBFKernel::addData();};
268 int addData(
const std::vector<double> & data){
return bitpit::RBFKernel::addData(data);};
269 bool removeData(
int n){
return bitpit::RBFKernel::removeData(n);};
270 bool removeData(std::vector<int> &nn){
return bitpit::RBFKernel::removeData(nn);};
271 void removeAllData(){bitpit::RBFKernel::removeAllData();};
273 std::vector<double>
evalRBF(
int jnode){
return bitpit::RBFKernel::evalRBF(jnode);};
275 int solve(){
return bitpit::RBFKernel::solve();};
276 int greedy(
double tol){
return bitpit::RBFKernel::greedy(tol);};
279 double heaviside10(
double dist );
280 double heaviside50(
double dist );
281 double heaviside100(
double dist );
282 double heaviside1000(
double dist );
283 double dsigmoid(
double dist );
297 REGISTER(BaseManipulation, MRBF,
"mimmo.MRBF")
dmpvecarr3E * getDisplacements()
void plotCloud(std::string directory, std::string filename, int counterFile, bool binary, bool deformed)
bool isSupportRadiusReal()
void computeEffectiveSupportRadiusList()
dmpvector1D * getFilter()
bool isVariableSupportRadiusSet()
void setWeight(dvector2D value)
dmpvector1D * m_rbfSupportRadii
MRBF(MRBFSol mode=MRBFSol::NONE)
double getDiagonalFactor()
std::vector< double > evalRBF(const std::array< double, 3 > &val)
ivector1D checkDuplicatedNodes(double tol=1.0E-12)
void setDisplacements(dvecarr3E displ)
std::vector< darray3E > dvecarr3E
void setSupportRadiusReal(double suppR_)
MRBF & operator=(MRBF other)
virtual void absorbSectionXML(const bitpit::Config::Section &slotXML, std::string name="")
double m_supportRadiusValue
void setMode(MRBFSol solver)
void setSupportRadiusLocal(double suppR_)
BaseManipulation is the base class of any manipulation object of the library.
MRBFSol
Solver enum for MRBF data fields interpolation/ direct parameterization.
dvector1D & getEffectivelyUsedSupportRadii()
std::vector< int > ivector1D
#define MD_MPVECARR3FLOAT_
#define REGISTER_PORT(Name, Container, Datatype, ManipBlock)
void setVariableSupportRadii(dvector1D sradii)
std::vector< double > dvector1D
void setDiagonalFactor(double diagonalFactor)
void setSupportRadiusValue(double suppR_)
void setFilter(dmpvector1D *)
void setScalarDisplacements(dvector1D displ)
void swap(MRBF &x) noexcept
bool areResultsInScalarMode()
std::vector< dvector1D > dvector2D
virtual void flushSectionXML(bitpit::Config::Section &slotXML, std::string name="")
bool removeDuplicatedNodes(ivector1D *list=nullptr)
virtual void plotOptionalResults()
std::array< double, 3 > darray3E
dmpvector1D m_scalarDispl
Radial Basis Function evaluation from clouds of control points.
MRBFBasisFunction
Enum class defining types of mimmo RBF kernel functions that could be used also in MRBF class,...
MimmoSharedPointer is a custom implementation of shared pointer.
dmpvector1D * m_rbfScalarDispl
void setCompactSupport(bool isCompact=true)
dmpvector1D * getScalarDisplacements()
void setFunction(const MRBFBasisFunction &funct, bool isCompact=false)
#define REGISTER(Base, Derived, name)
MimmoSharedPointer< MimmoObject > m_rbfgeometry