erf-model / ERF

Energy Research and Forecasting Model
https://erf.readthedocs.io/en/latest/
Other
24 stars 40 forks source link

terrain simulation diverging #1475

Closed indra098124 closed 8 months ago

indra098124 commented 8 months ago

Hi,
I am trying a simulation with terrain that keeps crashing with the error "Assertion `cell_data(i,j,k,RhoTheta_comp) > 0". This is with inflow-outflow. With periodic boundary conditions it runs fine. What strategies do you recommend to debug such cases?

Thank you!

asalmgren commented 8 months ago

Can you share in which directory you built the code and what inputs file you used?  Thx!  I’ll try to take a look

indra098124 commented 8 months ago

Many thanks @asalmgren for the quick response. This is the simulation I have setup on my own following Terrain3DHemisphere. It uses custom terrain. Here is the example input file I am using.

`

------------------ INPUTS TO MAIN PROGRAM -------------------

max_step = 1000

amr.restart = "chk00300"

amrex.fpe_trap_invalid = 0

fabarray.mfiter_tile_size = 1024 1024 1024

PROBLEM SIZE & GEOMETRY

geometry.prob_lo = 0. 0. 0. geometry.prob_hi = 5888. 4096. 512. amr.n_cell = 368 256 128

erf.use_terrain = 1

erf.terrain_smoothing = 2

erf.grid_stretching_ratio = 1.02

erf.initial_dz = 1.0

geometry.is_periodic = 0 0 0

MOST BOUNDARY (DEFAULT IS ADIABATIC FOR THETA)

xlo.type = "Inflow" xhi.type = "Outflow" ylo.type = "SlipWall" yhi.type = "SlipWall" xlo.velocity = 1.0 0.08 0. xlo.density = 1.22 xlo.theta = 300. xlo.scalar = 1. zlo.type = "Most" erf.most.average_policy = 0 # POLICY FOR AVERAGING erf.most.use_normal_vector = false # USE NORMAL VECTOR W/ TERRAIN erf.most.use_interpolation = true # USE INTERPOLATION ON DESTINATION

erf.most.time_average = true # USE TIME AVERAGING

erf.most.radius = 1 # SPECIFIED REGION RADIUS

-----------------------------------------------------------------

zlo.type = "NoSlipWall"

erf.most.z0 = 0.1 # from Cuxart et al. 2006 erf.most.zref = 2.0 # == dz/2 erf.most.surf_temp = 300.0 # initial value, should match input_sounding

zhi.type = "SlipWall"

TIME STEP CONTROL

erf.fixed_dt = 0.1 # fixed time step depending on grid resolution

erf.cfl = 0.3

DIAGNOSTICS & VERBOSITY

erf.sum_interval = 1 # timesteps between computing mass erf.v = 1 # verbosity in ERF.cpp amr.v = 1 # verbosity in Amr.cpp

REFINEMENT / REGRIDDING

amr.max_level = 0 # maximum level number allowed

CHECKPOINT FILES

erf.check_file = chk # root name of checkpoint file erf.check_int = 100 # number of timesteps between checkpoints

PLOTFILES

erf.plot_file_1 = plt # prefix of plotfile name erf.plot_int_1 = 100 # number of timesteps between plotfiles erf.plot_vars_1 = density rhoadv_0 x_velocity y_velocity z_velocity pressure temp theta z_phys

SOLVER CHOICE

erf.alpha_T = 0.0 erf.alpha_C = 1.0 erf.use_gravity = true

erf.theta_ref = 300

erf.dycore_vert_adv_type = "Upwind_3rd"

erf.moisture_model = "Kessler"

erf.molec_diff_type = "None" erf.les_type = "Smagorinsky" erf.Cs = 0.1

erf.init_type = "uniform"

INITIALIZATION (Cuxart et al. 2006)

erf.init_type = "input_sounding" erf.init_sounding_ideal = 1 erf.input_sounding_file = "sounding_file"

PROBLEM PARAMETERS

prob.rho_0 = 1.0 prob.A_0 = 1.0

prob.U_0 = 0.0 prob.V_0 = 0.0 prob.W_0 = 0.0 prob.T_0 = 300.0

Higher values of perturbations lead to instability

Instability seems to be coming from BC

prob.U_0_Pert_Mag = 0.8 prob.V_0_Pert_Mag = 0.01 # prob.W_0_Pert_Mag = 0.08 prob.T_0_Pert_Mag = 0.1

pert_ref_height = 30.0

erf.input_bndry_planes = 0 erf.bndry_file = "BndryFiles" erf.bndry_input_var_names = temperature density velocity `

