From 92036dda654a8997a52e3261efff25bafd0226d4 Mon Sep 17 00:00:00 2001 From: dinatraykova Date: Tue, 22 Oct 2024 14:18:23 +0200 Subject: [PATCH] Fixedgrids and fixed propagation speed lambda --- .../PerfectFluid.impl.hpp | 4 ++-- .../PerfectFluidLevel.cpp | 24 +++++++++++-------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/Examples/Fluid_Kerr_IDfromFile/PerfectFluid.impl.hpp b/Examples/Fluid_Kerr_IDfromFile/PerfectFluid.impl.hpp index db56b7f1d..5ad5aef0f 100644 --- a/Examples/Fluid_Kerr_IDfromFile/PerfectFluid.impl.hpp +++ b/Examples/Fluid_Kerr_IDfromFile/PerfectFluid.impl.hpp @@ -79,8 +79,8 @@ void PerfectFluid::add_matter_rhs( data_t divshift = TensorAlgebra::compute_trace(d1.shift); data_t chi_regularised = simd_max(vars.chi, 1e-6); data_t advec_chi = 0.; - double lambda = simd_max(sqrt(2. / vars.lapse), - 1 / (vars.lapse * sqrt(chi_regularised))); + double lambda = 1.; //simd_max(sqrt(2. / vars.lapse), + // 1 / (vars.lapse * sqrt(chi_regularised))); FOR(i) advec_chi += vars.shift[i] * d1.chi[i] / chi_regularised; rhs.D = source.D /*+ vars.D * (vars.lapse * vars.K - divshift + GR_SPACEDIM / 2. * advec_chi)*/ diff --git a/Examples/Fluid_Kerr_IDfromFile/PerfectFluidLevel.cpp b/Examples/Fluid_Kerr_IDfromFile/PerfectFluidLevel.cpp index 6462549e2..8e8c7eb0d 100644 --- a/Examples/Fluid_Kerr_IDfromFile/PerfectFluidLevel.cpp +++ b/Examples/Fluid_Kerr_IDfromFile/PerfectFluidLevel.cpp @@ -20,8 +20,8 @@ #include "NewMatterConstraints.hpp" // For tag cells -// #include "FixedGridsTaggingCriterion.hpp" -#include "ChiTaggingCriterion.hpp" + #include "FixedGridsTaggingCriterion.hpp" +//#include "ChiTaggingCriterion.hpp" // Problem specific includes #include "ComputePack.hpp" @@ -38,7 +38,8 @@ void PerfectFluidLevel::specificAdvance() { // Enforce trace free A_ij and positive chi and alpha BoxLoops::loop(make_compute_pack(TraceARemoval(), PositiveChiAndAlpha(), - PositiveDensity()), + PositiveDensity(m_p.min_D), + PrimitiveRecovery()), m_state_new, m_state_new, INCLUDE_GHOST_CELLS, disable_simd()); @@ -70,14 +71,14 @@ void PerfectFluidLevel::initialData() // Things to do before outputting a checkpoint file void PerfectFluidLevel::prePlotLevel() { - fillAllGhosts(); + fillAllGhosts(); EoS eos; PerfectFluidEoS perfect_fluid(m_dx, m_p.lambda, eos); BoxLoops::loop( MatterConstraints(perfect_fluid, m_dx, m_p.G_Newton, c_Ham, Interval(c_Mom1, c_Mom3)), m_state_new, m_state_diagnostics, EXCLUDE_GHOST_CELLS, disable_simd()); -} + } #endif // Things to do in RHS update, at each RK4 step @@ -85,7 +86,7 @@ void PerfectFluidLevel::specificEvalRHS(GRLevelData &a_soln, GRLevelData &a_rhs, const double a_time) { // Enforce trace free A_ij and positive chi and alpha - BoxLoops::loop(make_compute_pack(TraceARemoval(), PositiveDensity(), + BoxLoops::loop(make_compute_pack(TraceARemoval(), PositiveDensity(m_p.min_D), PositiveChiAndAlpha(), PrimitiveRecovery()), a_soln, a_soln, INCLUDE_GHOST_CELLS /*, disable_simd()*/); @@ -120,7 +121,7 @@ void PerfectFluidLevel::specificUpdateODE(GRLevelData &a_soln, const GRLevelData &a_rhs, Real a_dt) { // Enforce trace free A_ij - BoxLoops::loop(make_compute_pack(TraceARemoval(), PositiveDensity(), + BoxLoops::loop(make_compute_pack(TraceARemoval(), PositiveDensity(m_p.min_D), PositiveChiAndAlpha(), PrimitiveRecovery()), a_soln, a_soln, INCLUDE_GHOST_CELLS /*, disable_simd()*/); @@ -129,13 +130,16 @@ void PerfectFluidLevel::specificUpdateODE(GRLevelData &a_soln, void PerfectFluidLevel::preTagCells() { // We only use chi in the tagging criterion so only fill the ghosts for chi - fillAllGhosts(VariableType::evolution, Interval(c_chi, c_chi)); + //fillAllGhosts(VariableType::evolution, Interval(c_chi, c_chi)); } void PerfectFluidLevel::computeTaggingCriterion( FArrayBox &tagging_criterion, const FArrayBox ¤t_state, const FArrayBox ¤t_state_diagnostics) { - BoxLoops::loop(ChiTaggingCriterion(m_dx), current_state, tagging_criterion, - disable_simd()); + //BoxLoops::loop(ChiTaggingCriterion(m_dx), current_state, tagging_criterion, + // disable_simd()); + BoxLoops::loop( + FixedGridsTaggingCriterion(m_dx, m_level, 2.0 * m_p.L, m_p.center), + current_state, tagging_criterion); }