1 #ifndef __FLOW_SOLVER_CASE_BASE__ 2 #define __FLOW_SOLVER_CASE_BASE__ 5 #include <deal.II/base/table_handler.h> 6 #include <deal.II/distributed/shared_tria.h> 7 #include <deal.II/distributed/tria.h> 9 #include "dg/dg_base.hpp" 10 #include "parameters/all_parameters.h" 11 #include "physics/initial_conditions/initial_condition_function.h" 12 #include "ode_solver/ode_solver_base.h" 15 namespace FlowSolver {
18 using Triangulation = dealii::Triangulation<PHILIP_DIM>;
20 using Triangulation = dealii::parallel::distributed::Triangulation<PHILIP_DIM>;
23 template <
int dim,
int nspecies,
int nstate>
39 virtual std::shared_ptr<Triangulation>
generate_grid()
const = 0;
48 const std::shared_ptr<dealii::TableHandler> unsteady_data_table,
49 const bool do_write_unsteady_data_table_file);
90 dealii::ConditionalOStream
pcout;
96 const std::string value_string,
97 const std::shared_ptr <dealii::TableHandler> data_table)
const;
std::shared_ptr< InitialConditionFunction< dim, nspecies, nstate, double > > initial_condition_function
Initial condition function.
virtual double get_constant_time_step(std::shared_ptr< DGBase< dim, nspecies, double >> dg) const
Virtual function to compute the constant time step.
virtual void set_higher_order_grid(std::shared_ptr< DGBase< dim, nspecies, double >> dg) const
Set higher order grid.
std::string get_pde_string() const
Returns the pde type string from the all_param class member.
const Parameters::AllParameters all_param
All parameters.
virtual void compute_Reynolds_stress(const std::shared_ptr< ODE::ODESolverBase< dim, nspecies, double >> ode_solver, const std::shared_ptr< DGBase< dim, nspecies, double >> dg, const double time_step)
Virtual function for computing time-averaged Reynolds Stresses for turbulent cases.
virtual std::shared_ptr< Triangulation > generate_grid() const =0
Pure Virtual function to generate the grid.
virtual void compute_time_averaged_solution(const std::shared_ptr< ODE::ODESolverBase< dim, nspecies, double >> ode_solver, const std::shared_ptr< DGBase< dim, nspecies, double >> dg, const double time_step)
Virtual function for computing time-averaged solution for turbulent cases.
Files for the baseline physics.
virtual double get_adaptive_time_step(std::shared_ptr< DGBase< dim, nspecies, double >> dg) const
Virtual function to compute the adaptive time step.
virtual void steady_state_postprocessing(std::shared_ptr< DGBase< dim, nspecies, double >> dg) const
Virtual function for postprocessing when solving for steady state.
Main parameter class that contains the various other sub-parameter classes.
void display_flow_solver_setup(std::shared_ptr< DGBase< dim, nspecies, double >> dg) const
Displays the flow setup parameters.
virtual double get_adaptive_time_step_initial(std::shared_ptr< DGBase< dim, nspecies, double >> dg)
Virtual function to compute the initial adaptive time step.
virtual void display_additional_flow_case_specific_parameters() const =0
Display additional more specific flow case parameters.
virtual ~FlowSolverCaseBase()=default
Destructor.
FlowSolverCaseBase(const Parameters::AllParameters *const parameters_input)
Constructor.
double time_step
Current time step.
std::string get_flow_case_string() const
Returns the flow case type string from the all_param class member.
const MPI_Comm mpi_communicator
MPI communicator.
dealii::ConditionalOStream pcout
ConditionalOStream.
void add_value_to_data_table(const double value, const std::string value_string, const std::shared_ptr< dealii::TableHandler > data_table) const
Add a value to a given data table with scientific format.
double get_time_step() const
Getter for time step.
DGBase is independent of the number of state variables.
virtual void modify_dg_object(std::shared_ptr< DGBase< dim, nspecies, double >> dg) const
Allows user to modify DG object during flow solver routines.
const int n_mpi
Number of MPI processes.
virtual void compute_unsteady_data_and_write_to_table(const std::shared_ptr< ODE::ODESolverBase< dim, nspecies, double >> ode_solver, const std::shared_ptr< DGBase< dim, nspecies, double >> dg, const std::shared_ptr< dealii::TableHandler > unsteady_data_table, const bool do_write_unsteady_data_table_file)
Virtual function to write unsteady snapshot data to table.
const int mpi_rank
MPI rank.
void set_time_step(const double time_step_input)
Setter for time step.