asalmgren commented 8 months ago

Can you share the other files that you use (bndry files and input sounding)?

On Mon, Mar 4, 2024 at 2:44 PM indra098124 @.***> wrote:

Many thanks @asalmgren https://github.com/asalmgren for the quick response. This is the simulation I have setup on my own following Terrain3DHemisphere. It uses custom terrain. Here is the example input file I am using. ------------------ INPUTS TO MAIN PROGRAM -------------------

max_step = 1000

amr.restart = "chk00300"

amrex.fpe_trap_invalid = 0

fabarray.mfiter_tile_size = 1024 1024 1024 PROBLEM SIZE & GEOMETRY

geometry.prob_lo = 0. 0. 0. geometry.prob_hi = 5888. 4096. 512. amr.n_cell = 368 256 128

erf.use_terrain = 1

erf.terrain_smoothing = 2

erf.grid_stretching_ratio = 1.02

erf.initial_dz = 1.0

geometry.is_periodic = 0 0 0 MOST BOUNDARY (DEFAULT IS ADIABATIC FOR THETA)

xlo.type = "Inflow" xhi.type = "Outflow" ylo.type = "SlipWall" yhi.type = "SlipWall" xlo.velocity = 1.0 0.08 0. xlo.density = 1.22 xlo.theta = 300. xlo.scalar = 1. zlo.type = "Most" erf.most.average_policy = 0 # POLICY FOR AVERAGING erf.most.use_normal_vector = false # USE NORMAL VECTOR W/ TERRAIN erf.most.use_interpolation = true # USE INTERPOLATION ON DESTINATION

erf.most.time_average = true # USE TIME AVERAGING

erf.most.radius = 1 # SPECIFIED REGION RADIUS

-----------------------------------------------------------------

zlo.type = "NoSlipWall"

erf.most.z0 = 0.1 # from Cuxart et al. 2006 erf.most.zref = 2.0 # == dz/2 erf.most.surf_temp = 300.0 # initial value, should match input_sounding

zhi.type = "SlipWall" TIME STEP CONTROL

erf.fixed_dt = 0.1 # fixed time step depending on grid resolution

erf.cfl = 0.3 DIAGNOSTICS & VERBOSITY

erf.sum_interval = 1 # timesteps between computing mass erf.v = 1 # verbosity in ERF.cpp amr.v = 1 # verbosity in Amr.cpp REFINEMENT / REGRIDDING

amr.max_level = 0 # maximum level number allowed CHECKPOINT FILES

erf.check_file = chk # root name of checkpoint file erf.check_int = 100 # number of timesteps between checkpoints PLOTFILES

erf.plot_file_1 = plt # prefix of plotfile name erf.plot_int_1 = 100 # number of timesteps between plotfiles erf.plot_vars_1 = density rhoadv_0 x_velocity y_velocity z_velocity pressure temp theta z_phys SOLVER CHOICE

erf.alpha_T = 0.0 erf.alpha_C = 1.0 erf.use_gravity = true

erf.theta_ref = 300

erf.dycore_vert_adv_type = "Upwind_3rd"

erf.moisture_model = "Kessler"

erf.molec_diff_type = "None" erf.les_type = "Smagorinsky" erf.Cs = 0.1

erf.init_type = "uniform"

INITIALIZATION (Cuxart et al. 2006)

erf.init_type = "input_sounding" erf.init_sounding_ideal = 1 erf.input_sounding_file = "sounding_file" PROBLEM PARAMETERS

prob.rho_0 = 1.0 prob.A_0 = 1.0

prob.U_0 = 0.0 prob.V_0 = 0.0 prob.W_0 = 0.0 prob.T_0 = 300.0 Higher values of perturbations lead to instability Instability seems to be coming from BC

prob.U_0_Pert_Mag = 0.8 prob.V_0_Pert_Mag = 0.01 # prob.W_0_Pert_Mag = 0.08 prob.T_0_Pert_Mag = 0.1

pert_ref_height = 30.0

erf.input_bndry_planes = 0 erf.bndry_file = "BndryFiles" erf.bndry_input_var_names = temperature density velocity

— Reply to this email directly, view it on GitHub https://github.com/erf-model/ERF/issues/1475#issuecomment-1977598507, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACRE6YWVDBCAQRTTRI5AYETYWT2MJAVCNFSM6AAAAABEGAPQ46VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZXGU4TQNJQG4 . You are receiving this because you were mentioned.Message ID: @.***>

-- Ann Almgren Senior Scientist; Dept. Head, Applied Mathematics Pronouns: she/her/hers

asalmgren commented 8 months ago

I believe this problem has been resolved.