Page MenuHomec4science

Setup.hpp
No OneTemporary

File Metadata

Created
Fri, May 10, 23:31

Setup.hpp

//
// Setup.hpp
// ConSol
//
// Created by Fabian Moenkeberg on 30.06.17.
// Copyright © 2017 EPFL. All rights reserved.
//
#ifndef Setup_hpp
#define Setup_hpp
#include <stdio.h>
#include "../Mesh/MeshBase.hpp"
#include "../Model/ModelBase.hpp"
#include "../TimeIntegration/IntBase.hpp"
#include "../TimeIntegration/Ssprk2.hpp"
#include "../TimeIntegration/Ssprk3.hpp"
#include "../TimeIntegration/Ssprk5.hpp"
#include "../TimeIntegration/Fe.hpp"
#include "../Source/Source.hpp"
#include "../Source/AxisymmEuler_std_noSwirl.hpp"
#include "../Source/AxisymmEuler_rU_noSwirl.hpp"
#include "../Reconstr/Reconstruct.hpp"
#include "../Flux/NumFlux.hpp"
#include "Solution.hpp"
#include "../Utility/AbstractFunct.hpp"
#include "../Reconstr/Limiter/LimiterBase.hpp"
#include "../Reconstr/InterpolationBase/InterpBase.hpp"
#include "../Mesh/BC/BcBase.hpp"
#include <algorithm>
#include "../Reconstr/Limiter/NoLimiter.hpp"
#include "../Reconstr/Limiter/ExtremaPresLimiter_2D_TRI.hpp"
#include "../Reconstr/Limiter/ExtremaPresLimiter_2D_TRI_Euler.hpp"
#include "../Reconstr/NoReconstr.hpp"
#include "../Reconstr/NoReconstr_2D.hpp"
#include "../Reconstr/NoReconstrHybrid_2D.hpp"
#include "../Mesh/Rect.hpp"
#include "../Mesh/Tri.h"
#include "../Mesh/HybridMesh.hpp"
#include "../Mesh/FastHybridMesh.hpp"
#include "../Mesh/StructuredMesh.hpp"
#include "../Flux/LaxFried.hpp"
#include "../Flux/LaxFriedGlobal.hpp"
#include "../Model/LinAdv.hpp"
#include "../Model/Burgers.hpp"
#include "../Model/Euler.hpp"
#include "../Model/Euler2D.hpp"
#include "../Model/BuckleyLeverett.hpp"
#include "../Model/Kpp.hpp"
#include "../Model/Kppx.hpp"
#include "../Model/Kppy.hpp"
#include "../Utility/InitialConditions/Sin.hpp"
#include "../Utility/InitialConditions/2D/bubble.hpp"
#include "../Utility/InitialConditions/2D/InitKPP.hpp"
#include "../Utility/InitialConditions/2D/InitKPPY.hpp"
#include "../Utility/InitialConditions/InitEulerSod.hpp"
#include "../Utility/InitialConditions/2D/coscos.hpp"
#include "../Utility/InitialConditions/2D/sinsin.hpp"
#include "../Utility/InitialConditions/2D/InitBurgers.hpp"
#include "../Utility/InitialConditions/2D/shockX.hpp"
#include "../Utility/InitialConditions/2D/cube.hpp"
#include "../Utility/InitialConditions/2D/InitIsentropicVortex.hpp"
#include "../Utility/InitialConditions/2D/InitEulerBlast.hpp"
#include "../Utility/InitialConditions/2D/InitVortexShock.hpp"
#include "../Utility/InitialConditions/2D/InitFAC.hpp"
#include "../Utility/InitialConditions/2D/AirFoil.hpp"
#include "../Utility/InitialConditions/2D/RP.hpp"
#include "../Utility/InitialConditions/2D/InitDoubleMachReflection.hpp"
#include "../Utility/InitialConditions/2D/InitNozzle.hpp"
#include "../Utility/InitialConditions/2D/InitAxiSymmNozzle.hpp"
#include "../Utility/InitialConditions/2D/InitAxiSymmNozzle_rU.hpp"
#include "../Reconstr/InterpolationBase/Multiquadratics.hpp"
#include "../Reconstr/InterpolationBase/Multiquadratics_2D.hpp"
#include "../Reconstr/InterpolationBase/Multiquadratics_2D_mixed.hpp"
#include "../Reconstr/InterpolationBase/Multiquadratics_2D_otf.hpp"
#include "../Reconstr/InterpolationBase/Multiquadratics_2D_WENO.hpp"
#include "../Reconstr/InterpolationBase/Multiquadratics_2D_WENO_b.hpp"
#include "../Reconstr/InterpolationBase/Multiquadratics_2D_WENO_c.hpp"
#include "../Reconstr/InterpolationBase/Polyharmonics.hpp"
#include "../Reconstr/InterpolationBase/Polyharmonics_2D.hpp"
#include "../Reconstr/InterpolationBase/Gaussians_2D.hpp"
#include "../Reconstr/ENO.hpp"
#include "../Reconstr/ENO_2D.hpp"
#include "../Reconstr/ENO_2D_otf.hpp"
#include "../Reconstr/ENO_2D_std.hpp"
#include "../Reconstr/ENO_2D_symm.hpp"
#include "../Reconstr/MRWENO.hpp"
#include "../Reconstr/MRWENO_b.hpp"
#include "../Reconstr/MRWENO_c.hpp"
#include "../Reconstr/CWENO_2D.h"
#include "../Reconstr/WENO_structured.hpp"
#include "../Reconstr/HybridRBFWENO.hpp"
#include "../Mesh/BC/Periodic.hpp"
#include "../Mesh/BC/Periodic2.hpp"
#include "../Mesh/BC/AbsorbingBC.hpp"
#include "../Mesh/BC/MixedBC.hpp"
#include "../Mesh/BC/MixedBC_2D.hpp"
#include "../Mesh/BC/SlipWallBC.hpp"
#include "../Mesh/BC/BCFAC.hpp"
#include "../Mesh/BC/DoubleMachReflectionBC.hpp"
#include "../Mesh/BC/OpenFlowBC.hpp"
#include "../Mesh/BC/ScramJetBC.hpp"
#include "../Mesh/BC/NozzleBC.hpp"
class Setup{
MeshBase *mesh;
ModelBase *model;
IntBase *timeInt;
Source *source;
Reconstruct *reconstr;
NumFlux *flux;
Solution soln;
AbstractFunct *initialCond;
LimiterBase *limiter;
InterpBase *interpBase;
BcBase *bc;
ModelName modelName;
evaluationMethod evalMethod;
bcName bcname;
bcName bcType[6];
ReconstrName reconstrName;
InterpBaseName interpBaseName;
TimeIntegrationName time_scheme;
FluxName fluxScheme;
limiterName limiter_name;
bool reconstrOnCharact = 0;
int order;
double tMax;
double cfl;
double shapeParam;
int maxNumWrite = 100;
int max_iter = 50000;
double min_residue;
std::vector<double> tInclude;
double xmin,xmax,ymin,ymax;
int dim;
std::vector<int> Nx_cell, Ny_cell;
char* input_file;
std::string ic_file;
std::string source_file;
std::string OUTPUT_PATH;
std::string SOLN_DIR;
bool ic_file_read;
bool exact_available;
public:
Setup(){
};
~Setup(){
delete mesh;
delete model;
delete timeInt;
delete flux;
delete reconstr;
delete limiter;
delete source;
delete interpBase;
delete bc;
delete initialCond;
// delete interpBase;
};
// Setup(char* file);
Setup(Configuration config);
Setup(MeshBase *mesh, BcBase *bc, ModelBase *model, IntBase *timeInt, Source *source, Reconstruct *reconstr, LimiterBase *limiter, NumFlux *flux, AbstractFunct *initialCond);
Setup(MeshBase *mesh, BcBase *bc, ModelBase *model, IntBase *timeInt, Source *source, Reconstruct *reconstr, InterpBase *interpBase, LimiterBase *limiter, NumFlux *flux, AbstractFunct *initialCond);
Setup(MeshBase *mesh, BcBase *bc, ModelBase *model, IntBase *timeInt, Reconstruct *reconstr, LimiterBase *limiter, NumFlux *flux, AbstractFunct *initialCond);
Setup(MeshBase *mesh, BcBase *bc, ModelBase *model, IntBase *timeInt, Reconstruct *reconstr, InterpBase *interpBase, LimiterBase *limiter, NumFlux *flux, AbstractFunct *initialCond);
Solution* initialize(Configuration config);
MeshBase* getMesh();
BcBase* getBC();
NumFlux* getFlux();
ModelBase* getModel();
IntBase* getTimeInt();
LimiterBase* getLimiter();
void exportStencils(std::vector<std::vector<double>> &U, MeshBase *mesh, double t, Configuration config);
// void read ();
// Configuration* getConfig();
private:
// void read_grid (Reader&);
// void read_constants (Reader&);
// void read_numeric (Reader&);
// void read_model (Reader&);
// void read_initial_condition (Reader&);
// void read_exact (Reader&);
// void read_boundary_condition (Reader&);
// void read_output (Reader&);
void process_param(Configuration config);
};
#endif /* Setup_hpp */

Event Timeline