Commit 53a0dc02 authored by ProjectRHEA's avatar ProjectRHEA
Browse files

Solver modified to accept non-uniform Cartesian meshes III ... compiles, not tested

parent 555066b5
Loading
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@ const int fstream_precision = 15; /// Fstream precision (fixed)

FlowSolverRHEA::FlowSolverRHEA() {};

FlowSolverRHEA::FlowSolverRHEA(const string name_configuration_file) : configuration_file(name_configuration_file) {
FlowSolverRHEA::FlowSolverRHEA(const string name_configuration_file, function<void(FlowSolverRHEA*)> custom_mesh_filler) : configuration_file(name_configuration_file) {

    /// Read configuration (input) file
    this->readConfigurationFile();
@@ -234,7 +234,14 @@ FlowSolverRHEA::FlowSolverRHEA(const string name_configuration_file) : configura
    T_IBM_field.setTopology(topo,"T_IBM");

    /// Fill mesh x, y, z, delta_x, delta_y, delta_z fields
    //this->fillMeshCoordinatesSizesFields();
    if (custom_mesh_filler != nullptr) {
        /// Run the injected CHILD logic, passing 'this' so it can access the fields
        custom_mesh_filler(this); 
    } else {
        /// Run the standard FATHER logic
        this->fillMeshCoordinatesSizesFields();
    }

    /// Initialize distributed point particles
    point_particles = new DistributedPointParticles( configuration_file );
+5 −2
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@
#include <iomanip>
#include <chrono>
#include <mpi.h>
#include <functional>
#include "yaml-cpp/yaml.h"
#include "MacroParameters.hpp"
#include "ThermodynamicModel.hpp"
@@ -77,7 +78,8 @@ class FlowSolverRHEA {

        ////////// CONSTRUCTORS & DESTRUCTOR //////////
        FlowSolverRHEA();					/// Default constructor
        FlowSolverRHEA(const std::string configuration_file);	/// Parametrized constructor
        //FlowSolverRHEA(const std::string configuration_file);	/// Parametrized constructor
        FlowSolverRHEA(const std::string name_configuration_file, std::function<void(FlowSolverRHEA*)> custom_mesh_filler = nullptr);	/// Parametrized constructor
        virtual ~FlowSolverRHEA();				/// Destructor

	////////// GET FUNCTIONS //////////
@@ -233,7 +235,8 @@ class FlowSolverRHEA {
        //#pragma acc routine
        double trilinearInterpolation(const double &x, const double &y, const double &z, const double &xm, const double &xc, const double &xp, const double &ym, const double &yc, const double &yp, const double &zm, const double &zc, const double &zp, const double &fmmm, const double &fmmc, const double &fmmp, const double &fmcm, const double &fmcc, const double &fmcp, const double &fmpm, const double &fmpc, const double &fmpp, const double &fcmm, const double &fcmc, const double &fcmp, const double &fccm, const double &fccc, const double &fccp, const double &fcpm, const double &fcpc, const double &fcpp, const double &fpmm, const double &fpmc, const double &fpmp, const double &fpcm, const double &fpcc, const double &fpcp, const double &fppm, const double &fppc, const double &fppp);

    protected:
    //protected:
    public:

        ////////// SOLVER PARAMETERS //////////