All libraries · PBHCosmo (GRChombo)
grchombo/PBHCosmo/PBHCosmoLevel.hpp
PBHCosmo example for GRChombo (pbhgr project).
36 lines · 1.4 KB · pbhgr @ 9e8e13d · raw
| /* PBHCosmo example for GRChombo (pbhgr project). Based on Examples/ScalarFieldCosmo. */
#ifndef PBHCOSMOLEVEL_HPP_
#define PBHCOSMOLEVEL_HPP_
#include "CosmoAMR.hpp"
#include "DefaultLevelFactory.hpp"
#include "GRAMRLevel.hpp"
#include "Potential.hpp"
#include "ScalarFieldRef.hpp"
/*! Massive real scalar field (dust proxy) on a late-start spherical slice from the LTB solution,
* evolved with BSSN/CCZ4 and the cosmological moving-puncture gauge (K - <K>); AH finder on. */
class PBHCosmoLevel : public GRAMRLevel
{
friend class DefaultLevelFactory<PBHCosmoLevel>;
using GRAMRLevel::GRAMRLevel;
CosmoAMR &m_cosmo_amr = dynamic_cast<CosmoAMR &>(m_gr_amr);
typedef ScalarFieldRef ScalarFieldWithPotential;
virtual void specificAdvance() override;
virtual void initialData() override;
virtual void postRestart() override;
#ifdef CH_USE_HDF5
virtual void prePlotLevel() override;
#endif
virtual void specificEvalRHS(GRLevelData &a_soln, GRLevelData &a_rhs, const double a_time) override;
virtual void specificUpdateODE(GRLevelData &a_soln, const GRLevelData &a_rhs, Real a_dt) override;
virtual void preTagCells() override;
virtual void computeTaggingCriterion(FArrayBox &tagging_criterion, const FArrayBox ¤t_state,
const FArrayBox ¤t_state_diagnostics) override;
virtual void specificPostTimeStep() override;
};
#endif /* PBHCOSMOLEVEL_HPP_ */
|