LCOV - code coverage report
Current view: top level - src/Integrator - Hydro.H (source / functions) Coverage Total Hit
Test: coverage_merged.info Lines: 100.0 % 20 20
Test Date: 2025-04-03 04:02:21 Functions: 60.0 % 5 3

            Line data    Source code
       1              : #ifndef INTEGRATOR_HYDRO_H
       2              : #define INTEGRATOR_HYDRO_H
       3              : 
       4              : #include "Integrator/Integrator.H"
       5              : #include "IO/ParmParse.H"
       6              : 
       7              : #include "BC/BC.H"
       8              : #include "BC/Constant.H"
       9              : #include "BC/Nothing.H"
      10              : #include "IC/IC.H"
      11              : 
      12              : #include "Set/Base.H"
      13              : #include "Solver/Local/Riemann/Roe.H"
      14              : 
      15              : #if AMREX_SPACEDIM==2
      16              : 
      17              : namespace Integrator
      18              : {
      19              : class Hydro : virtual public Integrator
      20              : {
      21              : public:
      22              :     static constexpr const char* name = "hydro";
      23              : 
      24            4 :     Hydro() {};
      25              :     Hydro(IO::ParmParse& pp);
      26              :     static void Parse(Hydro& value, IO::ParmParse& pp);
      27            8 :     virtual ~Hydro()
      28            4 :     {
      29            4 :         delete density_bc;
      30            4 :         delete momentum_bc;
      31            4 :         delete energy_bc;
      32            4 :         delete eta_bc;
      33              : 
      34            4 :         delete density_ic;
      35            4 :         delete velocity_ic;
      36            4 :         delete pressure_ic;
      37              : 
      38            4 :         delete ic_m0;
      39            4 :         delete ic_u0;
      40            4 :         delete ic_q;
      41              : 
      42            4 :         delete eta_ic;
      43            4 :         delete etadot_ic;
      44              : 
      45            4 :         delete solid.momentum_ic;
      46            4 :         delete solid.density_ic;
      47            4 :         delete solid.energy_ic;
      48              : 
      49            4 :         delete roesolver;
      50            8 :     }
      51              : 
      52              : protected:
      53              :     void Initialize(int lev) override;
      54              :     void Mix(int lev);
      55              :     void TimeStepBegin(Set::Scalar a_time, int a_iter) override;
      56              :     void TimeStepComplete(Set::Scalar time, int lev) override;
      57              :     void Advance(int lev, Set::Scalar time, Set::Scalar dt) override;
      58              :     void TagCellsForRefinement(int lev, amrex::TagBoxArray& tags, amrex::Real /*time*/, int /*ngrow*/) override;
      59              :     void Regrid(int lev, Set::Scalar time) override;
      60              : 
      61              :     virtual void UpdateEta(int lev, Set::Scalar time);
      62              : private:
      63              : 
      64              :     Set::Field<Set::Scalar> density_mf;
      65              :     Set::Field<Set::Scalar> density_old_mf;
      66              : 
      67              :     Set::Field<Set::Scalar> energy_mf;
      68              :     Set::Field<Set::Scalar> energy_old_mf;
      69              : 
      70              :     Set::Field<Set::Scalar> momentum_mf;
      71              :     Set::Field<Set::Scalar> momentum_old_mf;
      72              : 
      73              :     Set::Field<Set::Scalar> velocity_mf;
      74              :     Set::Field<Set::Scalar> pressure_mf;
      75              : 
      76              :     struct {
      77              :         Set::Field<Set::Scalar> density_mf;
      78              :         Set::Field<Set::Scalar> momentum_mf;
      79              :         Set::Field<Set::Scalar> energy_mf;
      80              :         IC::IC<Set::Scalar>* density_ic   = nullptr;
      81              :         IC::IC<Set::Scalar>* momentum_ic  = nullptr;
      82              :         IC::IC<Set::Scalar>* energy_ic    = nullptr;
      83              :     } solid;
      84              : 
      85              : protected:
      86              :     Set::Field<Set::Scalar> eta_mf;
      87              :     Set::Field<Set::Scalar> eta_old_mf;
      88              : private:
      89              :     Set::Field<Set::Scalar> etadot_mf;
      90              : 
      91              :     Set::Field<Set::Scalar> vorticity_mf;
      92              : 
      93              :     Set::Field<Set::Scalar> m0_mf;
      94              :     Set::Field<Set::Scalar> u0_mf;
      95              :     Set::Field<Set::Scalar> q_mf;
      96              :     Set::Field<Set::Scalar> Source_mf;
      97              :     Set::Field<Set::Scalar> flux_mf;
      98              : 
      99              :     BC::BC<Set::Scalar>* density_bc = nullptr;
     100              :     BC::BC<Set::Scalar>* momentum_bc = nullptr;
     101              :     BC::BC<Set::Scalar>* energy_bc = nullptr;
     102              :     BC::BC<Set::Scalar>* eta_bc = nullptr;
     103              : 
     104              :     IC::IC<Set::Scalar>* velocity_ic = nullptr;
     105              :     IC::IC<Set::Scalar>* pressure_ic = nullptr;
     106              :     IC::IC<Set::Scalar>* density_ic  = nullptr;
     107              : 
     108              :     IC::IC<Set::Scalar>* ic_m0 = nullptr;
     109              :     IC::IC<Set::Scalar>* ic_u0 = nullptr;
     110              :     IC::IC<Set::Scalar>* ic_q = nullptr;
     111              : 
     112              :     IC::IC<Set::Scalar>* eta_ic = nullptr;
     113              :     IC::IC<Set::Scalar>* etadot_ic = nullptr;
     114              : 
     115              :     BC::Nothing bc_nothing;
     116              : 
     117              :     BC::Constant neumann_bc_1 = BC::Constant::ZeroNeumann(1);
     118              :     BC::Constant neumann_bc_D = BC::Constant::ZeroNeumann(AMREX_SPACEDIM);
     119              : 
     120              :     Set::Scalar c_max = 0.0;
     121              :     Set::Scalar vx_max = 0.0;
     122              :     Set::Scalar vy_max = 0.0;
     123              : 
     124              :     Set::Scalar eta_refinement_criterion=NAN, omega_refinement_criterion=NAN, gradu_refinement_criterion=NAN, p_refinement_criterion=NAN, rho_refinement_criterion;
     125              :     Set::Scalar gamma=NAN, cfl=NAN, cfl_v=NAN, mu=NAN,  pref=NAN;
     126              : 
     127              :     Set::Scalar small=NAN;
     128              :     Set::Scalar cutoff=NAN;
     129              :     Set::Scalar lagrange=NAN;
     130              : 
     131              :     Solver::Local::Riemann::Roe *roesolver = nullptr;
     132              : 
     133              : };
     134              : }
     135              : 
     136              : #endif
     137              : #endif
        

Generated by: LCOV version 2.0-1