Skip to content

Commit

Permalink
Need to test on multi-proc.
Browse files Browse the repository at this point in the history
  • Loading branch information
AMLattanzi committed Oct 18, 2024
1 parent 4a91a18 commit 95f5afd
Show file tree
Hide file tree
Showing 6 changed files with 310 additions and 82 deletions.
74 changes: 74 additions & 0 deletions Exec/ABL/inputs_DataSampler
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# ------------------ INPUTS TO MAIN PROGRAM -------------------
max_step = 4000

amrex.fpe_trap_invalid = 1

fabarray.mfiter_tile_size = 1024 1024 1024

# PROBLEM SIZE & GEOMETRY
geometry.prob_extent = 1024 1024 1024
amr.n_cell = 64 64 64

geometry.is_periodic = 1 1 0

zlo.type = "NoSlipWall"
zhi.type = "SlipWall"

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

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

erf.data_log = my_data_file

erf.sampler_interval = 1
erf.do_line_sampling = true
erf.sample_line_lo = 5 32 5 10 32 5
erf.sample_line_hi = 5 32 25 1000 32 5
erf.sample_line_dir = 2 0

erf.do_plane_sampling = true
erf.sample_plane_lo = 48.0 48.0 32.0
erf.sample_plane_hi = 320.0 320.0 32.0
erf.sample_plane_dir = 2

# 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 = 10 # number of timesteps between plotfiles
erf.plot_vars_1 = density rhoadv_0 x_velocity y_velocity z_velocity pressure temp theta

# SOLVER CHOICE
erf.alpha_T = 0.0
erf.alpha_C = 1.0
erf.use_gravity = false

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

erf.init_type = "uniform"

# PROBLEM PARAMETERS
prob.rho_0 = 1.0
prob.A_0 = 1.0

prob.U_0 = 10.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.08
prob.V_0_Pert_Mag = 0.08 #
prob.W_0_Pert_Mag = 0.0
8 changes: 2 additions & 6 deletions Exec/ABL/inputs_sample
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,15 @@ erf.fixed_dt = 0.1 # fixed time step depending on grid resolution
# DIAGNOSTICS & VERBOSITY
erf.sum_interval = 1 # timesteps between computing mass
erf.v = 1 # verbosity in ERF.cpp
amr.v = 1 # verbosity in Amr.cpp
amr.v = 1 # verbosity in Amr.cpp

erf.data_log = my_data_file

erf.sample_point_log = my_sample_point
erf.sample_point = 6 63 5

erf.sample_line_log = my_sample_line
erf.sample_line = 5 32 5

erf.sample_line_lo = 5 32 5 10 32 5
erf.sample_line_hi = 5 32 25 10 32 25
erf.sample_line_dir = 2 2
erf.sample_line = 63 63 5

# REFINEMENT / REGRIDDING
amr.max_level = 0 # maximum level number allowed
Expand Down
3 changes: 3 additions & 0 deletions Source/ERF.H
Original file line number Diff line number Diff line change
Expand Up @@ -1255,6 +1255,9 @@ private:
amrex::ParallelDescriptor::Barrier("ERF::setRecordSampleLineInfo");
}

// Data sampler for line and plane output
int sampler_interval = -1;
amrex::Real sampler_per = -1.0;
std::unique_ptr<SampleData> data_sampler = nullptr;

amrex::Vector<std::unique_ptr<std::fstream> > datalog;
Expand Down
21 changes: 15 additions & 6 deletions Source/ERF.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -539,6 +539,12 @@ ERF::post_timestep (int nstep, Real time, Real dt_lev0)
}
}

// Write plane/line sampler data
if (is_it_time_for_action(nstep, time, dt_lev0, sampler_interval, sampler_per) && (data_sampler) ) {
data_sampler->get_sample_data(geom, vars_new);
data_sampler->write_sample_data(t_new, istep, ref_ratio, geom);
}

// Moving terrain
if ( solverChoice.use_terrain && (solverChoice.terrain_type == TerrainType::Moving) )
{
Expand Down Expand Up @@ -1138,12 +1144,6 @@ ERF::InitData_post ()

}

// DEBUG
data_sampler = std::make_unique<SampleData>();
data_sampler->get_sample_data(vars_new);
data_sampler->write_sample_data(geom);
exit(0);

if (pp.contains("sample_line_log") && pp.contains("sample_line"))
{
int lev = 0;
Expand Down Expand Up @@ -1174,6 +1174,11 @@ ERF::InitData_post ()

}

// Create object to do line and plane sampling if neeeded
bool do_line = false; bool do_plane = false;
pp.query("do_line_sampling",do_line); pp.query("do_plane_sampling",do_plane);
if (do_line || do_plane) { data_sampler = std::make_unique<SampleData>(do_line, do_plane); }

#ifdef ERF_USE_EB
bool write_eb_surface = false;
pp.query("write_eb_surface", write_eb_surface);
Expand Down Expand Up @@ -1501,6 +1506,10 @@ ERF::ReadParameters ()
pp.query("column_loc_y", column_loc_y);
pp.query("column_file_name", column_file_name);

// Sampler output frequency
pp.query("sampler_per", sampler_per);
pp.query("sampler_interval", sampler_interval);

// Specify information about outputting planes of data
pp.query("output_bndry_planes", output_bndry_planes);
pp.query("bndry_output_planes_interval", bndry_output_planes_interval);
Expand Down
Loading

0 comments on commit 95f5afd

Please sign in to comment.