From c011b2eeefa8195adfcbd1e5e782a7508d83b1a3 Mon Sep 17 00:00:00 2001 From: "Dustin (Ting-Hsuan) Ma" Date: Mon, 22 Jul 2024 16:35:44 -0700 Subject: [PATCH] Turbulent inflow generation logic patch (#1695) * Generalized size of boxes. Start implementing CPB. Still need user input + .rst documentation * Added my own folder in Exec, ABL_perturbation_inflow * Generalized BPM so it can transform into CPM. Added more user input variables. Renamed BPM and CPM tags to source and direct to keep neutrality. Need to add Ec, tp, and cell_data equations for direction add. * manually got rid of tabs * added in calc_tpi_meanMag_firstCell() function and direct field add within TimeIntegration/ERF_Advance.cpp for CPM cases. Need to implement options to swap back and forth on use side between BPM and CPM. Switch gear and start runtime optimization. * amr.v=0 helps with runtime. Added random numbers for PB_intervals. Added outputs for PB_amplitude/PB_updateTime in seperate file when erf.v=1. Need to find a good way to generalize amplitude. Currently breaks code when amplitude is too large. CONTINUE with CPM debug, fast_rhs_fun debug with PB, and documentation with .rst file. * Fixed CUDA private member issue. CONTINUE with CPM debug, fast_rhs_fun debug with PB, and documentation with .rst file * Added output format into file + verbose tags. Fixed parallel issue of boxes. Added in perturbation inflow .rst documents. CONTINUE with CPM debug, fast_rhs_fun debug with PB. * Added output format into file + verbose tags. Fixed parallel issue of boxes. Added in perturbation inflow .rst documents. CONTINUE with CPM debug, fast_rhs_fun debug with PB. * Get rid of trailing white space. Added output format into file + verbose tags. Fixed parallel issue of boxes. Added in perturbation inflow .rst documents. CONTINUE with CPM debug, fast_rhs_fun debug with PB. * update DOI links for build-and-deploy fail test. * 404 Client Error: Not Found for url error fix. * 404 Client Error: Not Found for url error fix. * 404 Client Error: Not Found for url error fix. * Error 403 with Munoz-Esparza 2015 paper. Last attempt * Added in perturbation inflow .rst documents. CONTINUE with pb tests. Currently blows up after 1st update interval. * fix for doc push * manual rerun for DOI link in docs * link replacement for syntax error * manual check for munoz link * what is going on with these links? * using link I know that works * testing DeLeon link * DeLeon: maybe it's a syntax error? * DeLeon: Trying the other way of linking * maybe special character problem? * commented out links to DeLeon et al. (2018), and Munoz-Esparza et al. (2015). DOI links return Erorror 403, actual link returns Error 404. * testing perturbation inflow method, qualitativly for now * Added trigger tags for PBM in ERF.cpp. This should fix compile error in workflow. * Document update * resolved erroneous error with pseduo gravity (ignores scales with mechancial perturbation) * resolved erroneous error with pseduo gravity (ignores scales with mechancial perturbation) * updating PR * fixing codespell * corrected math mode in .rst file * modifying test files * got rid of some weird merge conflict HEAD that remained * Should not be using sounding with incompressible flow, as it is a compressible flow algorithm. * fix to input tag * reworked apply_tpi() logic so it is now a per cell within PB assignment. Random assignment happens at the calc_tpi_update() level * white space fix * fixed unsed variable error for CI tests * changed input file. modified python file to generate ReTau180, and generate dirichlet input file. Added more description into documentation. * init perturbation in initialization to see if turbulence is sustained * Box perturbation method working with incompressible solver. * fixed codespell * fixed white space --------- Co-authored-by: Ting-Hsuan (Dustin) Ma --- Docs/sphinx_doc/BoundaryConditions.rst | 11 +- Docs/sphinx_doc/Inputs.rst | 2 +- .../ABL_perturbation_inflow/GNUmakefile | 6 +- Exec/DevTests/ABL_perturbation_inflow/README | 6 + .../generateLogLawProfile.py | 49 +++ .../incompressible_inputs | 77 ++-- .../input_ReTau2000Ana_sounding.txt | 34 -- .../input_ReTau2000Ana_sponge.txt | 33 -- .../input_ReTau2000DNS_sounding.txt | 386 ------------------ .../input_ReTau2000DNS_sponge.txt | 384 ----------------- Exec/DevTests/ABL_perturbation_inflow/prob.H | 4 +- .../DevTests/ABL_perturbation_inflow/prob.cpp | 40 +- .../ABL_perturbation_inflow/sourceRun.sh | 3 +- .../ABL_perturbation_inflow/toc_inout_inputs | 85 ++-- Source/DataStructs/TurbPertStruct.H | 74 +++- Source/ERF_make_new_arrays.cpp | 2 +- Source/Initialization/ERF_init_TurbPert.cpp | 58 +-- Source/SourceTerms/ERF_make_buoyancy.cpp | 1 - Source/SourceTerms/ERF_make_mom_sources.cpp | 1 - Source/SourceTerms/ERF_make_sources.cpp | 3 +- Source/TimeIntegration/ERF_Advance.cpp | 4 +- 21 files changed, 251 insertions(+), 1012 deletions(-) create mode 100644 Exec/DevTests/ABL_perturbation_inflow/generateLogLawProfile.py delete mode 100644 Exec/DevTests/ABL_perturbation_inflow/input_ReTau2000Ana_sounding.txt delete mode 100644 Exec/DevTests/ABL_perturbation_inflow/input_ReTau2000Ana_sponge.txt delete mode 100644 Exec/DevTests/ABL_perturbation_inflow/input_ReTau2000DNS_sounding.txt delete mode 100644 Exec/DevTests/ABL_perturbation_inflow/input_ReTau2000DNS_sponge.txt diff --git a/Docs/sphinx_doc/BoundaryConditions.rst b/Docs/sphinx_doc/BoundaryConditions.rst index 1ef57056c..df7aee683 100644 --- a/Docs/sphinx_doc/BoundaryConditions.rst +++ b/Docs/sphinx_doc/BoundaryConditions.rst @@ -262,13 +262,13 @@ Two different types of perturbation are currently available, ``source``, adopted .. _`DeLeon et al. (2018)`: https://doi.org/10.2514/1.J057245 -and ``direct``, adopted from `Munoz-Esparza et al. (2015)`_. The ``source`` option applies the perturbation amplitude range, `\pm \Phi_{PB}`, to each cell within the perturbation box as a source term. It's important to note that while this perturbation starts as white noise, it becomes colored noise due to the eddy viscosity turbulence closure. Conversely, the ``direct`` option applies the calculated temperature difference directly onto the `\rho \theta field`. +and ``direct``, adopted from `Munoz-Esparza et al. (2015)`_. The ``source`` option applies the perturbation amplitude range, :math:`\pm \Phi_{PB}`, to each cell within the perturbation box as a source term. It's important to note that while this perturbation starts as white noise, it becomes colored noise due to the eddy viscosity turbulence closure. Conversely, the ``direct`` option applies the calculated temperature difference directly onto the :math:`\rho \theta field`. -The current implementation only supports West and South face perturbations, specified by ``erf.perturbation_direction``, where the 3 integer inputs represent the `x`, `y`, and `z` directions, respectively. The flow perturbation method requires the dimensions of an individual box input through ``erf.perturbation_box_dim``, with 3 integer inputs representing `nx_{pb}`, `ny_{pb}`, and `nz_{pb}`, respectively. Following the guidance of `Ma and Senocak (2023)`_, +The current implementation only supports West and South face perturbations, specified by ``erf.perturbation_direction``, where the 3 integer inputs represent the `x`, `y`, and `z` directions, respectively. The flow perturbation method requires the dimensions of an individual box input through ``erf.perturbation_box_dim``, with 3 integer inputs representing :math:`nx_{pb}`, :math:`ny_{pb}`, and :math:`nz_{pb}`, respectively. Following the guidance of `Ma and Senocak (2023)`_, .. _`Ma and Senocak (2023)`: https://link.springer.com/article/10.1007/s10546-023-00786-1 -the general rule of thumb is to use `H_{PB} = 1/8 \delta` as the height of the perturbation box, where `\delta` is the boundary layer height. The length of the box in the x-direction should be `L_{PB} = 2H_{PB}`. Depending on the direction of the bulk flow, the width of the box in the y-direction should be defined as `W_{PB} = L_{PB} \tan{\theta_{inflow}}`. Note that the current implementation only accepts ``int`` entries. Therefore, considering the domain size and mesh resolution, the dimensions of a singular box can be determined. +the general rule of thumb is to use :math:`H_{PB} = 1/8 \delta` as the height of the perturbation box, where :math:`\delta` is the boundary layer height. The length of the box in the x-direction should be :math:`L_{PB} = 2H_{PB}`. Depending on the direction of the bulk flow, the width of the box in the y-direction should be defined as :math:`W_{PB} = L_{PB} \tan{\theta_{inflow}}`. Note that the current implementation only accepts ``int`` entries. Therefore, considering the domain size and mesh resolution, the dimensions of a singular box can be determined. The specification of the number of layers and the offset into the domain of the perturbation boxes can be made through ``erf.perturbation_layers`` and ``erf.perturbation_offset``, respectively. @@ -306,7 +306,8 @@ The magnitude of the perturbation, ignoring the advection and diffusion effects .. math:: - \Phi_{PB} \propto \frac{\Delta \overliner{\phi}}{t_p} + \Phi_{PB} \propto \frac{\Delta \overline{\phi}}{t_p} + and the perturbation amplitude is determined by the equation, @@ -329,6 +330,8 @@ The ``source`` type forcing can adopt the box perturbation method by having the erf.perturbation_T_infinity = 300.0 erf.perturbation_T_intensity = 0.1 +The primary purpose of the box perturbation method is not merely to perturb the temperature field in a box format. The key difference between the box and cell perturbation methods lies in how the perturbation is introduced into the temperature source term. Both methods use white noise to generate perturbations, but through the eddy diffusivity scheme and temperature transport, this white noise transforms into colored noise. Although the exact nature of the colored noise is unknown, this method effectively initiates perturbations that develop downstream. While colored noise can be directly added in the cell perturbation method, introducing it directly into the temperature field can cause simulation instability. + Direct type forcing ------------------- diff --git a/Docs/sphinx_doc/Inputs.rst b/Docs/sphinx_doc/Inputs.rst index 3a77ee703..d77898d8c 100644 --- a/Docs/sphinx_doc/Inputs.rst +++ b/Docs/sphinx_doc/Inputs.rst @@ -563,7 +563,7 @@ List of Parameters | Parameter | Definition | Acceptable | Default | | | | Values | | +===============================+==================+================+================+ -| **erf.datalog** | Output | Up to four | NONE | +| **erf.data_log** | Output | Up to four | NONE | | | filename(s) | strings | | +-------------------------------+------------------+----------------+----------------+ | **erf.profile_int** | Interval (number)| Integer | -1 | diff --git a/Exec/DevTests/ABL_perturbation_inflow/GNUmakefile b/Exec/DevTests/ABL_perturbation_inflow/GNUmakefile index b7ba1b593..dcca43335 100644 --- a/Exec/DevTests/ABL_perturbation_inflow/GNUmakefile +++ b/Exec/DevTests/ABL_perturbation_inflow/GNUmakefile @@ -19,12 +19,14 @@ USE_HIP = FALSE USE_SYCL = FALSE # Debugging -DEBUG = TRUE +#DEBUG = TRUE +DEBUG = FALSE TEST = TRUE USE_ASSERTION = TRUE -#USE_POISSON_SOLVE = TRUE +# Incompressible Solver +USE_POISSON_SOLVE = TRUE # GNU Make Bpack := ./Make.package diff --git a/Exec/DevTests/ABL_perturbation_inflow/README b/Exec/DevTests/ABL_perturbation_inflow/README index e21611c62..b4bdf0c4e 100644 --- a/Exec/DevTests/ABL_perturbation_inflow/README +++ b/Exec/DevTests/ABL_perturbation_inflow/README @@ -5,3 +5,9 @@ boundary condition possibly specified by Monin Obukhov Similarity Theory (MOST). This version of the ABL problem initializes the data from an input sounding file, and initializes turbulence at the inflow. The target is to transition turbulence from coarse to fine grid interface. + +To run this test, please run the python script to generate the correct data input +for ERF through, `python3 generateLogLawProfile.py`. Within the python file, please +edit `Re_tau`, `height_end`, and `kinematic_viscosity` values to the target simulation. +Once this is done, double check that the input file for ERF corresponds with the +files created by the python script. diff --git a/Exec/DevTests/ABL_perturbation_inflow/generateLogLawProfile.py b/Exec/DevTests/ABL_perturbation_inflow/generateLogLawProfile.py new file mode 100644 index 000000000..ceab12b2d --- /dev/null +++ b/Exec/DevTests/ABL_perturbation_inflow/generateLogLawProfile.py @@ -0,0 +1,49 @@ +import numpy as np + +# Given parameters +Re_tau = 395 +kinematic_viscosity = 0.001 +height_start = 1e-2 +height_end = 10 +#height_end = 1.0 +num_points = 256 +kappa = 0.41 # Von Kármán constant +B = 5.2 + +# Calculate friction velocity (u_tau) based on Re_tau, kinematic viscosity, and height_end +u_tau = (Re_tau * kinematic_viscosity) / height_end +print(f"u_tau = {u_tau}") + +# Generate heights (y) +heights = np.linspace(height_start, height_end, num_points) + +# Calculate u values using smooth wall log law of the wall formula +u = u_tau * (1. / kappa * np.log(heights * u_tau / kinematic_viscosity) + B) +print(f"u = {u}") + +# Create v values (set all v values to 0) +v = np.zeros_like(heights) +w = np.zeros_like(heights) +mixing_ratio = np.zeros_like(heights) +potential_temp = np.full_like(heights, 300.0) + +# Prepare data to write to file +data_sounding = np.column_stack((heights, potential_temp, mixing_ratio, u, v)) +data_sponge = np.column_stack((heights, u, v)) +data_inflow = np.column_stack((heights, u, v, w)) + +# Add the initial rows +data_sounding = np.vstack([[0.0, 300.0, 0.0, 0.0, 0.0], data_sounding]) +data_sponge = np.vstack([[0.0, 0.0, 0.0], data_sponge]) +data_inflow = np.vstack([[0.0, 0.0, 0.0, 0.0], data_inflow]) + +# Save data to file +filename = f"input_ReTau{Re_tau}Ana" +filetype = ".txt" + +np.savetxt(filename + "_sounding" + filetype, data_sounding, fmt="%.8e", delimiter=' ') +print(f"Data saved to {filename}_sounding{filetype}.") +np.savetxt(filename + "_sponge" + filetype, data_sponge, fmt="%.8e", delimiter=' ') +print(f"Data saved to {filename}_sponge{filetype}.") +np.savetxt(filename + "_inflow" + filetype, data_inflow, fmt="%.8e", delimiter=' ') +print(f"Data saved to {filename}_inflow{filetype}.") diff --git a/Exec/DevTests/ABL_perturbation_inflow/incompressible_inputs b/Exec/DevTests/ABL_perturbation_inflow/incompressible_inputs index 8122dba68..e7a7abd34 100644 --- a/Exec/DevTests/ABL_perturbation_inflow/incompressible_inputs +++ b/Exec/DevTests/ABL_perturbation_inflow/incompressible_inputs @@ -1,37 +1,48 @@ # ------------------ INPUTS TO MAIN PROGRAM ------------------- -stop_time = 35.0 -#stop_time = 10.0 +stop_time = 60.0 +#max_step = 5 erf.incompressible = 1 erf.no_substepping = 1 - -max_step = 1 - amrex.fpe_trap_invalid = 1 - fabarray.mfiter_tile_size = 1024 1024 1024 # PROBLEM SIZE & GEOMETRY -geometry.prob_extent = 2. 0.25 1. -amr.n_cell = 128 16 64 +#Larger problem +geometry.prob_extent = 40 5 10 +amr.n_cell = 256 32 64 + +# Quick debug problem +#geometry.prob_extent = 20 5 10 +#amr.n_cell = 64 16 32 geometry.is_periodic = 0 1 0 -xlo.type = "Outflow" +xlo.type = "Inflow" xhi.type = "Outflow" -zlo.type = "NoSlipWall" zhi.type = "SlipWall" +#zlo.type = "NoSlipWall" + +zlo.type = "Most" +erf.most.flux_type = "custom" +erf.most.ustar = 0.0395 # z=10. +##erf.most.ustar = 0.395 # z=1.0 +erf.most.tstar = 0. # theta flux +erf.most.qstar = 0. # qv flux + +xlo.dirichlet_file = "input_ReTau395Ana_inflow.txt" +xlo.density = 1.0 +xlo.theta = 300.0 +#xlo.velocity = 1.0 0.0 0.0 # TIME STEP CONTROL erf.cfl = 0.5 - -erf.dynamicViscosity = 0.0001 # H = 1, therefore utau = 0.2 +erf.dynamicViscosity = 0.001 # DIAGNOSTICS & VERBOSITY erf.sum_interval = 1 # timesteps between computing mass -erf.pert_interval = 1 # timesteps between perturbation output message -erf.v = 1 # verbosity in ERF.cpp -erf.mg_v = 1 # verbosity in ERF.cpp +erf.pert_interval = 1 # timesteps between perturbation output message XXX +erf.v = 0 # verbosity in ERF.cpp XXX amr.v = 0 # verbosity in Amr.cpp # REFINEMENT / REGRIDDING @@ -40,48 +51,38 @@ amr.max_level = 0 # maximum level number allowed # PLOTFILES erf.plot_file_1 = plt # prefix of plotfile name #erf.plot_per_1 = 0.1 -erf.plot_int_1 = 10 +erf.plot_int_1 = 5 erf.plot_vars_1 = density rhoadv_0 x_velocity y_velocity z_velocity pressure temp theta # CHECKPOINT FILES -erf.check_file = chk # root name of checkpoint file -erf.check_per = 1.0 - -# Restart for data collection -#erf.restart = "/home/tma/Desktop/TurbChannel/SpinUp/chk233334" -#erf.data_log = "surf.txt" "mean.txt" "flux.txt" "subgrid.txt" -#erf.profile_int = 33334 +#erf.check_file = chk # root name of checkpoint file +#erf.check_per = 1.0 # SOLVER CHOICE erf.alpha_T = 0.0 -erf.alpha_C = 1.0 -erf.use_gravity = false - +erf.alpha_C = 0.0 erf.molec_diff_type = "None" erf.les_type = "Smagorinsky" erf.Cs = 0.1 - -erf.buoyancy_type = 1 - -# Initial condition for the entire field -erf.init_type = "input_sounding" -erf.input_sounding_file = "input_ReTau2000DNS_sounding.txt" +erf.use_gravity = true +erf.buoyancy_type = 2 # Turbulent inflow generation erf.perturbation_type = "source" erf.perturbation_direction = 1 0 0 erf.perturbation_layers = 3 -erf.perturbation_offset = 10 +erf.perturbation_offset = 3 -erf.perturbation_box_dims = 4 4 8 # 0.25 0.25 0.125 +erf.perturbation_box_dims = 8 8 4 erf.perturbation_nondimensional = 0.042 # Ri erf.perturbation_T_infinity = 300.0 erf.perturbation_T_intensity = 0.1 +# Initial condition for the entire field +#erf.init_type = "uniform" +erf.init_type = "input_sounding" +erf.input_sounding_file = "input_ReTau395Ana_sounding.txt" + # 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 diff --git a/Exec/DevTests/ABL_perturbation_inflow/input_ReTau2000Ana_sounding.txt b/Exec/DevTests/ABL_perturbation_inflow/input_ReTau2000Ana_sounding.txt deleted file mode 100644 index 00b7274fc..000000000 --- a/Exec/DevTests/ABL_perturbation_inflow/input_ReTau2000Ana_sounding.txt +++ /dev/null @@ -1,34 +0,0 @@ -0.0 300.0 0.0 -1.00000000e-02 3.00000000e+02 0.00000000e+00 1.25066641e+01 0.00000000e+00 -3.22187500e-01 3.00000000e+02 0.00000000e+00 2.09762948e+01 0.00000000e+00 -6.34375000e-01 3.00000000e+02 0.00000000e+00 2.26287499e+01 0.00000000e+00 -9.46562500e-01 3.00000000e+02 0.00000000e+00 2.36048395e+01 0.00000000e+00 -1.25875000e+00 3.00000000e+02 0.00000000e+00 2.43000527e+01 0.00000000e+00 -1.57093750e+00 3.00000000e+02 0.00000000e+00 2.48404269e+01 0.00000000e+00 -1.88312500e+00 3.00000000e+02 0.00000000e+00 2.52825246e+01 0.00000000e+00 -2.19531250e+00 3.00000000e+02 0.00000000e+00 2.56566509e+01 0.00000000e+00 -2.50750000e+00 3.00000000e+02 0.00000000e+00 2.59809480e+01 0.00000000e+00 -2.81968750e+00 3.00000000e+02 0.00000000e+00 2.62671427e+01 0.00000000e+00 -3.13187500e+00 3.00000000e+02 0.00000000e+00 2.65232545e+01 0.00000000e+00 -3.44406250e+00 3.00000000e+02 0.00000000e+00 2.67550102e+01 0.00000000e+00 -3.75625000e+00 3.00000000e+02 0.00000000e+00 2.69666429e+01 0.00000000e+00 -4.06843750e+00 3.00000000e+02 0.00000000e+00 2.71613695e+01 0.00000000e+00 -4.38062500e+00 3.00000000e+02 0.00000000e+00 2.73416924e+01 0.00000000e+00 -4.69281250e+00 3.00000000e+02 0.00000000e+00 2.75095964e+01 0.00000000e+00 -5.00500000e+00 3.00000000e+02 0.00000000e+00 2.76666826e+01 0.00000000e+00 -5.31718750e+00 3.00000000e+02 0.00000000e+00 2.78142609e+01 0.00000000e+00 -5.62937500e+00 3.00000000e+02 0.00000000e+00 2.79534168e+01 0.00000000e+00 -5.94156250e+00 3.00000000e+02 0.00000000e+00 2.80850600e+01 0.00000000e+00 -6.25375000e+00 3.00000000e+02 0.00000000e+00 2.82099603e+01 0.00000000e+00 -6.56593750e+00 3.00000000e+02 0.00000000e+00 2.83287750e+01 0.00000000e+00 -6.87812500e+00 3.00000000e+02 0.00000000e+00 2.84420696e+01 0.00000000e+00 -7.19031250e+00 3.00000000e+02 0.00000000e+00 2.85503344e+01 0.00000000e+00 -7.50250000e+00 3.00000000e+02 0.00000000e+00 2.86539970e+01 0.00000000e+00 -7.81468750e+00 3.00000000e+02 0.00000000e+00 2.87534328e+01 0.00000000e+00 -8.12687500e+00 3.00000000e+02 0.00000000e+00 2.88489730e+01 0.00000000e+00 -8.43906250e+00 3.00000000e+02 0.00000000e+00 2.89409114e+01 0.00000000e+00 -8.75125000e+00 3.00000000e+02 0.00000000e+00 2.90295098e+01 0.00000000e+00 -9.06343750e+00 3.00000000e+02 0.00000000e+00 2.91150023e+01 0.00000000e+00 -9.37562500e+00 3.00000000e+02 0.00000000e+00 2.91975993e+01 0.00000000e+00 -9.68781250e+00 3.00000000e+02 0.00000000e+00 2.92774905e+01 0.00000000e+00 -1.00000000e+01 3.00000000e+02 0.00000000e+00 2.93548477e+01 0.00000000e+00 diff --git a/Exec/DevTests/ABL_perturbation_inflow/input_ReTau2000Ana_sponge.txt b/Exec/DevTests/ABL_perturbation_inflow/input_ReTau2000Ana_sponge.txt deleted file mode 100644 index f6c50f044..000000000 --- a/Exec/DevTests/ABL_perturbation_inflow/input_ReTau2000Ana_sponge.txt +++ /dev/null @@ -1,33 +0,0 @@ -1.00000000e-02 1.25066641e+01 0.00000000e+00 -3.22187500e-01 2.09762948e+01 0.00000000e+00 -6.34375000e-01 2.26287499e+01 0.00000000e+00 -9.46562500e-01 2.36048395e+01 0.00000000e+00 -1.25875000e+00 2.43000527e+01 0.00000000e+00 -1.57093750e+00 2.48404269e+01 0.00000000e+00 -1.88312500e+00 2.52825246e+01 0.00000000e+00 -2.19531250e+00 2.56566509e+01 0.00000000e+00 -2.50750000e+00 2.59809480e+01 0.00000000e+00 -2.81968750e+00 2.62671427e+01 0.00000000e+00 -3.13187500e+00 2.65232545e+01 0.00000000e+00 -3.44406250e+00 2.67550102e+01 0.00000000e+00 -3.75625000e+00 2.69666429e+01 0.00000000e+00 -4.06843750e+00 2.71613695e+01 0.00000000e+00 -4.38062500e+00 2.73416924e+01 0.00000000e+00 -4.69281250e+00 2.75095964e+01 0.00000000e+00 -5.00500000e+00 2.76666826e+01 0.00000000e+00 -5.31718750e+00 2.78142609e+01 0.00000000e+00 -5.62937500e+00 2.79534168e+01 0.00000000e+00 -5.94156250e+00 2.80850600e+01 0.00000000e+00 -6.25375000e+00 2.82099603e+01 0.00000000e+00 -6.56593750e+00 2.83287750e+01 0.00000000e+00 -6.87812500e+00 2.84420696e+01 0.00000000e+00 -7.19031250e+00 2.85503344e+01 0.00000000e+00 -7.50250000e+00 2.86539970e+01 0.00000000e+00 -7.81468750e+00 2.87534328e+01 0.00000000e+00 -8.12687500e+00 2.88489730e+01 0.00000000e+00 -8.43906250e+00 2.89409114e+01 0.00000000e+00 -8.75125000e+00 2.90295098e+01 0.00000000e+00 -9.06343750e+00 2.91150023e+01 0.00000000e+00 -9.37562500e+00 2.91975993e+01 0.00000000e+00 -9.68781250e+00 2.92774905e+01 0.00000000e+00 -1.00000000e+01 2.93548477e+01 0.00000000e+00 diff --git a/Exec/DevTests/ABL_perturbation_inflow/input_ReTau2000DNS_sounding.txt b/Exec/DevTests/ABL_perturbation_inflow/input_ReTau2000DNS_sounding.txt deleted file mode 100644 index ea1cf6cc4..000000000 --- a/Exec/DevTests/ABL_perturbation_inflow/input_ReTau2000DNS_sounding.txt +++ /dev/null @@ -1,386 +0,0 @@ -0.0 300.0 0.0 0.0 0.0 -0.0 300.0 0.0 0.0 0.0 -1.217311652923492e-06 300.0 0.0 0.00011140613491415374 0.0 -6.086537518545931e-06 300.0 0.0 0.0005570274195276387 0.0 -1.704221791976046e-05 300.0 0.0 0.001559660241516003 0.0 -3.651878945154508e-05 300.0 0.0 0.0033420734502807845 0.0 -6.69505434929274e-05 300.0 0.0 0.0061269859333703105 0.0 -0.0001107715847206148 300.0 0.0 0.010137027830325164 0.0 -0.0001704157896263991 300.0 0.0 0.015594654328461917 0.0 -0.0002470994533848581 300.0 0.0 0.022610560551618166 0.0 -0.0003408212691252688 300.0 0.0 0.03118329599615294 0.0 -0.0004515796396062921 300.0 0.0 0.041309855577899 0.0 -0.000579372677243728 300.0 0.0 0.05298424056514345 0.0 -0.0007241982041420458 300.0 0.0 0.0661951414700109 0.0 -0.0008860537521320211 300.0 0.0 0.08092253985409509 0.0 -0.001064936562812813 300.0 0.0 0.0971331738653471 0.0 -0.001260843587598481 300.0 0.0 0.11477508395784822 0.0 -0.001473771487770281 300.0 0.0 0.1337718182129991 0.0 -0.001703716634533836 300.0 0.0 0.15401723219797894 0.0 -0.001950675109080202 300.0 0.0 0.17537202560217383 0.0 -0.002214642702653591 300.0 0.0 0.19766309500502766 0.0 -0.002495614916622313 300.0 0.0 0.22068641020278618 0.0 -0.002793586962555827 300.0 0.0 0.24421351408048736 0.0 -0.003108553762306454 300.0 0.0 0.26800106528869905 0.0 -0.003440509948095416 300.0 0.0 0.2918022762175396 0.0 -0.003789449862605099 300.0 0.0 0.3153787887917496 0.0 -0.00415536755907453 300.0 0.0 0.33851153352152946 0.0 -0.00453825680140163 300.0 0.0 0.3610093985843633 0.0 -0.004938111064248796 300.0 0.0 0.38271499588213365 0.0 -0.005354923533154365 300.0 0.0 0.40350732369344205 0.0 -0.005788687104649082 300.0 0.0 0.42330157619153297 0.0 -0.006239394386376662 300.0 0.0 0.44204666394902753 0.0 -0.006707037697219698 300.0 0.0 0.45972116053418083 0.0 -0.007191609067431326 300.0 0.0 0.4763283937977089 0.0 -0.007693100238770012 300.0 0.0 0.4918913001425068 0.0 -0.008211502664641435 300.0 0.0 0.5064475077163358 0.0 -0.008746807510242927 300.0 0.0 0.5200449482275936 0.0 -0.00929900565271502 300.0 0.0 0.532738144371353 0.0 -0.009868087681296545 300.0 0.0 0.5445852012395845 0.0 -0.01045404389748472 300.0 0.0 0.5556454604448817 0.0 -0.01105686431520103 300.0 0.0 0.5659777499855595 0.0 -0.01167653866096097 300.0 0.0 0.5756391497457344 0.0 -0.01231305637404945 300.0 0.0 0.5846841826152349 0.0 -0.01296640660670023 300.0 0.0 0.5931643403160594 0.0 -0.01363657822428155 300.0 0.0 0.601127860670266 0.0 -0.01432355980548528 300.0 0.0 0.608619682139255 0.0 -0.01502733964252179 300.0 0.0 0.6156815050972786 0.0 -0.01574790574131968 300.0 0.0 0.6223518994969911 0.0 -0.01648524582172972 300.0 0.0 0.6286664134066627 0.0 -0.01723934731773447 300.0 0.0 0.6346576755798535 0.0 -0.01801019737766241 300.0 0.0 0.6403555190005279 0.0 -0.01879778286440703 300.0 0.0 0.6457871582543366 0.0 -0.0196020903556503 300.0 0.0 0.6509774062824263 0.0 -0.02042310614409193 300.0 0.0 0.6559488584319104 0.0 -0.02126081623768261 300.0 0.0 0.6607220139669816 0.0 -0.02211520635986297 300.0 0.0 0.6653154146337487 0.0 -0.02298626194980602 300.0 0.0 0.6697458361665584 0.0 -0.02387396816266618 300.0 0.0 0.6740284263030051 0.0 -0.02477830986983187 300.0 0.0 0.6781767885643138 0.0 -0.02569927165918329 300.0 0.0 0.6822031020398561 0.0 -0.02663683783535509 300.0 0.0 0.6861182708699223 0.0 -0.02759099242000418 300.0 0.0 0.6899320475117866 0.0 -0.0285617191520815 300.0 0.0 0.6936531306253383 0.0 -0.02954900148810957 300.0 0.0 0.697289274391367 0.0 -0.03055282260246439 300.0 0.0 0.700847418877707 0.0 -0.03157316538766197 300.0 0.0 0.7043338036947433 0.0 -0.03261001245465012 300.0 0.0 0.7077540244565094 0.0 -0.0336633461331044 300.0 0.0 0.7111130669920873 0.0 -0.03473314847172981 300.0 0.0 0.7144153223784735 0.0 -0.03581940123856664 300.0 0.0 0.7176645942914638 0.0 -0.03692208592130042 300.0 0.0 0.7208641757417564 0.0 -0.03804118372757859 300.0 0.0 0.7240170305590236 0.0 -0.03917667558532989 300.0 0.0 0.7271259207331257 0.0 -0.04032854214308979 300.0 0.0 0.7301934033701646 0.0 -0.04149676377033007 300.0 0.0 0.7332217993282111 0.0 -0.0426813205577935 300.0 0.0 0.7362131455439986 0.0 -0.04388219231783319 300.0 0.0 0.7391692003300155 0.0 -0.04509935858475644 300.0 0.0 0.7420914852425665 0.0 -0.04633279861517381 300.0 0.0 0.744981308448903 0.0 -0.04758249138835247 300.0 0.0 0.74783985979067 0.0 -0.04884841560657416 300.0 0.0 0.7506683169127073 0.0 -0.05013054969549879 300.0 0.0 0.7534677877241249 0.0 -0.05142887180453171 300.0 0.0 0.7562393057597661 0.0 -0.0527433598071958 300.0 0.0 0.7589839217504151 0.0 -0.05407399130150936 300.0 0.0 0.7617025776963112 0.0 -0.0554207436103672 300.0 0.0 0.7643960083517222 0.0 -0.05678359378192743 300.0 0.0 0.767064808851985 0.0 -0.05816251859000254 300.0 0.0 0.7697095126185458 0.0 -0.05955749453445514 300.0 0.0 0.7723306799775616 0.0 -0.06096849784159863 300.0 0.0 0.7749288729908923 0.0 -0.0623955044646024 300.0 0.0 0.7775045817819957 0.0 -0.06383849008390119 300.0 0.0 0.7800581798693501 0.0 -0.06529743010761013 300.0 0.0 0.7825899146693549 0.0 -0.06677229967194354 300.0 0.0 0.7851000034346878 0.0 -0.06826307364163875 300.0 0.0 0.7875887752508794 0.0 -0.06976972661038428 300.0 0.0 0.790056636442802 0.0 -0.0712922329012533 300.0 0.0 0.7925039470154007 0.0 -0.0728305665671406 300.0 0.0 0.7949310784150017 0.0 -0.07438470139120534 300.0 0.0 0.7973383740665354 0.0 -0.07595461088731725 300.0 0.0 0.7997261358672254 0.0 -0.07754026830050886 300.0 0.0 0.8020946171335985 0.0 -0.0791416466074305 300.0 0.0 0.8044440152994246 0.0 -0.0807587185168116 300.0 0.0 0.8067745510976451 0.0 -0.08239145646992563 300.0 0.0 0.8090864392710908 0.0 -0.08403983264105919 300.0 0.0 0.8113798275537744 0.0 -0.08570381893798718 300.0 0.0 0.813654862706185 0.0 -0.08738338700245085 300.0 0.0 0.8159117995712017 0.0 -0.08907850821064123 300.0 0.0 0.8181509403346153 0.0 -0.09078915367368723 300.0 0.0 0.8203726239021643 0.0 -0.09251529423814753 300.0 0.0 0.8225771840577804 0.0 -0.09425690048650792 300.0 0.0 0.8247648350590637 0.0 -0.09601394273768227 300.0 0.0 0.8269356358581906 0.0 -0.0977863910475184 300.0 0.0 0.8290896245193335 0.0 -0.09957421520930865 300.0 0.0 0.8312269522374758 0.0 -0.1013773847543044 300.0 0.0 0.8333478232877262 0.0 -0.1031958689522353 300.0 0.0 0.8354524834137913 0.0 -0.1050296368118336 300.0 0.0 0.8375412599030938 0.0 -0.1068786570813612 300.0 0.0 0.83961441959534 0.0 -0.1087428982491435 300.0 0.0 0.8416721966590038 0.0 -0.1106223285441054 300.0 0.0 0.8437149645893851 0.0 -0.1125169159363132 300.0 0.0 0.8457432801955882 0.0 -0.1144266281375207 300.0 0.0 0.8477577405258729 0.0 -0.1163514326017191 300.0 0.0 0.8497587019453117 0.0 -0.1182912965256916 300.0 0.0 0.8517462535964925 0.0 -0.1202461868495729 300.0 0.0 0.8537202567648244 0.0 -0.1222160702574122 300.0 0.0 0.8556805376195089 0.0 -0.1242009131777411 300.0 0.0 0.8576270567655011 0.0 -0.1262006817841457 300.0 0.0 0.859559855276432 0.0 -0.1282153419958432 300.0 0.0 0.8614790240461743 0.0 -0.1302448594782628 300.0 0.0 0.8633846225241005 0.0 -0.1322891996436305 300.0 0.0 0.8652767796685787 0.0 -0.1343483276515588 300.0 0.0 0.8671557758829654 0.0 -0.1364222084096405 300.0 0.0 0.8690219114218987 0.0 -0.1385108065740466 300.0 0.0 0.8708755751778129 0.0 -0.1406140865501285 300.0 0.0 0.8727171398583112 0.0 -0.1427320124930254 300.0 0.0 0.8745467195850641 0.0 -0.1448645483082741 300.0 0.0 0.8763643014488819 0.0 -0.1470116576524249 300.0 0.0 0.8781699758162448 0.0 -0.1491733039336606 300.0 0.0 0.8799639277618019 0.0 -0.1513494503124202 300.0 0.0 0.8817463985307787 0.0 -0.153540059702027 300.0 0.0 0.8835175714281407 0.0 -0.1557450947693203 300.0 0.0 0.8852774162205512 0.0 -0.1579645179352918 300.0 0.0 0.8870258409101626 0.0 -0.1601982913757256 300.0 0.0 0.8887628179088204 0.0 -0.1624463770218439 300.0 0.0 0.8904884475714206 0.0 -0.1647087365609547 300.0 0.0 0.8922029687521473 0.0 -0.1669853314371051 300.0 0.0 0.8939065997698805 0.0 -0.1692761228517385 300.0 0.0 0.8955993471359808 0.0 -0.1715810717643558 300.0 0.0 0.8972811995622746 0.0 -0.1739001388931806 300.0 0.0 0.8989524583382827 0.0 -0.1762332847158286 300.0 0.0 0.9006136088702439 0.0 -0.1785804694699815 300.0 0.0 0.9022650177404423 0.0 -0.1809416531540645 300.0 0.0 0.9039068724805179 0.0 -0.1833167955279277 300.0 0.0 0.9055391459871299 0.0 -0.1857058561135323 300.0 0.0 0.9071619216229164 0.0 -0.1881087941956401 300.0 0.0 0.9087754003620085 0.0 -0.1905255688225079 300.0 0.0 0.9103796430584327 0.0 -0.1929561388065848 300.0 0.0 0.911974726776834 0.0 -0.1954004627252144 300.0 0.0 0.9135606970140512 0.0 -0.197858498921341 300.0 0.0 0.9151376855427551 0.0 -0.200330205504219 300.0 0.0 0.9167059711207346 0.0 -0.2028155403501273 300.0 0.0 0.9182657846303789 0.0 -0.2053144611030869 300.0 0.0 0.9198173470853775 0.0 -0.207826925175583 300.0 0.0 0.9213609272334615 0.0 -0.2103528897492902 300.0 0.0 0.9228967515020714 0.0 -0.2128923117758034 300.0 0.0 0.9244247852399078 0.0 -0.2154451479773698 300.0 0.0 0.9259447467445927 0.0 -0.2180113548476281 300.0 0.0 0.9274563490254334 0.0 -0.2205908886523488 300.0 0.0 0.9289594592760015 0.0 -0.2231837054301802 300.0 0.0 0.9304542478509127 0.0 -0.225789760993397 300.0 0.0 0.9319412509979282 0.0 -0.2284090109286542 300.0 0.0 0.9334209418746512 0.0 -0.231041410597743 300.0 0.0 0.9348934405590973 0.0 -0.2336869151383524 300.0 0.0 0.9363587405745076 0.0 -0.2363454794648333 300.0 0.0 0.9378168765599467 0.0 -0.2390170582689671 300.0 0.0 0.9392678950487781 0.0 -0.2417016060207376 300.0 0.0 0.940711651065673 0.0 -0.2443990769691072 300.0 0.0 0.9421480922469726 0.0 -0.2471094251427964 300.0 0.0 0.9435771784982919 0.0 -0.2498326043510675 300.0 0.0 0.9449989788097755 0.0 -0.2525685681845112 300.0 0.0 0.9464136839308143 0.0 -0.2553172700158386 300.0 0.0 0.9478212946302264 0.0 -0.2580786630006749 300.0 0.0 0.9492217782573125 0.0 -0.260852700078358 300.0 0.0 0.9506151056434238 0.0 -0.2636393339727408 300.0 0.0 0.9520012477347317 0.0 -0.2664385171929963 300.0 0.0 0.9533803786785173 0.0 -0.2692502020344277 300.0 0.0 0.9547527257046486 0.0 -0.2720743405792809 300.0 0.0 0.9561184544824323 0.0 -0.2749108846975613 300.0 0.0 0.9574778239110496 0.0 -0.2777597860478538 300.0 0.0 0.9588310450011877 0.0 -0.2806209960781473 300.0 0.0 0.9601782292274886 0.0 -0.2834944660266612 300.0 0.0 0.9615193317258413 0.0 -0.2863801469226772 300.0 0.0 0.9628543117952431 0.0 -0.2892779895873737 300.0 0.0 0.9641832258074391 0.0 -0.2921879446346636 300.0 0.0 0.9655061102311662 0.0 -0.2951099624720362 300.0 0.0 0.9668230776449845 0.0 -0.2980439933014026 300.0 0.0 0.9681343864045031 0.0 -0.3009899871199438 300.0 0.0 0.9694402639247923 0.0 -0.3039478937209633 300.0 0.0 0.9707406583504683 0.0 -0.3069176626947427 300.0 0.0 0.9720353354914428 0.0 -0.3098992434294008 300.0 0.0 0.9733242700142486 0.0 -0.3128925851117559 300.0 0.0 0.9746078536245253 0.0 -0.315897636728192 300.0 0.0 0.9758863402151784 0.0 -0.3189143470655283 300.0 0.0 0.9771595088146999 0.0 -0.3219426647118918 300.0 0.0 0.9784272185083719 0.0 -0.3249825380575933 300.0 0.0 0.9796896634251465 0.0 -0.3280339152960073 300.0 0.0 0.9809470023963451 0.0 -0.331096744424455 300.0 0.0 0.9821991054488802 0.0 -0.3341709732450902 300.0 0.0 0.9834459085225121 0.0 -0.3372565493657887 300.0 0.0 0.9846875264424727 0.0 -0.340353420201042 300.0 0.0 0.9859240938340674 0.0 -0.3434615329728526 300.0 0.0 0.9871555114571253 0.0 -0.346580834711634 300.0 0.0 0.9883813577755736 0.0 -0.3497112722571132 300.0 0.0 0.9896015762012266 0.0 -0.3528527922592367 300.0 0.0 0.99081652702429 0.0 -0.35600534117908 300.0 0.0 0.9920262495184689 0.0 -0.3591688652897594 300.0 0.0 0.993230638256614 0.0 -0.3623433106773484 300.0 0.0 0.9944297593668414 0.0 -0.3655286232417957 300.0 0.0 0.9956237661357139 0.0 -0.368724748697848 300.0 0.0 0.9968125901403091 0.0 -0.3719316325759746 300.0 0.0 0.9979960986578006 0.0 -0.3751492202232959 300.0 0.0 0.9991743889398924 0.0 -0.3783774568045147 300.0 0.0 1.000347647126256 0.0 -0.3816162873028511 300.0 0.0 1.0015161551437557 0.0 -0.3848656565209795 300.0 0.0 1.0026802169912563 0.0 -0.3881255090819695 300.0 0.0 1.0038399040764108 0.0 -0.3913957894302302 300.0 0.0 1.0049953033517267 0.0 -0.3946764418324564 300.0 0.0 1.0061465436252042 0.0 -0.3979674103785783 300.0 0.0 1.0072934019273698 0.0 -0.4012686389827149 300.0 0.0 1.0084356583504384 0.0 -0.4045800713841297 300.0 0.0 1.0095733545366574 0.0 -0.407901651148189 300.0 0.0 1.0107065890036997 0.0 -0.4112333216673243 300.0 0.0 1.0118354965139098 0.0 -0.4145750261619968 300.0 0.0 1.0129604734335742 0.0 -0.417926707681665 300.0 0.0 1.01408193425014 0.0 -0.4212883091057552 300.0 0.0 1.0152001565281163 0.0 -0.4246597731446353 300.0 0.0 1.0163153568916408 0.0 -0.4280410423405908 300.0 0.0 1.0174277213201164 0.0 -0.4314320590688043 300.0 0.0 1.0185370504195503 0.0 -0.4348327655383372 300.0 0.0 1.019642798230917 0.0 -0.4382431037931148 300.0 0.0 1.0207446730023402 0.0 -0.4416630157129143 300.0 0.0 1.021842575607473 0.0 -0.4450924430143548 300.0 0.0 1.0229366924786005 0.0 -0.4485313272518908 300.0 0.0 1.0240272160718744 0.0 -0.4519796098188085 300.0 0.0 1.025114058909379 0.0 -0.4554372319482241 300.0 0.0 1.0261971221111332 0.0 -0.4589041347140854 300.0 0.0 1.0272764190152335 0.0 -0.4623802590321769 300.0 0.0 1.0283518990674234 0.0 -0.4658655456611256 300.0 0.0 1.0294234657645767 0.0 -0.4693599352034108 300.0 0.0 1.0304910509800187 0.0 -0.4728633681063773 300.0 0.0 1.0315544822130562 0.0 -0.4763757846632491 300.0 0.0 1.0326136853060508 0.0 -0.4798971250141478 300.0 0.0 1.0336686031996722 0.0 -0.4834273291471126 300.0 0.0 1.034719017484392 0.0 -0.4869663368991224 300.0 0.0 1.035764937541362 0.0 -0.4905140879571221 300.0 0.0 1.0368066522595223 0.0 -0.4940705218590499 300.0 0.0 1.0378444141311418 0.0 -0.4976355779948676 300.0 0.0 1.0388782948008106 0.0 -0.5012091956075939 300.0 0.0 1.0399083596192416 0.0 -0.5047913137943398 300.0 0.0 1.040934710480001 0.0 -0.5083818715073465 300.0 0.0 1.041957200670301 0.0 -0.5119808075550254 300.0 0.0 1.0429757432947437 0.0 -0.5155880606030014 300.0 0.0 1.0439903805785498 0.0 -0.5192035691751582 300.0 0.0 1.0450011270368005 0.0 -0.5228272716546859 300.0 0.0 1.0460078719393338 0.0 -0.5264591062851307 300.0 0.0 1.0470107647095013 0.0 -0.5300990111714481 300.0 0.0 1.0480101158827408 0.0 -0.5337469242810573 300.0 0.0 1.0490061315131571 0.0 -0.5374027834448982 300.0 0.0 1.049998911149802 0.0 -0.5410665263584914 300.0 0.0 1.050988243436124 0.0 -0.5447380905829997 300.0 0.0 1.0519738732048172 0.0 -0.5484174135462924 300.0 0.0 1.0529556094998889 0.0 -0.5521044325440113 300.0 0.0 1.0539333034248877 0.0 -0.5557990847406399 300.0 0.0 1.054906913979975 0.0 -0.5595013071705737 300.0 0.0 1.0558764699979581 0.0 -0.5632110367391936 300.0 0.0 1.056841953521945 0.0 -0.566928210223941 300.0 0.0 1.057803534098425 0.0 -0.5706527642753958 300.0 0.0 1.0587614606663196 0.0 -0.5743846354183553 300.0 0.0 1.059715828358481 0.0 -0.5781237600529161 300.0 0.0 1.0606665001402922 0.0 -0.5818700744555583 300.0 0.0 1.0616132130578062 0.0 -0.5856235147802317 300.0 0.0 1.0625558983662156 0.0 -0.5893840170594431 300.0 0.0 1.063494846560091 0.0 -0.593151517205347 300.0 0.0 1.0644299677355376 0.0 -0.5969259510108379 300.0 0.0 1.0653606677605645 0.0 -0.6007072541506442 300.0 0.0 1.0662864526398241 0.0 -0.6044953621824245 300.0 0.0 1.0672069239093953 0.0 -0.6082902105478664 300.0 0.0 1.068121706922733 0.0 -0.6120917345737857 300.0 0.0 1.069030475813776 0.0 -0.6158998694732298 300.0 0.0 1.0699332520359268 0.0 -0.6197145503465804 300.0 0.0 1.0708301957020576 0.0 -0.6235357121826612 300.0 0.0 1.0717213344748797 0.0 -0.6273632898598445 300.0 0.0 1.072606627668974 0.0 -0.6311972181471613 300.0 0.0 1.0734860402254864 0.0 -0.6350374317054138 300.0 0.0 1.0743596894671337 0.0 -0.6388838650882879 300.0 0.0 1.0752276615613787 0.0 -0.6427364527434689 300.0 0.0 1.0760898693822198 0.0 -0.6465951290137593 300.0 0.0 1.0769462024979783 0.0 -0.6504598281381966 300.0 0.0 1.0777966835969708 0.0 -0.6543304842531749 300.0 0.0 1.0786414776539237 0.0 -0.6582070313935672 300.0 0.0 1.0794807554297583 0.0 -0.6620894034938494 300.0 0.0 1.0803144862152758 0.0 -0.6659775343892262 300.0 0.0 1.081142405143407 0.0 -0.6698713578167591 300.0 0.0 1.0819642509990406 0.0 -0.6737708074164952 300.0 0.0 1.0827800011152235 0.0 -0.6776758167325982 300.0 0.0 1.0835897104066905 0.0 -0.6815863192144815 300.0 0.0 1.0843930466102056 0.0 -0.6855022482179417 300.0 0.0 1.0851894824968071 0.0 -0.6894235370062947 300.0 0.0 1.0859787166491295 0.0 -0.6933501187515128 300.0 0.0 1.0867605762402337 0.0 -0.6972819265353641 300.0 0.0 1.0875350056888133 0.0 -0.7012188933505527 300.0 0.0 1.0883021422398613 0.0 -0.7051609521018602 300.0 0.0 1.0890621688129631 0.0 -0.7091080356072901 300.0 0.0 1.0898151747391618 0.0 -0.7130600765992119 300.0 0.0 1.0905611944494604 0.0 -0.7170170077255077 300.0 0.0 1.091300148925149 0.0 -0.7209787615507204 300.0 0.0 1.0920320104138537 0.0 -0.7249452705572028 300.0 0.0 1.0927568538290762 0.0 -0.7289164671462678 300.0 0.0 1.093474536386571 0.0 -0.732892283639341 300.0 0.0 1.0941846803820647 0.0 -0.7368726522791142 300.0 0.0 1.0948868827183935 0.0 -0.7408575052306994 300.0 0.0 1.095580974770836 0.0 -0.7448467745827856 300.0 0.0 1.0962669184077736 0.0 -0.7488403923487958 300.0 0.0 1.0969446208084177 0.0 -0.752838290468046 300.0 0.0 1.0976139980965551 0.0 -0.7568404008069043 300.0 0.0 1.098275128126286 0.0 -0.7608466551599531 300.0 0.0 1.0989282183752769 0.0 -0.7648569852511511 300.0 0.0 1.099573232042445 0.0 -0.7688713227349963 300.0 0.0 1.1002099041468754 0.0 -0.7728895991976916 300.0 0.0 1.100837950306941 0.0 -0.7769117461583105 300.0 0.0 1.1014572806798282 0.0 -0.7809376950699636 300.0 0.0 1.102067985604749 0.0 -0.7849673773209678 300.0 0.0 1.1026700407295404 0.0 -0.7890007242360147 300.0 0.0 1.1032633577234505 0.0 -0.7930376670773416 300.0 0.0 1.1038476708187197 0.0 -0.7970781370459026 300.0 0.0 1.104422738022161 0.0 -0.8011220652825412 300.0 0.0 1.1049885353023232 0.0 -0.8051693828691638 300.0 0.0 1.1055448470037688 0.0 -0.8092200208299145 300.0 0.0 1.1060914642390087 0.0 -0.8132739101323502 300.0 0.0 1.106628350311339 0.0 -0.8173309816886172 300.0 0.0 1.107155376545416 0.0 -0.8213911663566287 300.0 0.0 1.1076723185689001 0.0 -0.8254543949412434 300.0 0.0 1.1081788222016578 0.0 -0.829520598195444 300.0 0.0 1.1086746368493074 0.0 -0.8335897068215181 300.0 0.0 1.109159813164577 0.0 -0.8376616514722389 300.0 0.0 1.10963459018341 0.0 -0.841736362752047 300.0 0.0 1.1100991076017594 0.0 -0.845813771218233 300.0 0.0 1.1105533754453123 0.0 -0.8498938073821211 300.0 0.0 1.1109972049947676 0.0 -0.8539764017102535 300.0 0.0 1.1114303392667393 0.0 -0.858061484625575 300.0 0.0 1.1118526704412035 0.0 -0.8621489865086192 300.0 0.0 1.1122641279560428 0.0 -0.8662388376986945 300.0 0.0 1.1126647084118235 0.0 -0.8703309684950719 300.0 0.0 1.1130543228625418 0.0 -0.8744253091581722 300.0 0.0 1.1134329177305022 0.0 -0.8785217899107551 300.0 0.0 1.1138005472542447 0.0 -0.8826203409391081 300.0 0.0 1.1141571709007685 0.0 -0.8867208923942361 300.0 0.0 1.1145026282029389 0.0 -0.8908233743930521 300.0 0.0 1.1148367835748216 0.0 -0.8949277170195682 300.0 0.0 1.1151596154780363 0.0 -0.8990338503260868 300.0 0.0 1.1154711733828995 0.0 -0.9031417043343931 300.0 0.0 1.1157713200263766 0.0 -0.9072512090369473 300.0 0.0 1.11605972508053 0.0 -0.9113622943980779 300.0 0.0 1.116336144189679 0.0 -0.9154748903551754 300.0 0.0 1.1166005500083394 0.0 -0.9195889268198859 300.0 0.0 1.1168529115709196 0.0 -0.923704333679306 300.0 0.0 1.1170930843004574 0.0 -0.9278210407971776 300.0 0.0 1.1173210208729007 0.0 -0.9319389780150831 300.0 0.0 1.117536637160364 0.0 -0.9360580751536409 300.0 0.0 1.1177398284033127 0.0 -0.9401782620137019 300.0 0.0 1.1179305881024477 0.0 -0.9442994683775454 300.0 0.0 1.1181089069629575 0.0 -0.9484216240100758 300.0 0.0 1.1182746876473275 0.0 -0.9525446586600201 300.0 0.0 1.1184277273200767 0.0 -0.9566685020611244 300.0 0.0 1.1185678673511346 0.0 -0.9607930839333522 300.0 0.0 1.1186951599682844 0.0 -0.964918333984081 300.0 0.0 1.1188096901542868 0.0 -0.9690441819093016 300.0 0.0 1.118911351122682 0.0 -0.9731705573948156 300.0 0.0 1.1190000308462351 0.0 -0.9772973901174332 300.0 0.0 1.119075791838296 0.0 -0.9814246097461727 300.0 0.0 1.1191387316178165 0.0 -0.9855521459434584 300.0 0.0 1.1191889672245374 0.0 -0.9896799283663196 300.0 0.0 1.1192266886822442 0.0 -0.9938078866675891 300.0 0.0 1.119251954837764 0.0 -0.9979359504971027 300.0 0.0 1.1192646414784726 0.0 -1.0 300.0 0.0 1.1192646414784726 0.0 diff --git a/Exec/DevTests/ABL_perturbation_inflow/input_ReTau2000DNS_sponge.txt b/Exec/DevTests/ABL_perturbation_inflow/input_ReTau2000DNS_sponge.txt deleted file mode 100644 index 737895f86..000000000 --- a/Exec/DevTests/ABL_perturbation_inflow/input_ReTau2000DNS_sponge.txt +++ /dev/null @@ -1,384 +0,0 @@ -0.0 0.0 0.0 -1.217311652923492e-06 0.00011140613491415374 0.0 -6.086537518545931e-06 0.0005570274195276387 0.0 -1.704221791976046e-05 0.001559660241516003 0.0 -3.651878945154508e-05 0.0033420734502807845 0.0 -6.69505434929274e-05 0.0061269859333703105 0.0 -0.0001107715847206148 0.010137027830325164 0.0 -0.0001704157896263991 0.015594654328461917 0.0 -0.0002470994533848581 0.022610560551618166 0.0 -0.0003408212691252688 0.03118329599615294 0.0 -0.0004515796396062921 0.041309855577899 0.0 -0.000579372677243728 0.05298424056514345 0.0 -0.0007241982041420458 0.0661951414700109 0.0 -0.0008860537521320211 0.08092253985409509 0.0 -0.001064936562812813 0.0971331738653471 0.0 -0.001260843587598481 0.11477508395784822 0.0 -0.001473771487770281 0.1337718182129991 0.0 -0.001703716634533836 0.15401723219797894 0.0 -0.001950675109080202 0.17537202560217383 0.0 -0.002214642702653591 0.19766309500502766 0.0 -0.002495614916622313 0.22068641020278618 0.0 -0.002793586962555827 0.24421351408048736 0.0 -0.003108553762306454 0.26800106528869905 0.0 -0.003440509948095416 0.2918022762175396 0.0 -0.003789449862605099 0.3153787887917496 0.0 -0.00415536755907453 0.33851153352152946 0.0 -0.00453825680140163 0.3610093985843633 0.0 -0.004938111064248796 0.38271499588213365 0.0 -0.005354923533154365 0.40350732369344205 0.0 -0.005788687104649082 0.42330157619153297 0.0 -0.006239394386376662 0.44204666394902753 0.0 -0.006707037697219698 0.45972116053418083 0.0 -0.007191609067431326 0.4763283937977089 0.0 -0.007693100238770012 0.4918913001425068 0.0 -0.008211502664641435 0.5064475077163358 0.0 -0.008746807510242927 0.5200449482275936 0.0 -0.00929900565271502 0.532738144371353 0.0 -0.009868087681296545 0.5445852012395845 0.0 -0.01045404389748472 0.5556454604448817 0.0 -0.01105686431520103 0.5659777499855595 0.0 -0.01167653866096097 0.5756391497457344 0.0 -0.01231305637404945 0.5846841826152349 0.0 -0.01296640660670023 0.5931643403160594 0.0 -0.01363657822428155 0.601127860670266 0.0 -0.01432355980548528 0.608619682139255 0.0 -0.01502733964252179 0.6156815050972786 0.0 -0.01574790574131968 0.6223518994969911 0.0 -0.01648524582172972 0.6286664134066627 0.0 -0.01723934731773447 0.6346576755798535 0.0 -0.01801019737766241 0.6403555190005279 0.0 -0.01879778286440703 0.6457871582543366 0.0 -0.0196020903556503 0.6509774062824263 0.0 -0.02042310614409193 0.6559488584319104 0.0 -0.02126081623768261 0.6607220139669816 0.0 -0.02211520635986297 0.6653154146337487 0.0 -0.02298626194980602 0.6697458361665584 0.0 -0.02387396816266618 0.6740284263030051 0.0 -0.02477830986983187 0.6781767885643138 0.0 -0.02569927165918329 0.6822031020398561 0.0 -0.02663683783535509 0.6861182708699223 0.0 -0.02759099242000418 0.6899320475117866 0.0 -0.0285617191520815 0.6936531306253383 0.0 -0.02954900148810957 0.697289274391367 0.0 -0.03055282260246439 0.700847418877707 0.0 -0.03157316538766197 0.7043338036947433 0.0 -0.03261001245465012 0.7077540244565094 0.0 -0.0336633461331044 0.7111130669920873 0.0 -0.03473314847172981 0.7144153223784735 0.0 -0.03581940123856664 0.7176645942914638 0.0 -0.03692208592130042 0.7208641757417564 0.0 -0.03804118372757859 0.7240170305590236 0.0 -0.03917667558532989 0.7271259207331257 0.0 -0.04032854214308979 0.7301934033701646 0.0 -0.04149676377033007 0.7332217993282111 0.0 -0.0426813205577935 0.7362131455439986 0.0 -0.04388219231783319 0.7391692003300155 0.0 -0.04509935858475644 0.7420914852425665 0.0 -0.04633279861517381 0.744981308448903 0.0 -0.04758249138835247 0.74783985979067 0.0 -0.04884841560657416 0.7506683169127073 0.0 -0.05013054969549879 0.7534677877241249 0.0 -0.05142887180453171 0.7562393057597661 0.0 -0.0527433598071958 0.7589839217504151 0.0 -0.05407399130150936 0.7617025776963112 0.0 -0.0554207436103672 0.7643960083517222 0.0 -0.05678359378192743 0.767064808851985 0.0 -0.05816251859000254 0.7697095126185458 0.0 -0.05955749453445514 0.7723306799775616 0.0 -0.06096849784159863 0.7749288729908923 0.0 -0.0623955044646024 0.7775045817819957 0.0 -0.06383849008390119 0.7800581798693501 0.0 -0.06529743010761013 0.7825899146693549 0.0 -0.06677229967194354 0.7851000034346878 0.0 -0.06826307364163875 0.7875887752508794 0.0 -0.06976972661038428 0.790056636442802 0.0 -0.0712922329012533 0.7925039470154007 0.0 -0.0728305665671406 0.7949310784150017 0.0 -0.07438470139120534 0.7973383740665354 0.0 -0.07595461088731725 0.7997261358672254 0.0 -0.07754026830050886 0.8020946171335985 0.0 -0.0791416466074305 0.8044440152994246 0.0 -0.0807587185168116 0.8067745510976451 0.0 -0.08239145646992563 0.8090864392710908 0.0 -0.08403983264105919 0.8113798275537744 0.0 -0.08570381893798718 0.813654862706185 0.0 -0.08738338700245085 0.8159117995712017 0.0 -0.08907850821064123 0.8181509403346153 0.0 -0.09078915367368723 0.8203726239021643 0.0 -0.09251529423814753 0.8225771840577804 0.0 -0.09425690048650792 0.8247648350590637 0.0 -0.09601394273768227 0.8269356358581906 0.0 -0.0977863910475184 0.8290896245193335 0.0 -0.09957421520930865 0.8312269522374758 0.0 -0.1013773847543044 0.8333478232877262 0.0 -0.1031958689522353 0.8354524834137913 0.0 -0.1050296368118336 0.8375412599030938 0.0 -0.1068786570813612 0.83961441959534 0.0 -0.1087428982491435 0.8416721966590038 0.0 -0.1106223285441054 0.8437149645893851 0.0 -0.1125169159363132 0.8457432801955882 0.0 -0.1144266281375207 0.8477577405258729 0.0 -0.1163514326017191 0.8497587019453117 0.0 -0.1182912965256916 0.8517462535964925 0.0 -0.1202461868495729 0.8537202567648244 0.0 -0.1222160702574122 0.8556805376195089 0.0 -0.1242009131777411 0.8576270567655011 0.0 -0.1262006817841457 0.859559855276432 0.0 -0.1282153419958432 0.8614790240461743 0.0 -0.1302448594782628 0.8633846225241005 0.0 -0.1322891996436305 0.8652767796685787 0.0 -0.1343483276515588 0.8671557758829654 0.0 -0.1364222084096405 0.8690219114218987 0.0 -0.1385108065740466 0.8708755751778129 0.0 -0.1406140865501285 0.8727171398583112 0.0 -0.1427320124930254 0.8745467195850641 0.0 -0.1448645483082741 0.8763643014488819 0.0 -0.1470116576524249 0.8781699758162448 0.0 -0.1491733039336606 0.8799639277618019 0.0 -0.1513494503124202 0.8817463985307787 0.0 -0.153540059702027 0.8835175714281407 0.0 -0.1557450947693203 0.8852774162205512 0.0 -0.1579645179352918 0.8870258409101626 0.0 -0.1601982913757256 0.8887628179088204 0.0 -0.1624463770218439 0.8904884475714206 0.0 -0.1647087365609547 0.8922029687521473 0.0 -0.1669853314371051 0.8939065997698805 0.0 -0.1692761228517385 0.8955993471359808 0.0 -0.1715810717643558 0.8972811995622746 0.0 -0.1739001388931806 0.8989524583382827 0.0 -0.1762332847158286 0.9006136088702439 0.0 -0.1785804694699815 0.9022650177404423 0.0 -0.1809416531540645 0.9039068724805179 0.0 -0.1833167955279277 0.9055391459871299 0.0 -0.1857058561135323 0.9071619216229164 0.0 -0.1881087941956401 0.9087754003620085 0.0 -0.1905255688225079 0.9103796430584327 0.0 -0.1929561388065848 0.911974726776834 0.0 -0.1954004627252144 0.9135606970140512 0.0 -0.197858498921341 0.9151376855427551 0.0 -0.200330205504219 0.9167059711207346 0.0 -0.2028155403501273 0.9182657846303789 0.0 -0.2053144611030869 0.9198173470853775 0.0 -0.207826925175583 0.9213609272334615 0.0 -0.2103528897492902 0.9228967515020714 0.0 -0.2128923117758034 0.9244247852399078 0.0 -0.2154451479773698 0.9259447467445927 0.0 -0.2180113548476281 0.9274563490254334 0.0 -0.2205908886523488 0.9289594592760015 0.0 -0.2231837054301802 0.9304542478509127 0.0 -0.225789760993397 0.9319412509979282 0.0 -0.2284090109286542 0.9334209418746512 0.0 -0.231041410597743 0.9348934405590973 0.0 -0.2336869151383524 0.9363587405745076 0.0 -0.2363454794648333 0.9378168765599467 0.0 -0.2390170582689671 0.9392678950487781 0.0 -0.2417016060207376 0.940711651065673 0.0 -0.2443990769691072 0.9421480922469726 0.0 -0.2471094251427964 0.9435771784982919 0.0 -0.2498326043510675 0.9449989788097755 0.0 -0.2525685681845112 0.9464136839308143 0.0 -0.2553172700158386 0.9478212946302264 0.0 -0.2580786630006749 0.9492217782573125 0.0 -0.260852700078358 0.9506151056434238 0.0 -0.2636393339727408 0.9520012477347317 0.0 -0.2664385171929963 0.9533803786785173 0.0 -0.2692502020344277 0.9547527257046486 0.0 -0.2720743405792809 0.9561184544824323 0.0 -0.2749108846975613 0.9574778239110496 0.0 -0.2777597860478538 0.9588310450011877 0.0 -0.2806209960781473 0.9601782292274886 0.0 -0.2834944660266612 0.9615193317258413 0.0 -0.2863801469226772 0.9628543117952431 0.0 -0.2892779895873737 0.9641832258074391 0.0 -0.2921879446346636 0.9655061102311662 0.0 -0.2951099624720362 0.9668230776449845 0.0 -0.2980439933014026 0.9681343864045031 0.0 -0.3009899871199438 0.9694402639247923 0.0 -0.3039478937209633 0.9707406583504683 0.0 -0.3069176626947427 0.9720353354914428 0.0 -0.3098992434294008 0.9733242700142486 0.0 -0.3128925851117559 0.9746078536245253 0.0 -0.315897636728192 0.9758863402151784 0.0 -0.3189143470655283 0.9771595088146999 0.0 -0.3219426647118918 0.9784272185083719 0.0 -0.3249825380575933 0.9796896634251465 0.0 -0.3280339152960073 0.9809470023963451 0.0 -0.331096744424455 0.9821991054488802 0.0 -0.3341709732450902 0.9834459085225121 0.0 -0.3372565493657887 0.9846875264424727 0.0 -0.340353420201042 0.9859240938340674 0.0 -0.3434615329728526 0.9871555114571253 0.0 -0.346580834711634 0.9883813577755736 0.0 -0.3497112722571132 0.9896015762012266 0.0 -0.3528527922592367 0.99081652702429 0.0 -0.35600534117908 0.9920262495184689 0.0 -0.3591688652897594 0.993230638256614 0.0 -0.3623433106773484 0.9944297593668414 0.0 -0.3655286232417957 0.9956237661357139 0.0 -0.368724748697848 0.9968125901403091 0.0 -0.3719316325759746 0.9979960986578006 0.0 -0.3751492202232959 0.9991743889398924 0.0 -0.3783774568045147 1.000347647126256 0.0 -0.3816162873028511 1.0015161551437557 0.0 -0.3848656565209795 1.0026802169912563 0.0 -0.3881255090819695 1.0038399040764108 0.0 -0.3913957894302302 1.0049953033517267 0.0 -0.3946764418324564 1.0061465436252042 0.0 -0.3979674103785783 1.0072934019273698 0.0 -0.4012686389827149 1.0084356583504384 0.0 -0.4045800713841297 1.0095733545366574 0.0 -0.407901651148189 1.0107065890036997 0.0 -0.4112333216673243 1.0118354965139098 0.0 -0.4145750261619968 1.0129604734335742 0.0 -0.417926707681665 1.01408193425014 0.0 -0.4212883091057552 1.0152001565281163 0.0 -0.4246597731446353 1.0163153568916408 0.0 -0.4280410423405908 1.0174277213201164 0.0 -0.4314320590688043 1.0185370504195503 0.0 -0.4348327655383372 1.019642798230917 0.0 -0.4382431037931148 1.0207446730023402 0.0 -0.4416630157129143 1.021842575607473 0.0 -0.4450924430143548 1.0229366924786005 0.0 -0.4485313272518908 1.0240272160718744 0.0 -0.4519796098188085 1.025114058909379 0.0 -0.4554372319482241 1.0261971221111332 0.0 -0.4589041347140854 1.0272764190152335 0.0 -0.4623802590321769 1.0283518990674234 0.0 -0.4658655456611256 1.0294234657645767 0.0 -0.4693599352034108 1.0304910509800187 0.0 -0.4728633681063773 1.0315544822130562 0.0 -0.4763757846632491 1.0326136853060508 0.0 -0.4798971250141478 1.0336686031996722 0.0 -0.4834273291471126 1.034719017484392 0.0 -0.4869663368991224 1.035764937541362 0.0 -0.4905140879571221 1.0368066522595223 0.0 -0.4940705218590499 1.0378444141311418 0.0 -0.4976355779948676 1.0388782948008106 0.0 -0.5012091956075939 1.0399083596192416 0.0 -0.5047913137943398 1.040934710480001 0.0 -0.5083818715073465 1.041957200670301 0.0 -0.5119808075550254 1.0429757432947437 0.0 -0.5155880606030014 1.0439903805785498 0.0 -0.5192035691751582 1.0450011270368005 0.0 -0.5228272716546859 1.0460078719393338 0.0 -0.5264591062851307 1.0470107647095013 0.0 -0.5300990111714481 1.0480101158827408 0.0 -0.5337469242810573 1.0490061315131571 0.0 -0.5374027834448982 1.049998911149802 0.0 -0.5410665263584914 1.050988243436124 0.0 -0.5447380905829997 1.0519738732048172 0.0 -0.5484174135462924 1.0529556094998889 0.0 -0.5521044325440113 1.0539333034248877 0.0 -0.5557990847406399 1.054906913979975 0.0 -0.5595013071705737 1.0558764699979581 0.0 -0.5632110367391936 1.056841953521945 0.0 -0.566928210223941 1.057803534098425 0.0 -0.5706527642753958 1.0587614606663196 0.0 -0.5743846354183553 1.059715828358481 0.0 -0.5781237600529161 1.0606665001402922 0.0 -0.5818700744555583 1.0616132130578062 0.0 -0.5856235147802317 1.0625558983662156 0.0 -0.5893840170594431 1.063494846560091 0.0 -0.593151517205347 1.0644299677355376 0.0 -0.5969259510108379 1.0653606677605645 0.0 -0.6007072541506442 1.0662864526398241 0.0 -0.6044953621824245 1.0672069239093953 0.0 -0.6082902105478664 1.068121706922733 0.0 -0.6120917345737857 1.069030475813776 0.0 -0.6158998694732298 1.0699332520359268 0.0 -0.6197145503465804 1.0708301957020576 0.0 -0.6235357121826612 1.0717213344748797 0.0 -0.6273632898598445 1.072606627668974 0.0 -0.6311972181471613 1.0734860402254864 0.0 -0.6350374317054138 1.0743596894671337 0.0 -0.6388838650882879 1.0752276615613787 0.0 -0.6427364527434689 1.0760898693822198 0.0 -0.6465951290137593 1.0769462024979783 0.0 -0.6504598281381966 1.0777966835969708 0.0 -0.6543304842531749 1.0786414776539237 0.0 -0.6582070313935672 1.0794807554297583 0.0 -0.6620894034938494 1.0803144862152758 0.0 -0.6659775343892262 1.081142405143407 0.0 -0.6698713578167591 1.0819642509990406 0.0 -0.6737708074164952 1.0827800011152235 0.0 -0.6776758167325982 1.0835897104066905 0.0 -0.6815863192144815 1.0843930466102056 0.0 -0.6855022482179417 1.0851894824968071 0.0 -0.6894235370062947 1.0859787166491295 0.0 -0.6933501187515128 1.0867605762402337 0.0 -0.6972819265353641 1.0875350056888133 0.0 -0.7012188933505527 1.0883021422398613 0.0 -0.7051609521018602 1.0890621688129631 0.0 -0.7091080356072901 1.0898151747391618 0.0 -0.7130600765992119 1.0905611944494604 0.0 -0.7170170077255077 1.091300148925149 0.0 -0.7209787615507204 1.0920320104138537 0.0 -0.7249452705572028 1.0927568538290762 0.0 -0.7289164671462678 1.093474536386571 0.0 -0.732892283639341 1.0941846803820647 0.0 -0.7368726522791142 1.0948868827183935 0.0 -0.7408575052306994 1.095580974770836 0.0 -0.7448467745827856 1.0962669184077736 0.0 -0.7488403923487958 1.0969446208084177 0.0 -0.752838290468046 1.0976139980965551 0.0 -0.7568404008069043 1.098275128126286 0.0 -0.7608466551599531 1.0989282183752769 0.0 -0.7648569852511511 1.099573232042445 0.0 -0.7688713227349963 1.1002099041468754 0.0 -0.7728895991976916 1.100837950306941 0.0 -0.7769117461583105 1.1014572806798282 0.0 -0.7809376950699636 1.102067985604749 0.0 -0.7849673773209678 1.1026700407295404 0.0 -0.7890007242360147 1.1032633577234505 0.0 -0.7930376670773416 1.1038476708187197 0.0 -0.7970781370459026 1.104422738022161 0.0 -0.8011220652825412 1.1049885353023232 0.0 -0.8051693828691638 1.1055448470037688 0.0 -0.8092200208299145 1.1060914642390087 0.0 -0.8132739101323502 1.106628350311339 0.0 -0.8173309816886172 1.107155376545416 0.0 -0.8213911663566287 1.1076723185689001 0.0 -0.8254543949412434 1.1081788222016578 0.0 -0.829520598195444 1.1086746368493074 0.0 -0.8335897068215181 1.109159813164577 0.0 -0.8376616514722389 1.10963459018341 0.0 -0.841736362752047 1.1100991076017594 0.0 -0.845813771218233 1.1105533754453123 0.0 -0.8498938073821211 1.1109972049947676 0.0 -0.8539764017102535 1.1114303392667393 0.0 -0.858061484625575 1.1118526704412035 0.0 -0.8621489865086192 1.1122641279560428 0.0 -0.8662388376986945 1.1126647084118235 0.0 -0.8703309684950719 1.1130543228625418 0.0 -0.8744253091581722 1.1134329177305022 0.0 -0.8785217899107551 1.1138005472542447 0.0 -0.8826203409391081 1.1141571709007685 0.0 -0.8867208923942361 1.1145026282029389 0.0 -0.8908233743930521 1.1148367835748216 0.0 -0.8949277170195682 1.1151596154780363 0.0 -0.8990338503260868 1.1154711733828995 0.0 -0.9031417043343931 1.1157713200263766 0.0 -0.9072512090369473 1.11605972508053 0.0 -0.9113622943980779 1.116336144189679 0.0 -0.9154748903551754 1.1166005500083394 0.0 -0.9195889268198859 1.1168529115709196 0.0 -0.923704333679306 1.1170930843004574 0.0 -0.9278210407971776 1.1173210208729007 0.0 -0.9319389780150831 1.117536637160364 0.0 -0.9360580751536409 1.1177398284033127 0.0 -0.9401782620137019 1.1179305881024477 0.0 -0.9442994683775454 1.1181089069629575 0.0 -0.9484216240100758 1.1182746876473275 0.0 -0.9525446586600201 1.1184277273200767 0.0 -0.9566685020611244 1.1185678673511346 0.0 -0.9607930839333522 1.1186951599682844 0.0 -0.964918333984081 1.1188096901542868 0.0 -0.9690441819093016 1.118911351122682 0.0 -0.9731705573948156 1.1190000308462351 0.0 -0.9772973901174332 1.119075791838296 0.0 -0.9814246097461727 1.1191387316178165 0.0 -0.9855521459434584 1.1191889672245374 0.0 -0.9896799283663196 1.1192266886822442 0.0 -0.9938078866675891 1.119251954837764 0.0 -0.9979359504971027 1.1192646414784726 0.0 diff --git a/Exec/DevTests/ABL_perturbation_inflow/prob.H b/Exec/DevTests/ABL_perturbation_inflow/prob.H index ed45c8e3a..74bac8eb1 100644 --- a/Exec/DevTests/ABL_perturbation_inflow/prob.H +++ b/Exec/DevTests/ABL_perturbation_inflow/prob.H @@ -8,8 +8,8 @@ #include "prob_common.H" struct ProbParm : ProbParmDefaults { - amrex::Real rho_0 = 0.0; - amrex::Real T_0 = 0.0; + amrex::Real rho_0 = 1.0; + amrex::Real T_0 = 300.0; amrex::Real A_0 = 1.0; amrex::Real KE_0 = 0.1; amrex::Real QKE_0 = 0.1; diff --git a/Exec/DevTests/ABL_perturbation_inflow/prob.cpp b/Exec/DevTests/ABL_perturbation_inflow/prob.cpp index 97e69d6d5..d5f5bad19 100644 --- a/Exec/DevTests/ABL_perturbation_inflow/prob.cpp +++ b/Exec/DevTests/ABL_perturbation_inflow/prob.cpp @@ -123,6 +123,36 @@ Problem::init_custom_pert( state_pert(i, j, k, RhoTheta_comp) *= r_hse(i,j,k); } } + + // Set scalar = A_0*exp(-10r^2), where r is distance from center of domain + state_pert(i, j, k, RhoScalar_comp) = parms_d.A_0 * exp(-10.*r*r); + + // Set an initial value for SGS KE + if (state_pert.nComp() > RhoKE_comp) { + // Deardorff + state_pert(i, j, k, RhoKE_comp) = r_hse(i,j,k) * parms_d.KE_0; + if (parms_d.KE_decay_height > 0) { + // scale initial SGS kinetic energy with height + state_pert(i, j, k, RhoKE_comp) *= max( + std::pow(1 - min(z/parms_d.KE_decay_height,1.0), parms_d.KE_decay_order), + 1e-12); + } + } + if (state_pert.nComp() > RhoQKE_comp) { + // PBL + state_pert(i, j, k, RhoQKE_comp) = r_hse(i,j,k) * parms_d.QKE_0; + if (parms_d.KE_decay_height > 0) { + // scale initial SGS kinetic energy with height + state_pert(i, j, k, RhoQKE_comp) *= max( + std::pow(1 - min(z/parms_d.KE_decay_height,1.0), parms_d.KE_decay_order), + 1e-12); + } + } + + if (use_moisture) { + state_pert(i, j, k, RhoQ1_comp) = 0.0; + state_pert(i, j, k, RhoQ2_comp) = 0.0; + } }); // Set the x-velocity @@ -136,7 +166,7 @@ Problem::init_custom_pert( // Set the x-velocity x_vel_pert(i, j, k) = parms_d.U_0; - /*if ((z <= parms_d.pert_ref_height) && (parms_d.U_0_Pert_Mag != 0.0)) + if ((z <= parms_d.pert_ref_height) && (parms_d.U_0_Pert_Mag != 0.0)) { Real rand_double = amrex::Random(engine); // Between 0.0 and 1.0 Real x_vel_prime = (rand_double*2.0 - 1.0)*parms_d.U_0_Pert_Mag; @@ -148,7 +178,7 @@ Problem::init_custom_pert( const amrex::Real zl = z / parms_d.pert_ref_height; const amrex::Real damp = std::exp(-0.5 * zl * zl); x_vel_pert(i, j, k) += parms_d.ufac * damp * z * std::cos(parms_d.aval * yl); - }*/ + } }); // Set the y-velocity @@ -162,7 +192,7 @@ Problem::init_custom_pert( // Set the y-velocity y_vel_pert(i, j, k) = parms_d.V_0; - /*if ((z <= parms_d.pert_ref_height) && (parms_d.V_0_Pert_Mag != 0.0)) + if ((z <= parms_d.pert_ref_height) && (parms_d.V_0_Pert_Mag != 0.0)) { Real rand_double = amrex::Random(engine); // Between 0.0 and 1.0 Real y_vel_prime = (rand_double*2.0 - 1.0)*parms_d.V_0_Pert_Mag; @@ -174,10 +204,9 @@ Problem::init_custom_pert( const amrex::Real zl = z / parms_d.pert_ref_height; const amrex::Real damp = std::exp(-0.5 * zl * zl); y_vel_pert(i, j, k) += parms_d.vfac * damp * z * std::cos(parms_d.bval * xl); - }*/ + } }); - /* // Set the z-velocity ParallelForRNG(zbx, [=, parms_d=parms] AMREX_GPU_DEVICE(int i, int j, int k, const amrex::RandomEngine& engine) noexcept { const int dom_lo_z = geomdata.Domain().smallEnd()[2]; @@ -195,5 +224,4 @@ Problem::init_custom_pert( z_vel_pert(i, j, k) = parms_d.W_0 + z_vel_prime; } }); - */ } diff --git a/Exec/DevTests/ABL_perturbation_inflow/sourceRun.sh b/Exec/DevTests/ABL_perturbation_inflow/sourceRun.sh index 8d62b4000..7ea93c26c 100644 --- a/Exec/DevTests/ABL_perturbation_inflow/sourceRun.sh +++ b/Exec/DevTests/ABL_perturbation_inflow/sourceRun.sh @@ -1 +1,2 @@ -mpiexec -n 4 ./ERF3d.gnu.DEBUG.TPROF.MPI.ex toc_inout_inputs > simulation.out +#mpiexec -n 4 ./ERF3d.gnu.DEBUG.TPROF.MPI.ex toc_inout_inputs > simulation.out +mpiexec -n 4 ERF3d.gnu.TEST.TPROF.MPI.ex toc_inout_inputs > simulation.out diff --git a/Exec/DevTests/ABL_perturbation_inflow/toc_inout_inputs b/Exec/DevTests/ABL_perturbation_inflow/toc_inout_inputs index c3a4aee68..7af742fb6 100644 --- a/Exec/DevTests/ABL_perturbation_inflow/toc_inout_inputs +++ b/Exec/DevTests/ABL_perturbation_inflow/toc_inout_inputs @@ -1,39 +1,44 @@ # ------------------ INPUTS TO MAIN PROGRAM ------------------- -start_time = 0. -stop_time = 35.0 -#stop_time = 10.0 - -#max_step = 1000 +stop_time = 20.0 +#max_step = 5 +erf.no_substepping = 1 amrex.fpe_trap_invalid = 1 - fabarray.mfiter_tile_size = 1024 1024 1024 # PROBLEM SIZE & GEOMETRY -#geometry.prob_extent = 4. 1. 1. -#amr.n_cell = 128 32 32 - -geometry.prob_extent = 10. 1. 1. -#amr.n_cell = 128 16 16 -amr.n_cell = 128 16 64 +geometry.prob_extent = 40 2.5 10 +#geometry.prob_extent = 2. 0.25 1. +amr.n_cell = 128 16 64 geometry.is_periodic = 0 1 0 -xlo.type = "Outflow" +xlo.type = "Inflow" xhi.type = "Outflow" -zlo.type = "NoSlipWall" zhi.type = "SlipWall" +#zlo.type = "NoSlipWall" +zlo.type = "Most" -# TIME STEP CONTROL -erf.no_substepping = 1 -erf.cfl = 0.5 +erf.most.flux_type = "custom" +erf.most.ustar = 0.0395 # z=10. +#erf.most.ustar = 0.395 # z=1.0 +erf.most.tstar = 0. # theta flux +erf.most.qstar = 0. # qv flux -erf.dynamicViscosity = 0.0001 # H = 1, therefore utau = 0.2 +xlo.density = 1.0 +xlo.theta = 300.0 +xlo.dirichlet_file = "input_ReTau395Ana_inflow.txt" + +# TIME STEP CONTROL +erf.cfl = 0.4 +erf.dynamicViscosity = 0.001 +erf.use_gravity = true +erf.buoyancy_type = 2 # DIAGNOSTICS & VERBOSITY -erf.sum_interval = 1 # timesteps between computing mass -erf.pert_interval = 1 # timesteps between perturbation output message -erf.v = 1 # verbosity in ERF.cpp +erf.sum_interval = 0 # timesteps between computing mass +erf.pert_interval = 5 # timesteps between perturbation output message XXX +erf.v = 0 # verbosity in ERF.cpp XXX amr.v = 0 # verbosity in Amr.cpp # REFINEMENT / REGRIDDING @@ -42,55 +47,37 @@ amr.max_level = 0 # maximum level number allowed # PLOTFILES erf.plot_file_1 = plt # prefix of plotfile name #erf.plot_per_1 = 0.1 -erf.plot_int_1 = 10 +erf.plot_int_1 = 5 erf.plot_vars_1 = density rhoadv_0 x_velocity y_velocity z_velocity pressure temp theta # CHECKPOINT FILES -erf.check_file = chk # root name of checkpoint file -erf.check_per = 1.0 - -# Restart for data collection -#erf.restart = "/home/tma/Desktop/TurbChannel/SpinUp/chk233334" -#erf.data_log = "surf.txt" "mean.txt" "flux.txt" "subgrid.txt" -#erf.profile_int = 33334 +#erf.check_file = chk # root name of checkpoint file +#erf.check_per = 1.0 # 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.buoyancy_type = 1 - # Initial condition for the entire field erf.init_type = "input_sounding" -erf.input_sounding_file = "input_ReTau2000DNS_sounding.txt" - -# Inflow boundary condition -erf.sponge_type = "input_sponge" -erf.input_sponge_file = "input_ReTau2000DNS_sponge.txt" -erf.sponge_strength = 100000.0 -erf.use_xlo_sponge_damping = true -erf.xlo_sponge_end = 1.0 +erf.input_sounding_file = "input_ReTau395Ana_sounding.txt" # Turbulent inflow generation erf.perturbation_type = "source" erf.perturbation_direction = 1 0 0 erf.perturbation_layers = 3 -erf.perturbation_offset = 0 +erf.perturbation_offset = 3 -erf.perturbation_box_dims = 4 4 8 # 0.25 0.25 0.125 +erf.perturbation_box_dims = 4 8 8 erf.perturbation_nondimensional = 0.042 # Ri erf.perturbation_T_infinity = 300.0 -erf.perturbation_T_intensity = 0.1 +erf.perturbation_T_intensity = 0.05 # 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 +#prob.U_0_Pert_Mag = 1.0 +#prob.V_0_Pert_Mag = 1.0 +#prob.W_0_Pert_Mag = 0.0 diff --git a/Source/DataStructs/TurbPertStruct.H b/Source/DataStructs/TurbPertStruct.H index 6f4a1ddeb..9c2ccac69 100644 --- a/Source/DataStructs/TurbPertStruct.H +++ b/Source/DataStructs/TurbPertStruct.H @@ -9,6 +9,12 @@ * Container holding quantities related to turbulent perturbation parameters */ +/* The general rule of thumb is to create a perturbation box size of 1/8th of the boundary layer height. + The boundary layer height can't be the height of the domain. The length and width of the box should + be twice the height of the box. If meandering flow is present, the width of the box should be take + the angle of the inflow into consideration. +*/ + struct TurbulentPerturbation { public: @@ -17,10 +23,12 @@ struct TurbulentPerturbation { // Initializing Perturbation Region // Currently only support perturbation in the x and y direction - // Note: Box will always be initialized at cell centered void init_tpi (const int lev, const amrex::IntVect& nx, - amrex::GpuArray const dx) + const amrex::GpuArray dx, + const amrex::BoxArray& ba, + const amrex::DistributionMapping& dm, + const int ngrow_state) { amrex::ParmParse pp(pp_prefix); @@ -86,6 +94,10 @@ struct TurbulentPerturbation { pb_local_etime.resize(pb_ba[lev].size(), 0.0); pb_amp.resize(pb_ba[lev].size(), 0.0); + // Creating data array for perturbation amplitude storage + pb_cell.define(ba, dm, 1, ngrow_state); + pb_cell.setVal(0.); + // Computing perturbation reference length tpi_Lpb = tpi_boxDim[0]*dx[0]; tpi_Wpb = tpi_boxDim[1]*dx[1]; @@ -120,17 +132,25 @@ struct TurbulentPerturbation { void calc_tpi_update (const int lev, const amrex::Real dt, amrex::MultiFab& mf_xvel, - amrex::MultiFab& mf_yvel) + amrex::MultiFab& mf_yvel, + amrex::MultiFab& mf_cons) { // Setting random number generator for update interval srand( (unsigned) time(NULL) ); + auto m_ixtype = mf_cons.boxArray().ixType(); // safety step + for (int boxIdx = 0; boxIdx < pb_ba[lev].size(); boxIdx++) { + + // Check if the local elapsed time is greater than the update interval if ( pb_interval[boxIdx] <= pb_local_etime[boxIdx] ) { + // Compute mean velocity magnitude within perturbation box calc_tpi_meanMag_perBox(boxIdx, lev, mf_xvel, mf_yvel); //calc_tpi_meanMag_firstCell(boxIdx, lev, mf_xvel, mf_yvel); + // Done for parallelism to avoid Inf being stored in array + // Only the rank owning the box will be able to access the storage location if (pb_mag[boxIdx] !=0.) { amrex::Real interval = tpi_lref / pb_mag[boxIdx]; pb_interval[boxIdx] = RandomReal(0.9*interval,1.1*interval); // 10% variation @@ -139,10 +159,28 @@ struct TurbulentPerturbation { // Trigger amplitude calculation per perturbation box calc_tpi_amp(boxIdx, pb_interval[boxIdx]); + // Trigger random amplitude storage per cell within perturbation box + // Random perturbation is applied as a white noise on the temperature source term + // it becomes colored through the filtering of temperature transport equation from + // the eddy diffusivity. + for (amrex::MFIter mfi(pb_cell,TileNoZ()); mfi.isValid(); ++mfi) { + amrex::Box vbx = mfi.validbox(); + amrex::Box pbx = convert(pb_ba[lev][boxIdx], m_ixtype); + amrex::Box ubx = pbx & vbx; + if (ubx.ok()) { + amrex::Real amp_copy = pb_amp[boxIdx]; + const amrex::Array4 &pert_cell = pb_cell.array(mfi); + ParallelForRNG(ubx, [=] AMREX_GPU_DEVICE(int i, int j, int k, const amrex::RandomEngine& engine) noexcept { + amrex::Real rand_double = amrex::Random(engine); + pert_cell(i,j,k,0) = (rand_double*2.0 - 1.0) * amp_copy; + }); + } + } + // Reset local elapsed time pb_local_etime[boxIdx] = 0.; } else { - // Increase by timestep + // Increase by timestep of level 0 pb_local_etime[boxIdx] += dt; } // if } // for @@ -163,7 +201,7 @@ struct TurbulentPerturbation { #endif #ifdef BULK_RICHARDSON_FORMULATION - amrex::Real beta = 1./tpi_Tinf; + amrex::Real beta = 1./tpi_Tinf; // Thermal expansion coefficient // Pseudo Random temperature the ignores scale when mechanically tripping turbulence amrex::Real g = (tpi_nonDim * Um * Um) / (tpi_Ti * tpi_Hpb); @@ -171,38 +209,30 @@ struct TurbulentPerturbation { // Ma and Senocak (2023) Eq. 8, solving for delta phi if (g != 0) pb_amp[boxIdx] = (tpi_nonDim * Um * Um) / (g * beta * tpi_Hpb); - //amrex::Print()<<"tpi_nonDim: "<& src_arr) // Array to apply perturbation + const amrex::Array4 &src_arr, // Array to apply perturbation + const amrex::Array4 pert_cell) { for (int boxIdx = 0; boxIdx < pb_ba[lev].size(); boxIdx++) { amrex::Box pbx = convert(pb_ba[lev][boxIdx], m_ixtype); amrex::Box ubx = pbx & vbx; if (ubx.ok()) { - amrex::Real amp_copy = pb_amp[boxIdx]; - ParallelForRNG(ubx, [=] AMREX_GPU_DEVICE(int i, int j, int k, const amrex::RandomEngine& engine) noexcept { - // Random number generation between 0 and 1 - amrex::Real rand_double = amrex::Random(engine); - - // Rescale between -1 and 1 and multiple with amplitude - src_arr(i,j,k,comp) += (rand_double*2.0 - 1.0) * amp_copy; + ParallelFor(ubx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + src_arr(i,j,k,comp) += pert_cell(i,j,k,0); // For box region debug only #ifdef INDEX_PERTURB @@ -416,6 +446,9 @@ struct TurbulentPerturbation { amrex::Vector pb_ba; // PB box array amrex::Vector pb_mag; // BP mean magnitude [m/s] + // Perturbation amplitude cell storage + amrex::MultiFab pb_cell; // per cell storage of perturbation amplitude + private: // Random number generation between range (used for interval calculation) @@ -449,9 +482,8 @@ struct TurbulentPerturbation { amrex::Real tpi_lref; // PB reference length [m] // Perturbation data arrays - amrex::Vector pb_interval; // PB update time [s] + amrex::Vector pb_interval; // PB update time [s] amrex::Vector pb_local_etime; // PB local elapsed time [s] amrex::Vector pb_amp; // PB perturbation amplitude Ri:[K] Ec:[K/s] - }; #endif diff --git a/Source/ERF_make_new_arrays.cpp b/Source/ERF_make_new_arrays.cpp index 8db1f9a9b..06d94c1ae 100644 --- a/Source/ERF_make_new_arrays.cpp +++ b/Source/ERF_make_new_arrays.cpp @@ -319,7 +319,7 @@ ERF::init_stuff (int lev, const BoxArray& ba, const DistributionMapping& dm, solverChoice.pert_type == PerturbationType::perturbDirect) { if (lev == 0) { - turbPert.init_tpi(lev, geom[lev].Domain().bigEnd(), geom[lev].CellSizeArray()); + turbPert.init_tpi(lev, geom[lev].Domain().bigEnd(), geom[lev].CellSizeArray(), ba, dm, ngrow_state); } } diff --git a/Source/Initialization/ERF_init_TurbPert.cpp b/Source/Initialization/ERF_init_TurbPert.cpp index cea297e9c..4e217321f 100644 --- a/Source/Initialization/ERF_init_TurbPert.cpp +++ b/Source/Initialization/ERF_init_TurbPert.cpp @@ -14,17 +14,19 @@ using namespace amrex; void ERF::turbPert_update (const int lev, const Real local_dt) { - // Grabbing data from velocity field + // Accessing data auto& lev_new = vars_new[lev]; - // Accessing local data + // Creating local data + MultiFab cons_data(lev_new[Vars::cons].boxArray(), lev_new[Vars::cons].DistributionMap(), 1, lev_new[Vars::cons].nGrowVect()); MultiFab xvel_data(lev_new[Vars::xvel].boxArray(), lev_new[Vars::xvel].DistributionMap(), 1, lev_new[Vars::xvel].nGrowVect()); MultiFab yvel_data(lev_new[Vars::yvel].boxArray(), lev_new[Vars::yvel].DistributionMap(), 1, lev_new[Vars::yvel].nGrowVect()); + MultiFab::Copy (cons_data, lev_new[Vars::cons], 0, 0, 1, lev_new[Vars::cons].nGrowVect()); MultiFab::Copy (xvel_data, lev_new[Vars::xvel], 0, 0, 1, lev_new[Vars::xvel].nGrowVect()); MultiFab::Copy (yvel_data, lev_new[Vars::yvel], 0, 0, 1, lev_new[Vars::yvel].nGrowVect()); // Computing perturbation update time - turbPert.calc_tpi_update(lev, local_dt, xvel_data, yvel_data); + turbPert.calc_tpi_update(lev, local_dt, xvel_data, yvel_data, cons_data); Print() << "Successfully initialized turbulent perturbation update time and amplitude\n"; } @@ -34,61 +36,25 @@ ERF::turbPert_update (const int lev, const Real local_dt) void ERF::turbPert_amplitude (int lev) { + // Accessing data auto& lev_new = vars_new[lev]; - MultiFab r_hse(base_state[lev], make_alias, 0, 1); // r_0 is first component - MultiFab p_hse(base_state[lev], make_alias, 1, 1); // p_0 is second component - + // Creating local data MultiFab cons_pert(lev_new[Vars::cons].boxArray(), lev_new[Vars::cons].DistributionMap(), lev_new[Vars::cons].nComp() , lev_new[Vars::cons].nGrow()); - MultiFab xvel_pert(lev_new[Vars::xvel].boxArray(), lev_new[Vars::xvel].DistributionMap(), 1, lev_new[Vars::xvel].nGrowVect()); - MultiFab yvel_pert(lev_new[Vars::yvel].boxArray(), lev_new[Vars::yvel].DistributionMap(), 1, lev_new[Vars::yvel].nGrowVect()); - MultiFab zvel_pert(lev_new[Vars::zvel].boxArray(), lev_new[Vars::zvel].DistributionMap(), 1, lev_new[Vars::zvel].nGrowVect()); - - // Only storing for conserved quantity for now - auto m_ixtype = cons_pert.boxArray().ixType(); - // Default perturbations to zero + // Initializing perturbation to zero cons_pert.setVal(0.); - xvel_pert.setVal(0.); - yvel_pert.setVal(0.); - zvel_pert.setVal(0.); #ifdef _OPENMP #pragma omp parallel if (amrex::Gpu::notInLaunchRegion()) #endif + auto m_ixtype = cons_pert.boxArray().ixType(); for (MFIter mfi(lev_new[Vars::cons], TileNoZ()); mfi.isValid(); ++mfi) { const Box &bx = mfi.validbox(); - const Box &xbx = mfi.tilebox(IntVect(1,0,0)); - const Box &ybx = mfi.tilebox(IntVect(0,1,0)); - const Box &zbx = mfi.tilebox(IntVect(0,0,1)); - - // Perturbation on to different components - const auto &cons_pert_arr = cons_pert.array(mfi); - const auto &xvel_pert_arr = xvel_pert.array(mfi); - const auto &yvel_pert_arr = yvel_pert.array(mfi); - const auto &zvel_pert_arr = zvel_pert.array(mfi); + const auto &cons_pert_arr = cons_pert.array(mfi); // Address of perturbation array + const amrex::Array4 &pert_cell = turbPert.pb_cell.array(mfi); // per-cell perturbation stored in structure - Array4 cons_arr = lev_new[Vars::cons].const_array(mfi); - Array4 z_nd_arr = (solverChoice.use_terrain) ? z_phys_nd[lev]->const_array(mfi) : Array4{}; - Array4 z_cc_arr = (solverChoice.use_terrain) ? z_phys_cc[lev]->const_array(mfi) : Array4{}; - - Array4 mf_m = mapfac_m[lev]->array(mfi); - Array4 mf_u = mapfac_m[lev]->array(mfi); - Array4 mf_v = mapfac_m[lev]->array(mfi); - - Array4 r_hse_arr = r_hse.array(mfi); - Array4 p_hse_arr = p_hse.array(mfi); - - turbPert.apply_tpi(lev, bx, RhoTheta_comp, m_ixtype, cons_pert_arr); - - prob->init_custom_pert(bx, xbx, ybx, zbx, cons_arr, cons_pert_arr, - xvel_pert_arr, yvel_pert_arr, zvel_pert_arr, - r_hse_arr, p_hse_arr, z_nd_arr, z_cc_arr, - geom[lev].data(), mf_m, mf_u, mf_v, - solverChoice); + turbPert.apply_tpi(lev, bx, RhoTheta_comp, m_ixtype, cons_pert_arr, pert_cell); } // mfi - - // This initialization adds the initial perturbation direction on the RhoTheta field - MultiFab::Add(lev_new[Vars::cons], cons_pert, RhoTheta_comp, RhoTheta_comp, 1, cons_pert.nGrow()); } diff --git a/Source/SourceTerms/ERF_make_buoyancy.cpp b/Source/SourceTerms/ERF_make_buoyancy.cpp index ffe175d16..26506995a 100644 --- a/Source/SourceTerms/ERF_make_buoyancy.cpp +++ b/Source/SourceTerms/ERF_make_buoyancy.cpp @@ -71,7 +71,6 @@ void make_buoyancy (Vector& S_data, } // mfi } else if (solverChoice.buoyancy_type == 2 || solverChoice.buoyancy_type == 3) { - PlaneAverage state_ave(&(S_data[IntVars::cons]), geom, solverChoice.ave_plane); PlaneAverage prim_ave(&S_prim, geom, solverChoice.ave_plane); diff --git a/Source/SourceTerms/ERF_make_mom_sources.cpp b/Source/SourceTerms/ERF_make_mom_sources.cpp index 277331457..b51d33f69 100644 --- a/Source/SourceTerms/ERF_make_mom_sources.cpp +++ b/Source/SourceTerms/ERF_make_mom_sources.cpp @@ -187,7 +187,6 @@ void make_mom_sources (int /*level*/, // ***************************************************************************** make_buoyancy(S_data, S_prim, zmom_src, geom, solverChoice, r0, n_qstate); - // ***************************************************************************** // Add all the other forcings // ***************************************************************************** diff --git a/Source/SourceTerms/ERF_make_sources.cpp b/Source/SourceTerms/ERF_make_sources.cpp index d03c380f2..edb2f74b4 100644 --- a/Source/SourceTerms/ERF_make_sources.cpp +++ b/Source/SourceTerms/ERF_make_sources.cpp @@ -335,7 +335,8 @@ void make_sources (int level, // ************************************************************************************* if (solverChoice.pert_type == PerturbationType::perturbSource) { auto m_ixtype = S_data[IntVars::cons].boxArray().ixType(); // Conserved term - turbPert.apply_tpi(level, bx, RhoTheta_comp, m_ixtype, cell_src); // Applied as source term + const amrex::Array4 &pert_cell = turbPert.pb_cell.array(mfi); + turbPert.apply_tpi(level, bx, RhoTheta_comp, m_ixtype, cell_src, pert_cell); // Applied as source term } } // mfi } // OMP diff --git a/Source/TimeIntegration/ERF_Advance.cpp b/Source/TimeIntegration/ERF_Advance.cpp index b74e4632d..f08baf4f9 100644 --- a/Source/TimeIntegration/ERF_Advance.cpp +++ b/Source/TimeIntegration/ERF_Advance.cpp @@ -41,12 +41,13 @@ ERF::Advance (int lev, Real time, Real dt_lev, int iteration, int /*ncycle*/) if (solverChoice.pert_type == PerturbationType::perturbSource || solverChoice.pert_type == PerturbationType::perturbDirect) { - turbPert.calc_tpi_update(lev, dt_lev, U_old, V_old); + turbPert.calc_tpi_update(lev, dt_lev, U_old, V_old, S_old); } // If perturbDirect is selected, directly add the computed perturbation // on the conserved field // XXX Currently gives "Erroneous arithmetic operation" error + /* if (solverChoice.pert_type == PerturbationType::perturbDirect) { auto m_ixtype = S_old.boxArray().ixType(); // Conserved term @@ -56,6 +57,7 @@ ERF::Advance (int lev, Real time, Real dt_lev, int iteration, int /*ncycle*/) turbPert.apply_tpi(lev, bx, RhoTheta_comp, m_ixtype, cell_data); } } + */ } // configure ABLMost params if used MostWall boundary condition