8 #ifndef RSVSINTEGRATION_H_INCLUDED
9 #define RSVSINTEGRATION_H_INCLUDED
21 class SnakeVelocityCalculator;
37 class tecplottemplate;
52 typedef std::shared_ptr<rsvs3d::SnakeVelocityCalculator> RSVSCalculator;
57 void SnakeConnectivityUpdate(
snake &testSnake, std::vector<int> &isImpact,
double impactAlmostRange = 0.2);
58 void SnakeConnectivityUpdate_2D(
snake &testSnake, std::vector<int> &isImpact);
59 void SnakeConnectivityUpdate_legacy(
snake &snakein, std::vector<int> &isImpact);
60 void SnakeConnectivityUpdate_robust(
snake &snakein, std::vector<int> &isImpact);
61 double SnakePositionUpdate(
snake &rsvsSnake, std::vector<double> &dt,
double snaxtimestep,
double snaxdiststep);
68 static const int numberdefined = 7;
69 bool printBaseSnake(
int lvl);
70 bool printFullSnake(
int lvl);
71 bool printGradientsSnake(
int lvl);
72 bool printVectorSnake(
int lvl);
73 bool plotSnakeInPolyscope(
int lvl);
75 static const std::string tecplotsnake =
"rsvs3D_";
76 static const std::string tecplotgradient =
"rsvsgradients3D_";
77 static const std::string tecplotvectors =
"rsvsvectors3D_";
78 static const std::string polyscopeSnakeName =
"RSVS-Snake";
96 void ApplyDevSettings(
RSVSclass &RSVSobj);
104 tecplotfile &outgradientsnake,
tecplotfile &outvectorsnake, std::ofstream &logFile, std::ofstream &coutFile,
105 std::ofstream &cerrFile);
119 iteratereturns RSVSiterate(RSVSclass &RSVSobj);
120 void Logging(RSVSclass &RSVSobj,
double totT,
int nVoluZone,
int stepNum);
121 void PostProcessing(RSVSclass &RSVSobj,
double totT,
int nVoluZone,
int stepNum);
122 void Exporting(RSVSclass &RSVSobj);
127 void Log(std::ofstream &logFile, RSVSCalculator &calcObj,
int loglvl);
129 void Snake(
tecplotfile &outSnake,
snake &rsvsSnake,
mesh &voluMesh,
double totT,
int nVoluZone);
132 int nVoluZone,
int stepNum);
133 void Gradients(
const RSVSCalculator &calcObj,
const triangulation &rsvsTri,
tecplotfile &outgradientsnake,
double totT,
134 const std::string &snakingEngine);
139 namespace postprocess
143 void Log(std::ofstream &logFile, RSVSCalculator &calcObj,
int loglvl);
148 int nVoluZone,
int stepNum);
149 void Gradients(
const RSVSCalculator &calcObj,
const triangulation &rsvsTri,
tecplotfile &outgradientsnake,
double totT,
150 const std::string &snakingEngine);
185 std::string
OutputFileName(
const std::string rootDirectory,
const std::string &filePattern, std::string fileName,
186 std::string extension);
188 void WriteModifiedTemplate(
const std::string &fileIn,
const std::string &fileOut,
const std::string &oldLine,
189 const std::string newLine);
193 std::string fileName);
199 int CompareSurfCentreDerivatives();
200 int CompareDerivativesSpike();
201 int CompareDerivativesSpikeNoDPos();
202 int StudyDerivatives();
std::string OutputFileName(const param::parameters ¶mconf, std::string fileName, std::string extension)
Convenience function to generate file names for RSVS.
Class for parameters of the grid generation.
Class containing the input configuration these are files to load.
Class containing the output configuration these are files to store and where to store them.
Root class for all the parameters.
Parameters related to the Velocity calculation and VOS steps.
Parameters controlling tuning parameters for the stepping of the restricted surface.
A structure containing the information about the polyscope display and the RSVS elements to display.
Namespace containing the parameter classes used to control execution of the 3D-RSVS program.
Namespace containing interfaces to polyscope for RSVS objects.
Namespace for general purpose tools of the RSVS project.