Skip to content

Commit

Permalink
Add files related to NREL5MW runs (#21)
Browse files Browse the repository at this point in the history
* Added convective_abl_nrel5mw files

* Add some NREL5MW_ALM_BD files

* Add ABL spectra results

* Added bare-bones README files

* Added more to the convective_abl_nrel5mw README

* Added NREL5MW_ALM_BD

* Added NREL_5MW_Turbine files

* Added NREL5MW turbine model files

---------

Co-authored-by: Lawrence Cheung <[email protected]>
  • Loading branch information
lawrenceccheung and Lawrence Cheung authored Jan 14, 2025
1 parent c722862 commit b0b04a7
Show file tree
Hide file tree
Showing 179 changed files with 395,500 additions and 3 deletions.
9 changes: 9 additions & 0 deletions amr-wind/actuator_line/NREL5MW_ALM_BD/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<!-- This file is automatically compiled into the website. Please copy linked files into .website_src/ paths to enable website rendering -->

# Actuator line NREL5MW in convectively unstable ABL

This atmospheric inflow for this case is generated via the [convectively unstable](../../atmospheric_boundary_layer/convective_abl_nrel5mw/) benchmark case.

## Simulation Setup

## Results
256 changes: 256 additions & 0 deletions amr-wind/actuator_line/NREL5MW_ALM_BD/input_files/NREL5MW_ALM_BD.inp

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,233 @@
# --- Simulation time control parameters ---
time.stop_time = 16000.0 # Max (simulated) time to evolve [s]
time.max_step = -1
time.fixed_dt = 0.01721763085399449 # Fixed timestep size (in seconds). If negative, then time.cfl is used
time.checkpoint_interval = 10000
time.checkpoint_start = 30000
incflo.physics = ABL # List of physics models to include in simulation.
incflo.verbose = 0
io.check_file = chk
io.restart_file = /gpfs/lcheung/HFM/exawind-benchmarks/Neutral_ABL/chk30000
incflo.use_godunov = true
incflo.godunov_type = weno_z
turbulence.model = OneEqKsgsM84
TKE.source_terms = KsgsM84Src
nodal_proj.mg_rtol = 1e-08
nodal_proj.mg_atol = 1e-08
mac_proj.mg_rtol = 1e-08
mac_proj.mg_atol = 1e-08
diffusion.mg_rtol = 1e-08
diffusion.mg_atol = 1e-08
temperature_diffusion.mg_rtol = 1e-08
temperature_diffusion.mg_atol = 1e-08
incflo.gravity = 0.0 0.0 -9.81 # Gravitational acceleration vector (x,y,z) [m/s^2]
incflo.density = 1.0 # Fluid density [kg/m^3]
transport.viscosity = 0.0 # Fluid dynamic viscosity [kg/m-s]
transport.laminar_prandtl = 0.7 # Laminar prandtl number
transport.turbulent_prandtl = 0.3333 # Turbulent prandtl number

# --- Geometry and Mesh ---
geometry.prob_lo = 0.0 0.0 0.0
geometry.prob_hi = 5120.0 5120.0 1920.0
amr.n_cell = 512 512 192 # Number of cells in x, y, and z directions
amr.max_level = 2
geometry.is_periodic = 0 0 0
xlo.type = mass_inflow
xlo.density = 1.0
xlo.temperature = 0.0
xlo.tke = 0.0
xhi.type = pressure_outflow
ylo.type = mass_inflow
ylo.density = 1.0
ylo.temperature = 0.0
ylo.tke = 0.0
yhi.type = pressure_outflow
zlo.type = wall_model
zlo.temperature_type = wall_model
zlo.tke_type = zero_gradient
zhi.type = slip_wall
zhi.temperature_type = fixed_gradient
zhi.temperature = 0.003

# --- ABL parameters ---
ICNS.source_terms = BoussinesqBuoyancy CoriolisForcing BodyForce ABLMeanBoussinesq
ABL.stats_output_frequency = 1
ABL.stats_output_format = netcdf
ABL.tendency_forcing = false
ABL.bndry_io_mode = 1
ABL.bndry_file = /gpfs/lcheung/HFM/exawind-benchmarks/convective_abl/bndry_file
ABL.bndry_planes = xlo ylo
ABL.bndry_output_start_time = 15000.0
ABL.bndry_var_names = velocity temperature tke
ABL.bndry_output_format = native
incflo.velocity = 9.8726896031426 5.7 0.0
ABLForcing.abl_forcing_height = 90.0
ABL.kappa = 0.41
ABL.normal_direction = 2
ABL.surface_roughness_z0 = 0.01
ABL.reference_temperature = 300.0
ABL.surface_temp_rate = 0.0
ABL.surface_temp_flux = 0.005 # Surface temperature flux [K-m/s]
ABL.log_law_height = 5.0
ABL.wall_shear_stress_type = local
ABL.wf_velocity = 6.0977889026612075 3.6097639593035185
ABL.wf_vmag = 7.103916682319445
ABL.wf_theta = 300.20261481689676
CoriolisForcing.latitude = 40.0
CoriolisForcing.rotational_time_period = 86400.0
CoriolisForcing.north_vector = 0.0 1.0 0.0
CoriolisForcing.east_vector = 1.0 0.0 0.0
BoussinesqBuoyancy.reference_temperature = 300.0
BodyForce.magnitude = -0.0002743665569299508 0.0011708563286373845 0.0
ABL.temperature_heights = 0.0 750.0 850.0 2000.0
ABL.temperature_values = 300.0 300.0 308.0 311.45
ABLMeanBoussinesq.read_temperature_profile = true
ABLMeanBoussinesq.temperature_profile_filename = avg_theta.dat
ABL.perturb_velocity = true
ABL.perturb_ref_height = 50.0
ABL.Uperiods = 4.0
ABL.Vperiods = 4.0
ABL.deltaU = 1.0
ABL.deltaV = 1.0
ABL.perturb_temperature = true
ABL.theta_amplitude = 0.8
ABL.cutoff_height = 50.0
time.plot_interval = 10000
io.plot_file = plt
io.KE_int = -1

#---- tagging defs ----
tagging.labels = T0_level_0_zone T0_level_1_zone T0_level_2_zone T0_level_3_zone
tagging.T0_level_0_zone.type = GeometryRefinement
tagging.T0_level_0_zone.shapes = T0_level_0_zone
tagging.T0_level_0_zone.level = 0
tagging.T0_level_0_zone.T0_level_0_zone.type = box
tagging.T0_level_0_zone.T0_level_0_zone.origin = 1569.4039956158035 939.4039956158036 -4.5
tagging.T0_level_0_zone.T0_level_0_zone.xaxis = 1636.788013152589 944.9999999999998 0.0
tagging.T0_level_0_zone.T0_level_0_zone.yaxis = -629.9999999999999 1091.1920087683927 -0.0
tagging.T0_level_0_zone.T0_level_0_zone.zaxis = 0.0 0.0 346.5
tagging.T0_level_1_zone.type = GeometryRefinement
tagging.T0_level_1_zone.shapes = T0_level_1_zone
tagging.T0_level_1_zone.level = 1
tagging.T0_level_1_zone.T0_level_1_zone.type = box
tagging.T0_level_1_zone.T0_level_1_zone.origin = 1653.2019978079018 1424.2615982463215 -4.5
tagging.T0_level_1_zone.T0_level_1_zone.xaxis = 818.3940065762945 472.4999999999999 0.0
tagging.T0_level_1_zone.T0_level_1_zone.yaxis = -251.99999999999994 436.47680350735703 -0.0
tagging.T0_level_1_zone.T0_level_1_zone.zaxis = 0.0 0.0 283.5
tagging.T0_level_2_zone.type = GeometryRefinement
tagging.T0_level_2_zone.shapes = T0_level_2_zone
tagging.T0_level_2_zone.level = 2
tagging.T0_level_2_zone.T0_level_2_zone.type = box
tagging.T0_level_2_zone.T0_level_2_zone.origin = 1742.350998903951 1584.850998903951 -4.5
tagging.T0_level_2_zone.T0_level_2_zone.xaxis = 354.6374028497276 204.74999999999994 0.0
tagging.T0_level_2_zone.T0_level_2_zone.yaxis = -157.49999999999997 272.7980021920982 -0.0
tagging.T0_level_2_zone.T0_level_2_zone.zaxis = 0.0 0.0 220.5
tagging.T0_level_3_zone.type = GeometryRefinement
tagging.T0_level_3_zone.shapes = T0_level_3_zone
tagging.T0_level_3_zone.level = 3
tagging.T0_level_3_zone.T0_level_3_zone.type = box
tagging.T0_level_3_zone.T0_level_3_zone.origin = 1781.1605993423705 1643.6307991231608 -4.5
tagging.T0_level_3_zone.T0_level_3_zone.xaxis = 163.6788013152589 94.49999999999999 0.0
tagging.T0_level_3_zone.T0_level_3_zone.yaxis = -125.99999999999997 218.23840175367852 -0.0
tagging.T0_level_3_zone.T0_level_3_zone.zaxis = 0.0 0.0 189.0

#---- postprocessing defs ----
incflo.post_processing = metmast_ rotorplaneUP_ rotorplaneDN_ nearwake_ turbsw_ turbhh_ XYdomain_027_ XYdomain_090_ XYdomain_153_
metmast_.type = Sampling
metmast_.output_frequency = 1
metmast_.fields = velocity temperature tke
rotorplaneUP_.type = Sampling
rotorplaneUP_.output_frequency = 100
rotorplaneUP_.fields = velocity temperature tke
rotorplaneDN_.type = Sampling
rotorplaneDN_.output_frequency = 100
rotorplaneDN_.fields = velocity temperature tke
nearwake_.type = Sampling
nearwake_.output_frequency = 100
nearwake_.fields = velocity temperature tke
turbsw_.type = Sampling
turbsw_.output_frequency = 100
turbsw_.fields = velocity temperature tke
turbhh_.type = Sampling
turbhh_.output_frequency = 100
turbhh_.fields = velocity temperature tke
XYdomain_027_.type = Sampling
XYdomain_027_.output_frequency = 100
XYdomain_027_.fields = velocity temperature tke
XYdomain_090_.type = Sampling
XYdomain_090_.output_frequency = 100
XYdomain_090_.fields = velocity temperature tke
XYdomain_153_.type = Sampling
XYdomain_153_.output_frequency = 100
XYdomain_153_.fields = velocity temperature tke

#---- sample defs ----
metmast_.labels = virtualmast
rotorplaneUP_.labels = T0_rotorplaneUP
rotorplaneDN_.labels = T0_rotorplaneDN
nearwake_.labels = T0_nearwake
turbsw_.labels = T0_turbsw
turbhh_.labels = T0_turbhh
XYdomain_027_.labels = Farm_XYdomain027
XYdomain_090_.labels = Farm_XYdomain090
XYdomain_153_.labels = Farm_XYdomain153
metmast_.virtualmast.type = LineSampler
metmast_.virtualmast.num_points = 20
metmast_.virtualmast.start = 1800.0 1800.0 10.0
metmast_.virtualmast.end = 1800.0 1800.0 200.0
rotorplaneUP_.T0_rotorplaneUP.type = PlaneSampler
rotorplaneUP_.T0_rotorplaneUP.num_points = 81 35
rotorplaneUP_.T0_rotorplaneUP.origin = 1489.523196492643 1329.7615982463215 1.8000000000000114
rotorplaneUP_.T0_rotorplaneUP.axis1 = -251.99999999999994 436.47680350735703 -0.0
rotorplaneUP_.T0_rotorplaneUP.axis2 = 0.0 0.0 214.2
rotorplaneUP_.T0_rotorplaneUP.offset_vector = 0.8660254037844386 0.4999999999999999 0.0
rotorplaneUP_.T0_rotorplaneUP.offsets = 0.0 126.0 252.0 378.0 504.0
rotorplaneDN_.T0_rotorplaneDN.type = PlaneSampler
rotorplaneDN_.T0_rotorplaneDN.num_points = 81 35
rotorplaneDN_.T0_rotorplaneDN.origin = 1926.0 1581.7615982463215 1.8000000000000114
rotorplaneDN_.T0_rotorplaneDN.axis1 = -251.99999999999994 436.47680350735703 -0.0
rotorplaneDN_.T0_rotorplaneDN.axis2 = 0.0 0.0 214.2
rotorplaneDN_.T0_rotorplaneDN.offset_vector = 0.8660254037844386 0.4999999999999999 0.0
rotorplaneDN_.T0_rotorplaneDN.offsets = 0.0 126.0 252.0 378.0 504.0 630.0 756.0 882.0 1008.0 1134.0 1260.0
nearwake_.T0_nearwake.type = PlaneSampler
nearwake_.T0_nearwake.num_points = 81 35
nearwake_.T0_nearwake.origin = 1926.0 1581.7615982463215 1.8000000000000114
nearwake_.T0_nearwake.axis1 = -251.99999999999994 436.47680350735703 -0.0
nearwake_.T0_nearwake.axis2 = 0.0 0.0 214.2
nearwake_.T0_nearwake.offset_vector = 0.8660254037844386 0.4999999999999999 0.0
nearwake_.T0_nearwake.offsets = 0.0 63.0 126.0 189.0 252.0
turbsw_.T0_turbsw.type = PlaneSampler
turbsw_.T0_turbsw.num_points = 281 45
turbsw_.T0_turbsw.origin = 1363.523196492643 1548.0 1.8000000000000114
turbsw_.T0_turbsw.axis1 = 1527.6688122757496 881.9999999999998 0.0
turbsw_.T0_turbsw.axis2 = 0.0 0.0 277.2
turbsw_.T0_turbsw.offset_vector = 0.0 0.0 0.0
turbhh_.T0_turbhh.type = PlaneSampler
turbhh_.T0_turbhh.num_points = 281 81
turbhh_.T0_turbhh.origin = 1489.523196492643 1329.7615982463215 90.0
turbhh_.T0_turbhh.axis1 = 1527.6688122757496 881.9999999999998 0.0
turbhh_.T0_turbhh.axis2 = -251.99999999999994 436.47680350735703 -0.0
turbhh_.T0_turbhh.offset_vector = 0.0 0.0 0.0
XYdomain_027_.Farm_XYdomain027.type = PlaneSampler
XYdomain_027_.Farm_XYdomain027.num_points = 513 513
XYdomain_027_.Farm_XYdomain027.origin = 0.0001 0.0001 27.0
XYdomain_027_.Farm_XYdomain027.axis1 = 5119.9998 0.0 0.0
XYdomain_027_.Farm_XYdomain027.axis2 = 0.0 5119.9998 0.0
XYdomain_027_.Farm_XYdomain027.offset_vector = 0.0 0.0 0.0
XYdomain_090_.Farm_XYdomain090.type = PlaneSampler
XYdomain_090_.Farm_XYdomain090.num_points = 513 513
XYdomain_090_.Farm_XYdomain090.origin = 0.0001 0.0001 90.0
XYdomain_090_.Farm_XYdomain090.axis1 = 5119.9998 0.0 0.0
XYdomain_090_.Farm_XYdomain090.axis2 = 0.0 5119.9998 0.0
XYdomain_090_.Farm_XYdomain090.offset_vector = 0.0 0.0 0.0
XYdomain_153_.Farm_XYdomain153.type = PlaneSampler
XYdomain_153_.Farm_XYdomain153.num_points = 513 513
XYdomain_153_.Farm_XYdomain153.origin = 0.0001 0.0001 153.0
XYdomain_153_.Farm_XYdomain153.axis1 = 5119.9998 0.0 0.0
XYdomain_153_.Farm_XYdomain153.axis2 = 0.0 5119.9998 0.0
XYdomain_153_.Farm_XYdomain153.offset_vector = 0.0 0.0 0.0

#---- extra params ----
io.line_plot_int = 1
CoriolisForcing.turn_off_vertical_force = True
#== END AMR-WIND INPUT ==
Loading

0 comments on commit b0b04a7

Please sign in to comment.