From a78c25cfe09779cb4448607a31637ea6824337d2 Mon Sep 17 00:00:00 2001 From: Hariswaran Sitaraman Date: Fri, 10 May 2024 09:40:20 -0600 Subject: [PATCH 01/46] adding rotational sources for mrf and srf --- Source/Params/_cpp_parameters | 31 +++++ Source/Params/param_includes/pelec_defaults.H | 19 ++- Source/Params/param_includes/pelec_params.H | 13 ++ Source/Params/param_includes/pelec_queries.H | 13 ++ Source/PeleC.H | 1 + Source/RotSource.cpp | 129 ++++++++++++++++++ 6 files changed, 202 insertions(+), 4 deletions(-) create mode 100644 Source/RotSource.cpp diff --git a/Source/Params/_cpp_parameters b/Source/Params/_cpp_parameters index 28083ccd5..63d34e9ec 100644 --- a/Source/Params/_cpp_parameters +++ b/Source/Params/_cpp_parameters @@ -147,6 +147,37 @@ zl_ext_bc_type string "" # if we are doing an external +z boundary condition, who do we interpret it? zr_ext_bc_type string "" +#use multi-reference frame +do_mrf bool false + +#mrf rotational speed +mrf_omega Real 0.0 + +#mrf axis +mrf_axis int 2 + +#mrf locations +mrf_axis_x Real 0.0 +mrf_axis_y Real 0.0 +mrf_axis_z Real 0.0 + +#mrf zone radius +mrf_rad Real 0.0 + +#use multi-reference frame +do_srf bool false + +#mrf rotational speed +srf_omega Real 0.0 + +#mrf axis +srf_axis int 2 + +#mrf locations +srf_axis_x Real 0.0 +srf_axis_y Real 0.0 +srf_axis_z Real 0.0 + #----------------------------------------------------------------------------- # category: diffusion #----------------------------------------------------------------------------- diff --git a/Source/Params/param_includes/pelec_defaults.H b/Source/Params/param_includes/pelec_defaults.H index c0718366e..920c3e7c6 100644 --- a/Source/Params/param_includes/pelec_defaults.H +++ b/Source/Params/param_includes/pelec_defaults.H @@ -43,16 +43,27 @@ std::string PeleC::yl_ext_bc_type; std::string PeleC::yr_ext_bc_type; std::string PeleC::zl_ext_bc_type; std::string PeleC::zr_ext_bc_type; +bool PeleC::do_mrf = false; +amrex::Real PeleC::mrf_omega = 0.0; +int PeleC::mrf_axis = 2; +amrex::Real PeleC::mrf_axis_x = 0.0; +amrex::Real PeleC::mrf_axis_y = 0.0; +amrex::Real PeleC::mrf_axis_z = 0.0; +amrex::Real PeleC::mrf_rad = 0.0; +bool PeleC::do_srf = false; +amrex::Real PeleC::srf_omega = 0.0; +int PeleC::srf_axis = 2; +amrex::Real PeleC::srf_axis_x = 0.0; +amrex::Real PeleC::srf_axis_y = 0.0; +amrex::Real PeleC::srf_axis_z = 0.0; bool PeleC::diffuse_temp = false; bool PeleC::diffuse_enth = false; bool PeleC::diffuse_spec = false; bool PeleC::diffuse_vel = false; bool PeleC::transport_harmonic_mean = true; bool PeleC::do_isothermal_walls = false; -amrex::GpuArray PeleC::domlo_isothermal_temp = { - -1.0}; -amrex::GpuArray PeleC::domhi_isothermal_temp = { - -1.0}; +amrex::GpuArray PeleC::domlo_isothermal_temp = {-1.0}; +amrex::GpuArray PeleC::domhi_isothermal_temp = {-1.0}; bool PeleC::do_les = false; bool PeleC::use_explicit_filter = false; amrex::Real PeleC::Cs = 0.0; diff --git a/Source/Params/param_includes/pelec_params.H b/Source/Params/param_includes/pelec_params.H index 52174fe3b..0a5f090d8 100644 --- a/Source/Params/param_includes/pelec_params.H +++ b/Source/Params/param_includes/pelec_params.H @@ -43,6 +43,19 @@ static std::string yl_ext_bc_type; static std::string yr_ext_bc_type; static std::string zl_ext_bc_type; static std::string zr_ext_bc_type; +static bool do_mrf; +static amrex::Real mrf_omega; +static int mrf_axis; +static amrex::Real mrf_axis_x; +static amrex::Real mrf_axis_y; +static amrex::Real mrf_axis_z; +static amrex::Real mrf_rad; +static bool do_srf; +static amrex::Real srf_omega; +static int srf_axis; +static amrex::Real srf_axis_x; +static amrex::Real srf_axis_y; +static amrex::Real srf_axis_z; static bool diffuse_temp; static bool diffuse_enth; static bool diffuse_spec; diff --git a/Source/Params/param_includes/pelec_queries.H b/Source/Params/param_includes/pelec_queries.H index 865d5f27a..bb3e790a7 100644 --- a/Source/Params/param_includes/pelec_queries.H +++ b/Source/Params/param_includes/pelec_queries.H @@ -49,6 +49,19 @@ pp.query("yl_ext_bc_type", yl_ext_bc_type); pp.query("yr_ext_bc_type", yr_ext_bc_type); pp.query("zl_ext_bc_type", zl_ext_bc_type); pp.query("zr_ext_bc_type", zr_ext_bc_type); +pp.query("do_mrf", do_mrf); +pp.query("mrf_omega", mrf_omega); +pp.query("mrf_axis", mrf_axis); +pp.query("mrf_axis_x", mrf_axis_x); +pp.query("mrf_axis_y", mrf_axis_y); +pp.query("mrf_axis_z", mrf_axis_z); +pp.query("mrf_rad", mrf_rad); +pp.query("do_srf", do_srf); +pp.query("srf_omega", srf_omega); +pp.query("srf_axis", srf_axis); +pp.query("srf_axis_x", srf_axis_x); +pp.query("srf_axis_y", srf_axis_y); +pp.query("srf_axis_z", srf_axis_z); pp.query("diffuse_temp", diffuse_temp); pp.query("diffuse_enth", diffuse_enth); pp.query("diffuse_spec", diffuse_spec); diff --git a/Source/PeleC.H b/Source/PeleC.H index b7e34a280..298d1dc14 100644 --- a/Source/PeleC.H +++ b/Source/PeleC.H @@ -37,6 +37,7 @@ enum sources { diff_src, les_src, soot_src, + rot_src, #ifdef PELE_USE_MASA mms_src, #endif diff --git a/Source/RotSource.cpp b/Source/RotSource.cpp new file mode 100644 index 000000000..0bd9802ca --- /dev/null +++ b/Source/RotSource.cpp @@ -0,0 +1,129 @@ +#include +#include +#include + +#include "PeleC.H" +#include "IndexDefines.H" + +void +PeleC::construct_old_mrf_source(amrex::Real /*time*/, amrex::Real /*dt*/) +{ + const amrex::MultiFab& S_old = get_old_data(State_Type); + + int ng = 0; + + old_sources[mrf_src]->setVal(0.0); + + if (!add_mrf_src) { + return; + } + + fill_mrf_source(S_old, S_old, *old_sources[mrf_src], ng); + + old_sources[mrf_src]->FillBoundary(geom.periodicity()); +} + +void +PeleC::construct_new_mrf_source(amrex::Real /*time*/, amrex::Real /*dt*/) +{ + const amrex::MultiFab& S_old = get_old_data(State_Type); + const amrex::MultiFab& S_new = get_new_data(State_Type); + + int ng = 0; + + new_sources[mrf_src]->setVal(0.0); + + if (!add_mrf_src) { + return; + } + + fill_mrf_source(S_old, S_new, *new_sources[mrf_src], ng); +} + +void +PeleC::fill_mrf_source( + const amrex::MultiFab& state_old + /*unused*/, + const amrex::MultiFab& state_new, + amrex::MultiFab& mrf_src, + int ng) +{ + auto const& fact = + dynamic_cast(state_old.Factory()); + auto const& flags = fact.getMultiEBCellFlagFab(); + + amrex::Real r_mrf=mrf_rad; + int mrf_on=do_mrf; + int srf_on=do_srf; + amrex::Real omega = (srf_on==1)?srf_omega:mrf_omega; + amrex::Real axis = (srf_on==1)?srf_axis:mrf_axis; + + auto prob_lo = geom[lev].ProbLoArray(); + auto prob_hi = geom[lev].ProbHiArray(); + const auto dx = geom[lev].CellSizeArray(); + + //need a check to prevent mrf in 2 and 1d + //read a vector instead for mrf_axis_x and y + amrex::GpuArray axis_loc={mrf_axis_x,mrf_axis_y,mrf_axis_z}; + + auto const& sarrs = state_new.const_arrays(); + auto const& srcs = mrf_src.arrays(); + auto const& flagarrs = flags.const_arrays(); + const amrex::IntVect ngs(ng); + amrex::ParallelFor( + mrf_src, ngs, axis, r_mrf, mrf_on, srf_on, omega, + [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { + + if (!flagarrs[nbx](i, j, k).isCovered()) + { + const auto& sarr = sarrs[nbx]; + const auto& src = srcs[nbx]; + + RealVect r(0.0,0.0,0.0); + RealVect w(0.0,0.0,0.0); + RealVect v(0.0,0.0,0.0); + + r[0]=prob_lo[0]+(i+0.5)*dx[0]-axis_loc[0]; + r[1]=prob_lo[1]+(j+0.5)*dx[1]-axis_loc[1]; + r[2]=prob_lo[2]+(k+0.5)*dx[2]-axis_loc[2]; + + w[axis]=omega; + + if(mrf_on) + { + t1dir=(axis+1)%AMREX_SPACEDIM; + t2dir=(axis+2)%AMREX_SPACEDIM; + rmag=std::sqrt(std::pow(r[t1dir],2.0)+std::pow(r[t2dir],2.0)); + if(rmag < r_mrf) + { + v[0]=sarr(i, j, k, UMX)/sarr(i, j, k, URHO); + v[1]=sarr(i, j, k, UMY)/sarr(i, j, k, URHO); + v[2]=sarr(i, j, k, UMZ)/sarr(i, j, k, URHO); + + RealVect w_cross_v = w.crossProduct(v); + //multi-reference frame case + src(i, j, k, UMX) = -sarr(i,j,k,URHO)*w_cross_v[0]; + src(i, j, k, UMY) = -sarr(i,j,k,URHO)*w_cross_v[1]; + src(i, j, k, UMZ) = -sarr(i,j,k,URHO)*w_cross_v[2]; + } + } + if(srf_on) + { + v[0]=sarr(i, j, k, UMX)/sarr(i, j, k, URHO); + v[1]=sarr(i, j, k, UMY)/sarr(i, j, k, URHO); + v[2]=sarr(i, j, k, UMZ)/sarr(i, j, k, URHO); + + //non-inertial frame case + RealVect w_cross_v = w.crossProduct(v); + RealVect w_cross_r = w.crossProduct(r); + RealVect w_cross_w_cross_r=w.crossProduct(w_cross_r); + + src(i, j, k, UMX) = -sarr(i,j,k,URHO)*(2.0*w_cross_v[0]+w_cross_w_cross_r[0]); + src(i, j, k, UMY) = -sarr(i,j,k,URHO)*(2.0*w_cross_v[1]+w_cross_w_cross_r[1]); + src(i, j, k, UMZ) = -sarr(i,j,k,URHO)*(2.0*w_cross_v[2]+w_cross_w_cross_r[2]); + } + } + }); + + amrex::Gpu::synchronize(); +} From eb3d1067fe4e11af4f118931b9e393326de5d412 Mon Sep 17 00:00:00 2001 From: hsitaram Date: Sun, 19 May 2024 15:22:07 -0600 Subject: [PATCH 02/46] adding srf --- Source/Params/_cpp_parameters | 5 ++++- Source/Params/param_includes/pelec_defaults.H | 1 + Source/Params/param_includes/pelec_params.H | 1 + Source/Params/param_includes/pelec_queries.H | 1 + Source/RotSource.cpp | 22 +++++++++---------- Submodules/PelePhysics | 2 +- 6 files changed, 19 insertions(+), 13 deletions(-) diff --git a/Source/Params/_cpp_parameters b/Source/Params/_cpp_parameters index 63d34e9ec..0b11febc7 100644 --- a/Source/Params/_cpp_parameters +++ b/Source/Params/_cpp_parameters @@ -173,11 +173,14 @@ srf_omega Real 0.0 #mrf axis srf_axis int 2 -#mrf locations +#srf locations srf_axis_x Real 0.0 srf_axis_y Real 0.0 srf_axis_z Real 0.0 +#srf cut off distance +srf_dist Real 0.0 + #----------------------------------------------------------------------------- # category: diffusion #----------------------------------------------------------------------------- diff --git a/Source/Params/param_includes/pelec_defaults.H b/Source/Params/param_includes/pelec_defaults.H index 920c3e7c6..970c5fc96 100644 --- a/Source/Params/param_includes/pelec_defaults.H +++ b/Source/Params/param_includes/pelec_defaults.H @@ -56,6 +56,7 @@ int PeleC::srf_axis = 2; amrex::Real PeleC::srf_axis_x = 0.0; amrex::Real PeleC::srf_axis_y = 0.0; amrex::Real PeleC::srf_axis_z = 0.0; +amrex::Real PeleC::srf_dist = 0.0; bool PeleC::diffuse_temp = false; bool PeleC::diffuse_enth = false; bool PeleC::diffuse_spec = false; diff --git a/Source/Params/param_includes/pelec_params.H b/Source/Params/param_includes/pelec_params.H index 0a5f090d8..b01b7b374 100644 --- a/Source/Params/param_includes/pelec_params.H +++ b/Source/Params/param_includes/pelec_params.H @@ -56,6 +56,7 @@ static int srf_axis; static amrex::Real srf_axis_x; static amrex::Real srf_axis_y; static amrex::Real srf_axis_z; +static amrex::Real srf_dist; static bool diffuse_temp; static bool diffuse_enth; static bool diffuse_spec; diff --git a/Source/Params/param_includes/pelec_queries.H b/Source/Params/param_includes/pelec_queries.H index bb3e790a7..673be8032 100644 --- a/Source/Params/param_includes/pelec_queries.H +++ b/Source/Params/param_includes/pelec_queries.H @@ -62,6 +62,7 @@ pp.query("srf_axis", srf_axis); pp.query("srf_axis_x", srf_axis_x); pp.query("srf_axis_y", srf_axis_y); pp.query("srf_axis_z", srf_axis_z); +pp.query("srf_dist", srf_dist); pp.query("diffuse_temp", diffuse_temp); pp.query("diffuse_enth", diffuse_enth); pp.query("diffuse_spec", diffuse_spec); diff --git a/Source/RotSource.cpp b/Source/RotSource.cpp index 0bd9802ca..599261710 100644 --- a/Source/RotSource.cpp +++ b/Source/RotSource.cpp @@ -6,46 +6,46 @@ #include "IndexDefines.H" void -PeleC::construct_old_mrf_source(amrex::Real /*time*/, amrex::Real /*dt*/) +PeleC::construct_old_rot_source(amrex::Real /*time*/, amrex::Real /*dt*/) { const amrex::MultiFab& S_old = get_old_data(State_Type); int ng = 0; - old_sources[mrf_src]->setVal(0.0); + old_sources[rot_src]->setVal(0.0); - if (!add_mrf_src) { + if (!do_mrf && !do_srf) { return; } - fill_mrf_source(S_old, S_old, *old_sources[mrf_src], ng); + fill_rot_source(S_old, S_old, *old_sources[rot_src], ng); - old_sources[mrf_src]->FillBoundary(geom.periodicity()); + old_sources[rot_src]->FillBoundary(geom.periodicity()); } void -PeleC::construct_new_mrf_source(amrex::Real /*time*/, amrex::Real /*dt*/) +PeleC::construct_new_rot_source(amrex::Real /*time*/, amrex::Real /*dt*/) { const amrex::MultiFab& S_old = get_old_data(State_Type); const amrex::MultiFab& S_new = get_new_data(State_Type); int ng = 0; - new_sources[mrf_src]->setVal(0.0); + new_sources[rot_src]->setVal(0.0); - if (!add_mrf_src) { + if (!do_mrf && !do_srf) { return; } - fill_mrf_source(S_old, S_new, *new_sources[mrf_src], ng); + fill_rot_source(S_old, S_new, *new_sources[rot_src], ng); } void -PeleC::fill_mrf_source( +PeleC::fill_rot_source( const amrex::MultiFab& state_old /*unused*/, const amrex::MultiFab& state_new, - amrex::MultiFab& mrf_src, + amrex::MultiFab& rot_src, int ng) { auto const& fact = diff --git a/Submodules/PelePhysics b/Submodules/PelePhysics index c125141b0..87f970625 160000 --- a/Submodules/PelePhysics +++ b/Submodules/PelePhysics @@ -1 +1 @@ -Subproject commit c125141b0d551d50348604c3db5824d22980da83 +Subproject commit 87f970625571901e4444a7d4610dc65f71c50a3f From 57eb1e41edb69fa9fd20d9b6266c03b8084da460 Mon Sep 17 00:00:00 2001 From: hsitaram Date: Wed, 22 May 2024 16:54:16 -0600 Subject: [PATCH 03/46] coded in everything, need to fix build errors --- Source/Diffusion.cpp | 25 +++- Source/InitEB.cpp | 310 +++++++++++++++++++++++------------------ Source/MOL.cpp | 182 +++++++++++++----------- Source/Make.package | 3 +- Source/PeleC.H | 5 + Source/Riemann.H | 21 ++- Source/RotSource.cpp | 6 +- Source/Setup.cpp | 5 + Source/Sources.cpp | 9 ++ Source/Utilities.H | 14 +- Submodules/PelePhysics | 2 +- 11 files changed, 347 insertions(+), 235 deletions(-) diff --git a/Source/Diffusion.cpp b/Source/Diffusion.cpp index aa8f3f375..ff1ad1467 100644 --- a/Source/Diffusion.cpp +++ b/Source/Diffusion.cpp @@ -16,6 +16,15 @@ PeleC::getMOLSrcTerm( return; } + int rf=(mrf_on | srf_on); + amrex::Real omega = (srf_on==1)?srf_omega:mrf_omega; + amrex::Real axis = (srf_on==1)?srf_axis:mrf_axis; + amrex::GpuArray axis_loc={mrf_axis_x,mrf_axis_y,mrf_axis_z}; + auto prob_lo = geom.ProbLoArray(); + auto prob_hi = geom.ProbHiArray(); + const auto dx = geom.CellSizeArray(); + + /* Across all conserved state components, compute the method of lines rhs = -Div(Flux). The input state, S, contained the conserved variables, and @@ -126,7 +135,21 @@ PeleC::getMOLSrcTerm( BL_PROFILE("PeleC::ctoprim()"); amrex::ParallelFor( gbox, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - pc_ctoprim(i, j, k, sar, qar, qauxar); + + if(rf) + { + RealVect r(0.0,0.0,0.0); + r[0]=prob_lo[0]+(i+0.5)*dx[0]-axis_loc[0]; + r[1]=prob_lo[1]+(j+0.5)*dx[1]-axis_loc[1]; + r[2]=prob_lo[2]+(k+0.5)*dx[2]-axis_loc[2]; + rad=std::sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2]); + pc_ctoprim(i, j, k, sar, qar, qauxar,omega,rad); + } + else + { + pc_ctoprim(i, j, k, sar, qar, qauxar,0.0,0.0); + } + }); } // TODO deal with NSCBC diff --git a/Source/InitEB.cpp b/Source/InitEB.cpp index 77a65d0a7..fbbab43b2 100644 --- a/Source/InitEB.cpp +++ b/Source/InitEB.cpp @@ -40,9 +40,14 @@ PeleC::initialize_eb2_structs() static_assert( std::is_standard_layout::value, "EBBndryGeom is not standard layout"); + + const amrex::GpuArray dx = geom.CellSizeArray(); + const amrex::GpuArray prob_lo = + geom.ProbLoArray(); + amrex::Real axis = (srf_on==1)?srf_axis:mrf_axis; const auto& ebfactory = - dynamic_cast(Factory()); + dynamic_cast(Factory()); // These are the data sources amrex::MultiFab::Copy(vfrac, ebfactory.getVolFrac(), 0, 0, 1, numGrow()); @@ -55,6 +60,9 @@ PeleC::initialize_eb2_structs() sv_eb_bndry_grad_stencil.resize(vfrac.local_size()); sv_eb_flux.resize(vfrac.local_size()); sv_eb_bcval.resize(vfrac.local_size()); + + amrex::GpuArray axis_loc={mrf_axis_x,mrf_axis_y,mrf_axis_z}; + amrex::Real srfdist2=srf_dist*srf_dist; auto const& flags = ebfactory.getMultiEBCellFlagFab(); @@ -65,78 +73,78 @@ PeleC::initialize_eb2_structs() pp.query("boundary_grad_stencil_type", bgs); if (bgs == 0) { - amrex::Print() << "Using quadratic stencil for the EB gradient\n"; + amrex::Print() << "Using quadratic stencil for the EB gradient\n"; } else if (bgs == 1) { - amrex::Print() << "Using least-squares stencil for the EB gradient\n"; + amrex::Print() << "Using least-squares stencil for the EB gradient\n"; } else { - amrex::Print() << "Unknown or unspecified EB gradient stencil type:" << bgs - << std::endl; - amrex::Abort(); + amrex::Print() << "Unknown or unspecified EB gradient stencil type:" << bgs + << std::endl; + amrex::Abort(); } #ifdef AMREX_USE_OMP #pragma omp parallel if (amrex::Gpu::notInLaunchRegion()) #endif for (amrex::MFIter mfi(vfrac, false); mfi.isValid(); ++mfi) { - const amrex::Box tbox = mfi.growntilebox(); - const amrex::EBCellFlagFab& flagfab = flags[mfi]; - const amrex::FabType typ = flagfab.getType(tbox); - const int iLocal = mfi.LocalIndex(); - - if ((typ == amrex::FabType::regular) || (typ == amrex::FabType::covered)) { - // do nothing - } else if (typ == amrex::FabType::singlevalued) { - auto const& flag_arr = flags.const_array(mfi); - - const auto nallcells = static_cast(tbox.numPts()); - amrex::Gpu::DeviceVector cutcell_offset(nallcells, 0); - auto* d_cutcell_offset = cutcell_offset.data(); - const auto ncutcells = amrex::Scan::PrefixSum( - nallcells, - [=] AMREX_GPU_DEVICE(int icell) -> int { - const auto iv = tbox.atOffset(icell); - return static_cast(flag_arr(iv).isSingleValued()); - }, - [=] AMREX_GPU_DEVICE(int icell, int const& x) { - d_cutcell_offset[icell] = x; - }, - amrex::Scan::Type::exclusive, amrex::Scan::retSum); - - AMREX_ASSERT(ncutcells == flagfab.getNumCutCells(tbox)); - - sv_eb_bndry_geom[iLocal].resize(ncutcells); - if (ncutcells > 0) { - auto* d_sv_eb_bndry_geom = sv_eb_bndry_geom[iLocal].data(); - amrex::ParallelFor( - tbox, - [=] AMREX_GPU_DEVICE(int i, int j, int AMREX_D_PICK(, , k)) noexcept { - const amrex::IntVect iv(amrex::IntVect(AMREX_D_DECL(i, j, k))); - if (flag_arr(iv).isSingleValued()) { - const auto icell = tbox.index(iv); - const auto idx = d_cutcell_offset[icell]; - d_sv_eb_bndry_geom[idx].iv = iv; - } - }); - } + const amrex::Box tbox = mfi.growntilebox(); + const amrex::EBCellFlagFab& flagfab = flags[mfi]; + const amrex::FabType typ = flagfab.getType(tbox); + const int iLocal = mfi.LocalIndex(); - // Now fill the sv_eb_bndry_geom - auto const& vfrac_arr = vfrac.const_array(mfi); - auto const& bndrycent_arr = bndrycent->const_array(mfi); - AMREX_D_TERM(auto const& apx = areafrac[0]->const_array(mfi); - , auto const& apy = areafrac[1]->const_array(mfi); - , auto const& apz = areafrac[2]->const_array(mfi);) - pc_fill_sv_ebg( - tbox, ncutcells, vfrac_arr, bndrycent_arr, AMREX_D_DECL(apx, apy, apz), - sv_eb_bndry_geom[iLocal].data()); - - // Fill in boundary gradient for cut cells in this grown tile - sv_eb_bndry_grad_stencil[iLocal].resize(ncutcells); - const amrex::Real dx = geom.CellSize()[0]; - if (bgs == 0) { - pc_fill_bndry_grad_stencil_quadratic( - tbox, dx, ncutcells, sv_eb_bndry_geom[iLocal].data(), ncutcells, - sv_eb_bndry_grad_stencil[iLocal].data()); - } else if (bgs == 1) { + if ((typ == amrex::FabType::regular) || (typ == amrex::FabType::covered)) { + // do nothing + } else if (typ == amrex::FabType::singlevalued) { + auto const& flag_arr = flags.const_array(mfi); + + const auto nallcells = static_cast(tbox.numPts()); + amrex::Gpu::DeviceVector cutcell_offset(nallcells, 0); + auto* d_cutcell_offset = cutcell_offset.data(); + const auto ncutcells = amrex::Scan::PrefixSum( + nallcells, + [=] AMREX_GPU_DEVICE(int icell) -> int { + const auto iv = tbox.atOffset(icell); + return static_cast(flag_arr(iv).isSingleValued()); + }, + [=] AMREX_GPU_DEVICE(int icell, int const& x) { + d_cutcell_offset[icell] = x; + }, + amrex::Scan::Type::exclusive, amrex::Scan::retSum); + + AMREX_ASSERT(ncutcells == flagfab.getNumCutCells(tbox)); + + sv_eb_bndry_geom[iLocal].resize(ncutcells); + if (ncutcells > 0) { + auto* d_sv_eb_bndry_geom = sv_eb_bndry_geom[iLocal].data(); + amrex::ParallelFor( + tbox, + [=] AMREX_GPU_DEVICE(int i, int j, int AMREX_D_PICK(, , k)) noexcept { + const amrex::IntVect iv(amrex::IntVect(AMREX_D_DECL(i, j, k))); + if (flag_arr(iv).isSingleValued()) { + const auto icell = tbox.index(iv); + const auto idx = d_cutcell_offset[icell]; + d_sv_eb_bndry_geom[idx].iv = iv; + } + }); + } + + // Now fill the sv_eb_bndry_geom + auto const& vfrac_arr = vfrac.const_array(mfi); + auto const& bndrycent_arr = bndrycent->const_array(mfi); + AMREX_D_TERM(auto const& apx = areafrac[0]->const_array(mfi); + , auto const& apy = areafrac[1]->const_array(mfi); + , auto const& apz = areafrac[2]->const_array(mfi);) + pc_fill_sv_ebg( + tbox, ncutcells, vfrac_arr, bndrycent_arr, AMREX_D_DECL(apx, apy, apz), + sv_eb_bndry_geom[iLocal].data()); + + // Fill in boundary gradient for cut cells in this grown tile + sv_eb_bndry_grad_stencil[iLocal].resize(ncutcells); + const amrex::Real dx = geom.CellSize()[0]; + if (bgs == 0) { + pc_fill_bndry_grad_stencil_quadratic( + tbox, dx, ncutcells, sv_eb_bndry_geom[iLocal].data(), ncutcells, + sv_eb_bndry_grad_stencil[iLocal].data()); + } else if (bgs == 1) { pc_fill_bndry_grad_stencil_ls( tbox, dx, ncutcells, sv_eb_bndry_geom[iLocal].data(), ncutcells, flags.array(mfi), sv_eb_bndry_grad_stencil[iLocal].data()); @@ -161,88 +169,120 @@ PeleC::initialize_eb2_structs() sv_eb_bcval[iLocal].setVal(eb_boundary_T, QTEMP); } if (eb_noslip && diffuse_vel) { - sv_eb_bcval[iLocal].setVal(0, QU, AMREX_SPACEDIM); - } + if(do_mrf || do_srf) + { + amrex::Real xloc=prob_lo[0]+(iv[0]+0.5)*dx[0]+bcent(iv, 0)*0.5*dx[0]; + amrex::Real yloc=prob_lo[1]+(iv[1]+0.5)*dx[1]+bcent(iv, 1)*0.5*dx[1]; + amrex::Real zloc=prob_lo[2]+(iv[2]+0.5)*dx[2]+bcent(iv, 2)*0.5*dx[2]; - } else { - amrex::Print() << "unknown (or multivalued) fab type" << std::endl; - amrex::Abort(); - } - } + RealVect r(0.0,0.0,0.0); + RealVect w(0.0,0.0,0.0); + + r[0]=xloc-axis_loc[0]; + r[1]=yloc-axis_loc[1]; + r[2]=zloc-axis_loc[2]; + + amrex::Real rmag2=r[0]*r[0]+r[1]*r[1]+r[2]*r[2]; + + if(rmag2 > srf_dist2) + { + + w[axis]=omega; + RealVect w_cross_r = w.crossProduct(r); + + sv_eb_bcval[iLocal].setVal(-w_cross_r[0], QU); + sv_eb_bcval[iLocal].setVal(-w_cross_r[1], QV); + sv_eb_bcval[iLocal].setVal(-w_cross_r[2], QW); + } + else + { + sv_eb_bcval[iLocal].setVal(0, QU, AMREX_SPACEDIM); + } + } + else + { + sv_eb_bcval[iLocal].setVal(0, QU, AMREX_SPACEDIM); + } + + } else { + amrex::Print() << "unknown (or multivalued) fab type" << std::endl; + amrex::Abort(); + } + } - // Second pass over dirs and fabs to fill flux interpolation stencils - for (int dir = 0; dir < AMREX_SPACEDIM; ++dir) { - flux_interp_stencil[dir].resize(vfrac.local_size()); + // Second pass over dirs and fabs to fill flux interpolation stencils + for (int dir = 0; dir < AMREX_SPACEDIM; ++dir) { + flux_interp_stencil[dir].resize(vfrac.local_size()); #ifdef AMREX_USE_OMP #pragma omp parallel if (amrex::Gpu::notInLaunchRegion()) #endif - for (amrex::MFIter mfi(vfrac, false); mfi.isValid(); ++mfi) { - const amrex::Box tbox = mfi.growntilebox(numGrow()); - const auto& flagfab = flags[mfi]; - const amrex::FabType typ = flagfab.getType(tbox); - const int iLocal = mfi.LocalIndex(); - - if (typ == amrex::FabType::singlevalued) { - auto const& flag_arr = flagfab.const_array(); - const auto afrac_arr = (*areafrac[dir])[mfi].const_array(); - const auto facecent_arr = (*facecent[dir])[mfi].const_array(); - const auto fbox = amrex::surroundingNodes(tbox, dir); - const auto nallfaces = static_cast(fbox.numPts()); - amrex::Gpu::DeviceVector cutfaces_offset(nallfaces, 0); - auto* d_cutface_offset = cutfaces_offset.data(); - const auto ncutfaces = amrex::Scan::PrefixSum( - nallfaces, - [=] AMREX_GPU_DEVICE(int iface) -> int { - const auto iv = fbox.atOffset(iface); - const bool covered_cells = - flag_arr(iv).isCovered() && - flag_arr(iv - amrex::IntVect::TheDimensionVector(dir)) - .isCovered(); - return static_cast((afrac_arr(iv) < 1.0) && (!covered_cells)); - }, - [=] AMREX_GPU_DEVICE(int iface, int const& x) { - d_cutface_offset[iface] = x; - }, - amrex::Scan::Type::exclusive, amrex::Scan::retSum); - - if (ncutfaces > 0) { - flux_interp_stencil[dir][iLocal].resize(ncutfaces); - auto* d_flux_interp_stencil = flux_interp_stencil[dir][iLocal].data(); - amrex::ParallelFor( - fbox, [=] AMREX_GPU_DEVICE( - int i, int j, int AMREX_D_PICK(, , k)) noexcept { - const amrex::IntVect iv(amrex::IntVect(AMREX_D_DECL(i, j, k))); - const bool covered_cells = - flag_arr(iv).isCovered() && - flag_arr(iv - amrex::IntVect::TheDimensionVector(dir)) - .isCovered(); - if ((afrac_arr(iv) < 1.0) && (!covered_cells)) { - const auto iface = fbox.index(iv); - const auto idx = d_cutface_offset[iface]; - d_flux_interp_stencil[idx].iv = iv; + for (amrex::MFIter mfi(vfrac, false); mfi.isValid(); ++mfi) { + const amrex::Box tbox = mfi.growntilebox(numGrow()); + const auto& flagfab = flags[mfi]; + const amrex::FabType typ = flagfab.getType(tbox); + const int iLocal = mfi.LocalIndex(); + + if (typ == amrex::FabType::singlevalued) { + auto const& flag_arr = flagfab.const_array(); + const auto afrac_arr = (*areafrac[dir])[mfi].const_array(); + const auto facecent_arr = (*facecent[dir])[mfi].const_array(); + const auto fbox = amrex::surroundingNodes(tbox, dir); + const auto nallfaces = static_cast(fbox.numPts()); + amrex::Gpu::DeviceVector cutfaces_offset(nallfaces, 0); + auto* d_cutface_offset = cutfaces_offset.data(); + const auto ncutfaces = amrex::Scan::PrefixSum( + nallfaces, + [=] AMREX_GPU_DEVICE(int iface) -> int { + const auto iv = fbox.atOffset(iface); + const bool covered_cells = + flag_arr(iv).isCovered() && + flag_arr(iv - amrex::IntVect::TheDimensionVector(dir)) + .isCovered(); + return static_cast((afrac_arr(iv) < 1.0) && (!covered_cells)); + }, + [=] AMREX_GPU_DEVICE(int iface, int const& x) { + d_cutface_offset[iface] = x; + }, + amrex::Scan::Type::exclusive, amrex::Scan::retSum); + + if (ncutfaces > 0) { + flux_interp_stencil[dir][iLocal].resize(ncutfaces); + auto* d_flux_interp_stencil = flux_interp_stencil[dir][iLocal].data(); + amrex::ParallelFor( + fbox, [=] AMREX_GPU_DEVICE( + int i, int j, int AMREX_D_PICK(, , k)) noexcept { + const amrex::IntVect iv(amrex::IntVect(AMREX_D_DECL(i, j, k))); + const bool covered_cells = + flag_arr(iv).isCovered() && + flag_arr(iv - amrex::IntVect::TheDimensionVector(dir)) + .isCovered(); + if ((afrac_arr(iv) < 1.0) && (!covered_cells)) { + const auto iface = fbox.index(iv); + const auto idx = d_cutface_offset[iface]; + d_flux_interp_stencil[idx].iv = iv; + } + }); + + pc_fill_flux_interp_stencil( + tbox, ncutfaces, facecent_arr, afrac_arr, d_flux_interp_stencil); + } + } else if ( + (typ != amrex::FabType::regular) && (typ != amrex::FabType::covered)) { + amrex::Abort("multi-valued flux interp stencil to be implemented"); } - }); - - pc_fill_flux_interp_stencil( - tbox, ncutfaces, facecent_arr, afrac_arr, d_flux_interp_stencil); - } - } else if ( - (typ != amrex::FabType::regular) && (typ != amrex::FabType::covered)) { - amrex::Abort("multi-valued flux interp stencil to be implemented"); + } } - } } -} -void -PeleC::define_body_state() -{ - BL_PROFILE("PeleC::define_body_state()"); + void + PeleC::define_body_state() + { + BL_PROFILE("PeleC::define_body_state()"); - if (!eb_in_domain) { - return; - } + if (!eb_in_domain) { + return; + } if (eb_zero_body_state) { for (int n = 0; n < NVAR; ++n) { diff --git a/Source/MOL.cpp b/Source/MOL.cpp index eecbad085..a373f263f 100644 --- a/Source/MOL.cpp +++ b/Source/MOL.cpp @@ -11,7 +11,11 @@ pc_compute_hyp_mol_flux( area, const int mol_iorder, const bool use_laxf_flux, - const amrex::Array4& flags) + const amrex::Array4& flags, + const amrex::GpuArray plo, + const amrex::GpuArray dx, + const amrex::GpuArray axis_loc + amrex::Real omega,int do_rf) { const int R_RHO = 0; const int R_UN = 1; @@ -23,97 +27,107 @@ pc_compute_hyp_mol_flux( const int R_NUM = 5 + NUM_SPECIES + NUM_ADV + NUM_LIN + NUM_AUX; const int bc_test_val = 1; + RealVect r(0.0,0.0,0.0); + Real rad; + if(do_rf) + { + r[0]=prob_lo[0]+(i+0.5)*dx[0]-axis_loc[0]; + r[1]=prob_lo[1]+(j+0.5)*dx[1]-axis_loc[1]; + r[2]=prob_lo[2]+(k+0.5)*dx[2]-axis_loc[2]; + rad=std::sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2]); + } + for (int dir = 0; dir < AMREX_SPACEDIM; dir++) { - amrex::FArrayBox dq_fab(cbox, QVAR, amrex::The_Async_Arena()); - auto const& dq = dq_fab.array(); - setV(cbox, QVAR, dq, 0.0); - - // dimensional indexing - const amrex::GpuArray bdim{ - {static_cast(dir == 0), static_cast(dir == 1), - static_cast(dir == 2)}}; - const amrex::GpuArray q_idx{ - {bdim[0] * QU + bdim[1] * QV + bdim[2] * QW, - bdim[0] * QV + bdim[1] * QU + bdim[2] * QU, - bdim[0] * QW + bdim[1] * QW + bdim[2] * QV}}; - const amrex::GpuArray f_idx{ - {bdim[0] * UMX + bdim[1] * UMY + bdim[2] * UMZ, - bdim[0] * UMY + bdim[1] * UMX + bdim[2] * UMX, - bdim[0] * UMZ + bdim[1] * UMZ + bdim[2] * UMY}}; - - if (mol_iorder != 1) { + amrex::FArrayBox dq_fab(cbox, QVAR, amrex::The_Async_Arena()); + auto const& dq = dq_fab.array(); + setV(cbox, QVAR, dq, 0.0); + + // dimensional indexing + const amrex::GpuArray bdim{ + {static_cast(dir == 0), static_cast(dir == 1), + static_cast(dir == 2)}}; + const amrex::GpuArray q_idx{ + {bdim[0] * QU + bdim[1] * QV + bdim[2] * QW, + bdim[0] * QV + bdim[1] * QU + bdim[2] * QU, + bdim[0] * QW + bdim[1] * QW + bdim[2] * QV}}; + const amrex::GpuArray f_idx{ + {bdim[0] * UMX + bdim[1] * UMY + bdim[2] * UMZ, + bdim[0] * UMY + bdim[1] * UMX + bdim[2] * UMX, + bdim[0] * UMZ + bdim[1] * UMZ + bdim[2] * UMY}}; + + if (mol_iorder != 1) { + amrex::ParallelFor( + cbox, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + mol_slope(i, j, k, dir, q_idx, q, qaux, dq, flags); + }); + } + const amrex::Box tbox = amrex::grow(cbox, dir, -1); + const amrex::Box ebox = amrex::surroundingNodes(tbox, dir); amrex::ParallelFor( - cbox, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - mol_slope(i, j, k, dir, q_idx, q, qaux, dq, flags); - }); - } - const amrex::Box tbox = amrex::grow(cbox, dir, -1); - const amrex::Box ebox = amrex::surroundingNodes(tbox, dir); - amrex::ParallelFor( - ebox, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - const amrex::IntVect iv{AMREX_D_DECL(i, j, k)}; - const amrex::IntVect ivm(iv - amrex::IntVect::TheDimensionVector(dir)); - - amrex::Real qtempl[R_NUM] = {0.0}; - qtempl[R_UN] = - q(ivm, q_idx[0]) + 0.5 * ((dq(ivm, 1) - dq(ivm, 0)) / q(ivm, QRHO)); - qtempl[R_P] = - q(ivm, QPRES) + 0.5 * (dq(ivm, 0) + dq(ivm, 1)) * qaux(ivm, QC); - qtempl[R_UT1] = q(ivm, q_idx[1]) + 0.5 * dq(ivm, 2); - qtempl[R_UT2] = - AMREX_D_PICK(0.0, 0.0, q(ivm, q_idx[2]) + 0.5 * dq(ivm, 3)); - qtempl[R_RHO] = 0.0; - for (int n = 0; n < NUM_SPECIES; n++) { - qtempl[R_Y + n] = - q(ivm, QFS + n) * q(ivm, QRHO) + - 0.5 * (dq(ivm, QFS + n) + - q(ivm, QFS + n) * (dq(ivm, 0) + dq(ivm, 1)) / qaux(ivm, QC)); - qtempl[R_RHO] += qtempl[R_Y + n]; - } + ebox, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + const amrex::IntVect iv{AMREX_D_DECL(i, j, k)}; + const amrex::IntVect ivm(iv - amrex::IntVect::TheDimensionVector(dir)); - for (int n = 0; n < NUM_SPECIES; n++) { - qtempl[R_Y + n] = qtempl[R_Y + n] / qtempl[R_RHO]; - } + amrex::Real qtempl[R_NUM] = {0.0}; + qtempl[R_UN] = + q(ivm, q_idx[0]) + 0.5 * ((dq(ivm, 1) - dq(ivm, 0)) / q(ivm, QRHO)); + qtempl[R_P] = + q(ivm, QPRES) + 0.5 * (dq(ivm, 0) + dq(ivm, 1)) * qaux(ivm, QC); + qtempl[R_UT1] = q(ivm, q_idx[1]) + 0.5 * dq(ivm, 2); + qtempl[R_UT2] = + AMREX_D_PICK(0.0, 0.0, q(ivm, q_idx[2]) + 0.5 * dq(ivm, 3)); + qtempl[R_RHO] = 0.0; + for (int n = 0; n < NUM_SPECIES; n++) { + qtempl[R_Y + n] = + q(ivm, QFS + n) * q(ivm, QRHO) + + 0.5 * (dq(ivm, QFS + n) + + q(ivm, QFS + n) * (dq(ivm, 0) + dq(ivm, 1)) / qaux(ivm, QC)); + qtempl[R_RHO] += qtempl[R_Y + n]; + } - amrex::Real qtempr[R_NUM] = {0.0}; - qtempr[R_UN] = - q(iv, q_idx[0]) - 0.5 * ((dq(iv, 1) - dq(iv, 0)) / q(iv, QRHO)); - qtempr[R_P] = - q(iv, QPRES) - 0.5 * (dq(iv, 0) + dq(iv, 1)) * qaux(iv, QC); - qtempr[R_UT1] = q(iv, q_idx[1]) - 0.5 * dq(iv, 2); - qtempr[R_UT2] = - AMREX_D_PICK(0.0, 0.0, q(iv, q_idx[2]) - 0.5 * dq(iv, 3)); - qtempr[R_RHO] = 0.0; - for (int n = 0; n < NUM_SPECIES; n++) { - qtempr[R_Y + n] = - q(iv, QFS + n) * q(iv, QRHO) - - 0.5 * (dq(iv, QFS + n) + - q(iv, QFS + n) * (dq(iv, 0) + dq(iv, 1)) / qaux(iv, QC)); - qtempr[R_RHO] += qtempr[R_Y + n]; - } - for (int n = 0; n < NUM_SPECIES; n++) { - qtempr[R_Y + n] = qtempr[R_Y + n] / qtempr[R_RHO]; - } + for (int n = 0; n < NUM_SPECIES; n++) { + qtempl[R_Y + n] = qtempl[R_Y + n] / qtempl[R_RHO]; + } + + amrex::Real qtempr[R_NUM] = {0.0}; + qtempr[R_UN] = + q(iv, q_idx[0]) - 0.5 * ((dq(iv, 1) - dq(iv, 0)) / q(iv, QRHO)); + qtempr[R_P] = + q(iv, QPRES) - 0.5 * (dq(iv, 0) + dq(iv, 1)) * qaux(iv, QC); + qtempr[R_UT1] = q(iv, q_idx[1]) - 0.5 * dq(iv, 2); + qtempr[R_UT2] = + AMREX_D_PICK(0.0, 0.0, q(iv, q_idx[2]) - 0.5 * dq(iv, 3)); + qtempr[R_RHO] = 0.0; + for (int n = 0; n < NUM_SPECIES; n++) { + qtempr[R_Y + n] = + q(iv, QFS + n) * q(iv, QRHO) - + 0.5 * (dq(iv, QFS + n) + + q(iv, QFS + n) * (dq(iv, 0) + dq(iv, 1)) / qaux(iv, QC)); + qtempr[R_RHO] += qtempr[R_Y + n]; + } + for (int n = 0; n < NUM_SPECIES; n++) { + qtempr[R_Y + n] = qtempr[R_Y + n] / qtempr[R_RHO]; + } #if NUM_ADV > 0 - for (int n = 0; n < NUM_ADV; n++) { - qtempl[R_ADV + n] = q(ivm, QFA + n) + 0.5 * dq(ivm, QFA + n); - qtempr[R_ADV + n] = q(iv, QFA + n) - 0.5 * dq(iv, QFA + n); - } + for (int n = 0; n < NUM_ADV; n++) { + qtempl[R_ADV + n] = q(ivm, QFA + n) + 0.5 * dq(ivm, QFA + n); + qtempr[R_ADV + n] = q(iv, QFA + n) - 0.5 * dq(iv, QFA + n); + } #endif #if NUM_AUX > 0 - const int R_AUX = R_Y + NUM_SPECIES; - for (int n = 0; n < NUM_AUX; n++) { - qtempl[R_AUX + n] = q(ivm, QFX + n) + 0.5 * dq(ivm, QFX + n); - qtempr[R_AUX + n] = q(iv, QFX + n) - 0.5 * dq(iv, QFX + n); - } + const int R_AUX = R_Y + NUM_SPECIES; + for (int n = 0; n < NUM_AUX; n++) { + qtempl[R_AUX + n] = q(ivm, QFX + n) + 0.5 * dq(ivm, QFX + n); + qtempr[R_AUX + n] = q(iv, QFX + n) - 0.5 * dq(iv, QFX + n); + } #endif #if NUM_LIN > 0 - const int R_LIN = R_Y + NUM_SPECIES + NUM_AUX; - for (int n = 0; n < NUM_LIN; n++) { - qtempl[R_LIN + n] = q(ivm, QLIN + n) + 0.5 * dq(ivm, QLIN + n); - qtempr[R_LIN + n] = q(iv, QLIN + n) - 0.5 * dq(iv, QLIN + n); - } + const int R_LIN = R_Y + NUM_SPECIES + NUM_AUX; + for (int n = 0; n < NUM_LIN; n++) { + qtempl[R_LIN + n] = q(ivm, QLIN + n) + 0.5 * dq(ivm, QLIN + n); + qtempr[R_LIN + n] = q(iv, QLIN + n) - 0.5 * dq(iv, QLIN + n); + } #endif const amrex::Real cavg = 0.5 * (qaux(iv, QC) + qaux(ivm, QC)); @@ -140,7 +154,7 @@ pc_compute_hyp_mol_flux( qtempr[R_UT2], qtempr[R_P], spr, bc_test_val, cavg, ustar, flux_tmp[URHO], &flux_tmp[UFS], flux_tmp[f_idx[0]], flux_tmp[f_idx[1]], flux_tmp[f_idx[2]], flux_tmp[UEDEN], - flux_tmp[UEINT], qint_iu, tmp1, tmp2, tmp3, tmp4); + flux_tmp[UEINT], qint_iu, tmp1, tmp2, tmp3, tmp4,omega,rad); #if NUM_ADV > 0 for (int n = 0; n < NUM_ADV; n++) { pc_cmpflx_passive( @@ -170,7 +184,7 @@ pc_compute_hyp_mol_flux( qtempr[R_UT2], qtempr[R_P], spr, bc_test_val, cavg, ustar, maxeigval, flux_tmp[URHO], &flux_tmp[UFS], flux_tmp[f_idx[0]], flux_tmp[f_idx[1]], flux_tmp[f_idx[2]], flux_tmp[UEDEN], - flux_tmp[UEINT]); + flux_tmp[UEINT],omega,rad); #if NUM_ADV > 0 for (int n = 0; n < NUM_ADV; n++) { pc_lax_cmpflx_passive( diff --git a/Source/Make.package b/Source/Make.package index ecd31d6a0..9845f987b 100644 --- a/Source/Make.package +++ b/Source/Make.package @@ -26,6 +26,7 @@ CEXE_sources += LES.cpp CEXE_sources += EB.cpp CEXE_sources += Geometry.cpp CEXE_sources += InitEB.cpp +CEXE_sources += RotSource.cpp #C++ headers CEXE_headers += PeleC.H @@ -68,4 +69,4 @@ endif ifeq ($(USE_ASCENT), TRUE) CEXE_sources += PeleAscent.cpp CEXE_headers += PeleAscent.H -endif \ No newline at end of file +endif diff --git a/Source/PeleC.H b/Source/PeleC.H index 298d1dc14..f56e7e1fd 100644 --- a/Source/PeleC.H +++ b/Source/PeleC.H @@ -41,6 +41,7 @@ enum sources { #ifdef PELE_USE_MASA mms_src, #endif + rot_src, num_src }; @@ -374,6 +375,10 @@ public: amrex::MultiFab& mms_src, int ng); #endif + + void construct_old_rot_source(amrex::Real time, amrex::Real dt); + + void construct_new_rot_source(amrex::Real time, amrex::Real dt); void getLESTerm( amrex::Real time, diff --git a/Source/Riemann.H b/Source/Riemann.H index 065b08a39..16a8fdd4e 100644 --- a/Source/Riemann.H +++ b/Source/Riemann.H @@ -33,7 +33,11 @@ riemann( amrex::Real& qint_iv1, amrex::Real& qint_iv2, amrex::Real& qint_gdpres, - amrex::Real& qint_gdgame) + amrex::Real& qint_gdgame, + amrex::Real omegal, + amrex::Real radl, + amrex::Real omegar, + amrex::Real radr) { const amrex::Real wsmall = std::numeric_limits::min(); @@ -127,6 +131,8 @@ riemann( mask = ustar > 0.0; qint_iv1 = mask ? vl : vr; qint_iv2 = mask ? v2l : v2r; + amrex::Real omega = mask ? omegal:omegar; + amrex::Real rad = mask ? radl:radr; mask = (ustar == 0.0); qint_iv1 = mask ? 0.5 * (vl + vr) : qint_iv1; @@ -183,7 +189,8 @@ riemann( uflx_w = uflx_rho * qint_iv2; const amrex::Real rhoetot = regd + - 0.5 * rgd * (qint_iu * qint_iu + qint_iv1 * qint_iv1 + qint_iv2 * qint_iv2); + 0.5 * rgd * (qint_iu * qint_iu + qint_iv1 * qint_iv1 + qint_iv2 * qint_iv2) + + -0.5 * rgd * omega*omega*rad*rad; uflx_eden = qint_iu * (rhoetot + qint_gdpres); uflx_eint = qint_iu * regd; } @@ -214,7 +221,11 @@ laxfriedrich_flux( amrex::Real& uflx_v, amrex::Real& uflx_w, amrex::Real& uflx_eden, - amrex::Real& uflx_eint) + amrex::Real& uflx_eint, + amrex::Real omegal, + amrex::Real radl, + amrex::Real omegar, + amrex::Real radr) { const amrex::Real wsmall = std::numeric_limits::min(); @@ -240,8 +251,8 @@ laxfriedrich_flux( eos.RYP2E(rr, mfrac_r, pr, er); // rho e total - amrex::Real r_elt = rl * (el + 0.5 * (ul * ul + vl * vl + v2l * v2l)); - amrex::Real r_ert = rr * (er + 0.5 * (ur * ur + vr * vr + v2r * v2r)); + amrex::Real r_elt = rl * (el + 0.5 * (ul * ul + vl * vl + v2l * v2l) - 0.5*omegal*omegal*radl*radl); + amrex::Real r_ert = rr * (er + 0.5 * (ur * ur + vr * vr + v2r * v2r) - 0.5*omegar*omegar*radr*radr); const amrex::Real wl = amrex::max(wsmall, cl * rl); const amrex::Real wr = amrex::max(wsmall, cr * rr); diff --git a/Source/RotSource.cpp b/Source/RotSource.cpp index 599261710..af7e25631 100644 --- a/Source/RotSource.cpp +++ b/Source/RotSource.cpp @@ -58,9 +58,9 @@ PeleC::fill_rot_source( amrex::Real omega = (srf_on==1)?srf_omega:mrf_omega; amrex::Real axis = (srf_on==1)?srf_axis:mrf_axis; - auto prob_lo = geom[lev].ProbLoArray(); - auto prob_hi = geom[lev].ProbHiArray(); - const auto dx = geom[lev].CellSizeArray(); + auto prob_lo = geom.ProbLoArray(); + auto prob_hi = geom.ProbHiArray(); + const auto dx = geom.CellSizeArray(); //need a check to prevent mrf in 2 and 1d //read a vector instead for mrf_axis_x and y diff --git a/Source/Setup.cpp b/Source/Setup.cpp index ae82a2331..8be991508 100644 --- a/Source/Setup.cpp +++ b/Source/Setup.cpp @@ -723,4 +723,9 @@ PeleC::set_active_sources() src_list.push_back(mms_src); } #endif + + if(do_srf || do_mrf) + { + src_list.push_back(rot_src); + } } diff --git a/Source/Sources.cpp b/Source/Sources.cpp index 6bc7d2e92..8cc2f3bc3 100644 --- a/Source/Sources.cpp +++ b/Source/Sources.cpp @@ -47,6 +47,10 @@ PeleC::construct_old_source( construct_old_mms_source(time); break; #endif + + case rot_src: + construct_old_rot_source(time, dt); + break; } // end switch } @@ -95,6 +99,11 @@ PeleC::construct_new_source( construct_new_mms_source(time); break; #endif + + case rot_src: + construct_new_rot_source(time); + break; + } // end switch } diff --git a/Source/Utilities.H b/Source/Utilities.H index 173b4853d..29a328803 100644 --- a/Source/Utilities.H +++ b/Source/Utilities.H @@ -38,6 +38,8 @@ pc_rst_int_e( const bool allow_negative_energy, const bool dual_energy_update_E_from_e, const amrex::Real dual_energy_eta2, + amrex::Real omega, + amrex::Real rad const int /*verbose*/) { if (std::is_same< @@ -52,7 +54,7 @@ pc_rst_int_e( const amrex::Real Up = S(i, j, k, UMX) * rhoInv; const amrex::Real Vp = S(i, j, k, UMY) * rhoInv; const amrex::Real Wp = S(i, j, k, UMZ) * rhoInv; - const amrex::Real ke = 0.5 * (Up * Up + Vp * Vp + Wp * Wp); + const amrex::Real ke = 0.5 * (Up * Up + Vp * Vp + Wp * Wp) - 0.5*omega*omega*rad*rad; const amrex::Real eden = S(i, j, k, UEDEN) * rhoInv; const amrex::Real eos_state_T = constants::very_small_num(); amrex::Real eos_state_massfrac[NUM_SPECIES] = {0.0}; @@ -109,7 +111,7 @@ pc_rst_int_e( const amrex::Real Up = S(i, j, k, UMX) * rhoInv; const amrex::Real Vp = S(i, j, k, UMY) * rhoInv; const amrex::Real Wp = S(i, j, k, UMZ) * rhoInv; - const amrex::Real ke = 0.5 * (Up * Up + Vp * Vp + Wp * Wp); + const amrex::Real ke = 0.5 * (Up * Up + Vp * Vp + Wp * Wp) - 0.5*omega*omega*rad*rad; if ( S(i, j, k, UEDEN) < (S(i, j, k, URHO) * std::numeric_limits::min())) { @@ -170,7 +172,7 @@ pc_rst_int_e( const amrex::Real Up = S(i, j, k, UMX) * rhoInv; const amrex::Real Vp = S(i, j, k, UMY) * rhoInv; const amrex::Real Wp = S(i, j, k, UMZ) * rhoInv; - const amrex::Real ke = 0.5 * (Up * Up + Vp * Vp + Wp * Wp); + const amrex::Real ke = 0.5 * (Up * Up + Vp * Vp + Wp * Wp) - 0.5*omega*omega*rad*rad; S(i, j, k, UEINT) = S(i, j, k, UEDEN) - rho * ke; } } @@ -184,7 +186,8 @@ pc_ctoprim( const int k, amrex::Array4 const& u, amrex::Array4 const& q, - amrex::Array4 const& qa) + amrex::Array4 const& qa, + amrex::Real omega, amrex::Real rad) { auto eos = pele::physics::PhysicsType::eos(); const amrex::Real rho = u(i, j, k, URHO); @@ -192,7 +195,8 @@ pc_ctoprim( const amrex::Real vx = u(i, j, k, UMX) * rhoinv; const amrex::Real vy = u(i, j, k, UMY) * rhoinv; const amrex::Real vz = u(i, j, k, UMZ) * rhoinv; - const amrex::Real kineng = 0.5 * rho * (vx * vx + vy * vy + vz * vz); + const amrex::Real kineng = 0.5 * rho * (vx * vx + vy * vy + vz * vz) + - 0.5*rho*omega*omega*rad*rad; q(i, j, k, QRHO) = rho; q(i, j, k, QU) = vx; q(i, j, k, QV) = vy; diff --git a/Submodules/PelePhysics b/Submodules/PelePhysics index 87f970625..1bea1bfe0 160000 --- a/Submodules/PelePhysics +++ b/Submodules/PelePhysics @@ -1 +1 @@ -Subproject commit 87f970625571901e4444a7d4610dc65f71c50a3f +Subproject commit 1bea1bfe0b0ae24ef8c86148af3ca7cc04c0815c From 40cd1d2bd113bc1f205018ddb93d90d4e991de7b Mon Sep 17 00:00:00 2001 From: hsitaram Date: Tue, 28 May 2024 16:36:10 -0600 Subject: [PATCH 04/46] build almost working --- Source/Diffusion.cpp | 19 +- Source/Godunov.H | 3 + Source/InitEB.cpp | 941 +++++++++--------- Source/MOL.H | 6 +- Source/MOL.cpp | 153 +-- Source/Params/_cpp_parameters | 42 +- Source/Params/param_includes/pelec_defaults.H | 21 +- Source/Params/param_includes/pelec_params.H | 21 +- Source/Params/param_includes/pelec_queries.H | 21 +- Source/PeleC.H | 9 +- Source/Riemann.H | 16 +- Source/RotSource.cpp | 161 ++- Source/Setup.cpp | 2 +- Source/Sources.cpp | 2 +- Source/Utilities.H | 8 +- 15 files changed, 700 insertions(+), 725 deletions(-) diff --git a/Source/Diffusion.cpp b/Source/Diffusion.cpp index ff1ad1467..ba8d3f949 100644 --- a/Source/Diffusion.cpp +++ b/Source/Diffusion.cpp @@ -16,10 +16,10 @@ PeleC::getMOLSrcTerm( return; } - int rf=(mrf_on | srf_on); - amrex::Real omega = (srf_on==1)?srf_omega:mrf_omega; - amrex::Real axis = (srf_on==1)?srf_axis:mrf_axis; - amrex::GpuArray axis_loc={mrf_axis_x,mrf_axis_y,mrf_axis_z}; + int using_rf=do_rf; + amrex::Real omega = rf_omega; + int axisdir = rf_axis; + amrex::GpuArray axis_loc={rf_axis_x,rf_axis_y,rf_axis_z}; auto prob_lo = geom.ProbLoArray(); auto prob_hi = geom.ProbHiArray(); const auto dx = geom.CellSizeArray(); @@ -67,7 +67,6 @@ PeleC::getMOLSrcTerm( */ const int nCompTr = dComp_lambda + 1; - const amrex::GpuArray dx = geom.CellSizeArray(); const amrex::GpuArray dxinv = geom.InvCellSizeArray(); @@ -136,18 +135,18 @@ PeleC::getMOLSrcTerm( amrex::ParallelFor( gbox, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - if(rf) + if(using_rf) { - RealVect r(0.0,0.0,0.0); + amrex::RealVect r(0.0,0.0,0.0); r[0]=prob_lo[0]+(i+0.5)*dx[0]-axis_loc[0]; r[1]=prob_lo[1]+(j+0.5)*dx[1]-axis_loc[1]; r[2]=prob_lo[2]+(k+0.5)*dx[2]-axis_loc[2]; - rad=std::sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2]); + amrex::Real rad=std::sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2]); pc_ctoprim(i, j, k, sar, qar, qauxar,omega,rad); } else { - pc_ctoprim(i, j, k, sar, qar, qauxar,0.0,0.0); + pc_ctoprim(i, j, k, sar, qar, qauxar); } }); @@ -352,7 +351,7 @@ PeleC::getMOLSrcTerm( BL_PROFILE("PeleC::pc_hyp_mol_flux()"); pc_compute_hyp_mol_flux( cbox, qar, qauxar, flx, area_arr, plm_iorder, use_laxf_flux, - flags.array(mfi)); + flags.array(mfi),prob_lo,dx,axis_loc,omega,axisdir,using_rf); } // Filter hydro fluxes diff --git a/Source/Godunov.H b/Source/Godunov.H index 2432770a0..474c04e3b 100644 --- a/Source/Godunov.H +++ b/Source/Godunov.H @@ -419,6 +419,9 @@ pc_cmpflx( const int bc_test_val = 1; amrex::Real dummy_flx[NUM_SPECIES] = {0.0}; + + //WIP: hard coding rotating frame stuff for now + //soon to be fixed riemann( rhol, ul, vl, v2l, pl, spl, rhor, ur, vr, v2r, pr, spr, bc_test_val, cav, ustar, flx(i, j, k, URHO), dummy_flx, flx(i, j, k, f_idx[0]), diff --git a/Source/InitEB.cpp b/Source/InitEB.cpp index fbbab43b2..58e58c2da 100644 --- a/Source/InitEB.cpp +++ b/Source/InitEB.cpp @@ -44,7 +44,8 @@ PeleC::initialize_eb2_structs() const amrex::GpuArray dx = geom.CellSizeArray(); const amrex::GpuArray prob_lo = geom.ProbLoArray(); - amrex::Real axis = (srf_on==1)?srf_axis:mrf_axis; + amrex::Real axis = rf_axis; + amrex::Real omega = rf_omega; const auto& ebfactory = dynamic_cast(Factory()); @@ -61,8 +62,8 @@ PeleC::initialize_eb2_structs() sv_eb_flux.resize(vfrac.local_size()); sv_eb_bcval.resize(vfrac.local_size()); - amrex::GpuArray axis_loc={mrf_axis_x,mrf_axis_y,mrf_axis_z}; - amrex::Real srfdist2=srf_dist*srf_dist; + amrex::GpuArray axis_loc={rf_axis_x,rf_axis_y,rf_axis_z}; + amrex::Real rfdist2=rf_rad*rf_rad; auto const& flags = ebfactory.getMultiEBCellFlagFab(); @@ -145,554 +146,574 @@ PeleC::initialize_eb2_structs() tbox, dx, ncutcells, sv_eb_bndry_geom[iLocal].data(), ncutcells, sv_eb_bndry_grad_stencil[iLocal].data()); } else if (bgs == 1) { - pc_fill_bndry_grad_stencil_ls( - tbox, dx, ncutcells, sv_eb_bndry_geom[iLocal].data(), ncutcells, - flags.array(mfi), sv_eb_bndry_grad_stencil[iLocal].data()); - } else { - amrex::Print() - << "Unknown or unspecified boundary gradient stencil type:" << bgs - << std::endl; - amrex::Abort(); - } - - if (eb_noslip or eb_isothermal) { - amrex::Box sbox = amrex::grow(tbox, -3); - pc_check_bndry_grad_stencil( - sbox, ncutcells, flags.array(mfi), - sv_eb_bndry_grad_stencil[iLocal].data()); - } - - sv_eb_flux[iLocal].define(sv_eb_bndry_grad_stencil[iLocal], NVAR); - sv_eb_bcval[iLocal].define(sv_eb_bndry_grad_stencil[iLocal], QVAR); - - if (eb_isothermal && (diffuse_temp || diffuse_enth)) { - sv_eb_bcval[iLocal].setVal(eb_boundary_T, QTEMP); - } - if (eb_noslip && diffuse_vel) { - if(do_mrf || do_srf) - { - amrex::Real xloc=prob_lo[0]+(iv[0]+0.5)*dx[0]+bcent(iv, 0)*0.5*dx[0]; - amrex::Real yloc=prob_lo[1]+(iv[1]+0.5)*dx[1]+bcent(iv, 1)*0.5*dx[1]; - amrex::Real zloc=prob_lo[2]+(iv[2]+0.5)*dx[2]+bcent(iv, 2)*0.5*dx[2]; - - RealVect r(0.0,0.0,0.0); - RealVect w(0.0,0.0,0.0); - - r[0]=xloc-axis_loc[0]; - r[1]=yloc-axis_loc[1]; - r[2]=zloc-axis_loc[2]; - - amrex::Real rmag2=r[0]*r[0]+r[1]*r[1]+r[2]*r[2]; + pc_fill_bndry_grad_stencil_ls( + tbox, dx, ncutcells, sv_eb_bndry_geom[iLocal].data(), ncutcells, + flags.array(mfi), sv_eb_bndry_grad_stencil[iLocal].data()); + } else { + amrex::Print() + << "Unknown or unspecified boundary gradient stencil type:" << bgs + << std::endl; + amrex::Abort(); + } - if(rmag2 > srf_dist2) - { + if (eb_noslip or eb_isothermal) { + amrex::Box sbox = amrex::grow(tbox, -3); + pc_check_bndry_grad_stencil( + sbox, ncutcells, flags.array(mfi), + sv_eb_bndry_grad_stencil[iLocal].data()); + } - w[axis]=omega; - RealVect w_cross_r = w.crossProduct(r); + sv_eb_flux[iLocal].define(sv_eb_bndry_grad_stencil[iLocal], NVAR); + sv_eb_bcval[iLocal].define(sv_eb_bndry_grad_stencil[iLocal], QVAR); - sv_eb_bcval[iLocal].setVal(-w_cross_r[0], QU); - sv_eb_bcval[iLocal].setVal(-w_cross_r[1], QV); - sv_eb_bcval[iLocal].setVal(-w_cross_r[2], QW); + if (eb_isothermal && (diffuse_temp || diffuse_enth)) { + sv_eb_bcval[iLocal].setVal(eb_boundary_T, QTEMP); + } + if (eb_noslip && diffuse_vel) { + + if(do_rf) + { + auto u_bcval = sv_eb_bcval[iLocal].dataPtr(QU); + auto v_bcval = sv_eb_bcval[iLocal].dataPtr(QV); + auto w_bcval = sv_eb_bcval[iLocal].dataPtr(QW); + auto sten = sv_eb_bndry_geom[iLocal].data(); + if (ncutcells > 0) + { + amrex::ParallelFor(ncutcells, [=] AMREX_GPU_DEVICE(int L) { + const auto &iv = sten[L].iv; + + amrex::Real xloc=prob_lo[0]; + //+(iv[0]+0.5)*dx[0]; + //+sten[L].eb_centroid[0]*0.5*dx[0]; + amrex::Real yloc=prob_lo[1]; + //+(iv[1]+0.5)*dx[1]; + //+sten[L].eb_centroid[1]*0.5*dx[1]; + amrex::Real zloc=prob_lo[2]; + //+(iv[2]+0.5)*dx[2]; + //+sten[L].eb_centroid[2]*0.5*dx[2]; + + amrex::RealVect r(0.0,0.0,0.0); + amrex::RealVect w(0.0,0.0,0.0); + + r[0]=xloc-axis_loc[0]; + r[1]=yloc-axis_loc[1]; + r[2]=zloc-axis_loc[2]; + + amrex::Real rmag2=r[0]*r[0]+r[1]*r[1]+r[2]*r[2]; + + if(rmag2 > rfdist2) + { + w[axis]=omega; + amrex::RealVect w_cross_r = w.crossProduct(r); + + u_bcval[L]=-w_cross_r[0]; + v_bcval[L]=-w_cross_r[1]; + w_bcval[L]=-w_cross_r[2]; + } + else + { + u_bcval[L]=0.0; + v_bcval[L]=0.0; + w_bcval[L]=0.0; + } + }); + } } else { sv_eb_bcval[iLocal].setVal(0, QU, AMREX_SPACEDIM); } } - else - { - sv_eb_bcval[iLocal].setVal(0, QU, AMREX_SPACEDIM); - } } else { amrex::Print() << "unknown (or multivalued) fab type" << std::endl; amrex::Abort(); } - } + } - // Second pass over dirs and fabs to fill flux interpolation stencils - for (int dir = 0; dir < AMREX_SPACEDIM; ++dir) { - flux_interp_stencil[dir].resize(vfrac.local_size()); + // Second pass over dirs and fabs to fill flux interpolation stencils + for (int dir = 0; dir < AMREX_SPACEDIM; ++dir) { + flux_interp_stencil[dir].resize(vfrac.local_size()); #ifdef AMREX_USE_OMP #pragma omp parallel if (amrex::Gpu::notInLaunchRegion()) #endif - for (amrex::MFIter mfi(vfrac, false); mfi.isValid(); ++mfi) { - const amrex::Box tbox = mfi.growntilebox(numGrow()); - const auto& flagfab = flags[mfi]; - const amrex::FabType typ = flagfab.getType(tbox); - const int iLocal = mfi.LocalIndex(); - - if (typ == amrex::FabType::singlevalued) { - auto const& flag_arr = flagfab.const_array(); - const auto afrac_arr = (*areafrac[dir])[mfi].const_array(); - const auto facecent_arr = (*facecent[dir])[mfi].const_array(); - const auto fbox = amrex::surroundingNodes(tbox, dir); - const auto nallfaces = static_cast(fbox.numPts()); - amrex::Gpu::DeviceVector cutfaces_offset(nallfaces, 0); - auto* d_cutface_offset = cutfaces_offset.data(); - const auto ncutfaces = amrex::Scan::PrefixSum( - nallfaces, - [=] AMREX_GPU_DEVICE(int iface) -> int { - const auto iv = fbox.atOffset(iface); + for (amrex::MFIter mfi(vfrac, false); mfi.isValid(); ++mfi) { + const amrex::Box tbox = mfi.growntilebox(numGrow()); + const auto& flagfab = flags[mfi]; + const amrex::FabType typ = flagfab.getType(tbox); + const int iLocal = mfi.LocalIndex(); + + if (typ == amrex::FabType::singlevalued) { + auto const& flag_arr = flagfab.const_array(); + const auto afrac_arr = (*areafrac[dir])[mfi].const_array(); + const auto facecent_arr = (*facecent[dir])[mfi].const_array(); + const auto fbox = amrex::surroundingNodes(tbox, dir); + const auto nallfaces = static_cast(fbox.numPts()); + amrex::Gpu::DeviceVector cutfaces_offset(nallfaces, 0); + auto* d_cutface_offset = cutfaces_offset.data(); + const auto ncutfaces = amrex::Scan::PrefixSum( + nallfaces, + [=] AMREX_GPU_DEVICE(int iface) -> int { + const auto iv = fbox.atOffset(iface); + const bool covered_cells = + flag_arr(iv).isCovered() && + flag_arr(iv - amrex::IntVect::TheDimensionVector(dir)) + .isCovered(); + return static_cast((afrac_arr(iv) < 1.0) && (!covered_cells)); + }, + [=] AMREX_GPU_DEVICE(int iface, int const& x) { + d_cutface_offset[iface] = x; + }, + amrex::Scan::Type::exclusive, amrex::Scan::retSum); + + if (ncutfaces > 0) { + flux_interp_stencil[dir][iLocal].resize(ncutfaces); + auto* d_flux_interp_stencil = flux_interp_stencil[dir][iLocal].data(); + amrex::ParallelFor( + fbox, [=] AMREX_GPU_DEVICE( + int i, int j, int AMREX_D_PICK(, , k)) noexcept { + const amrex::IntVect iv(amrex::IntVect(AMREX_D_DECL(i, j, k))); const bool covered_cells = flag_arr(iv).isCovered() && flag_arr(iv - amrex::IntVect::TheDimensionVector(dir)) .isCovered(); - return static_cast((afrac_arr(iv) < 1.0) && (!covered_cells)); - }, - [=] AMREX_GPU_DEVICE(int iface, int const& x) { - d_cutface_offset[iface] = x; - }, - amrex::Scan::Type::exclusive, amrex::Scan::retSum); - - if (ncutfaces > 0) { - flux_interp_stencil[dir][iLocal].resize(ncutfaces); - auto* d_flux_interp_stencil = flux_interp_stencil[dir][iLocal].data(); - amrex::ParallelFor( - fbox, [=] AMREX_GPU_DEVICE( - int i, int j, int AMREX_D_PICK(, , k)) noexcept { - const amrex::IntVect iv(amrex::IntVect(AMREX_D_DECL(i, j, k))); - const bool covered_cells = - flag_arr(iv).isCovered() && - flag_arr(iv - amrex::IntVect::TheDimensionVector(dir)) - .isCovered(); - if ((afrac_arr(iv) < 1.0) && (!covered_cells)) { - const auto iface = fbox.index(iv); - const auto idx = d_cutface_offset[iface]; - d_flux_interp_stencil[idx].iv = iv; - } - }); - - pc_fill_flux_interp_stencil( - tbox, ncutfaces, facecent_arr, afrac_arr, d_flux_interp_stencil); - } - } else if ( - (typ != amrex::FabType::regular) && (typ != amrex::FabType::covered)) { - amrex::Abort("multi-valued flux interp stencil to be implemented"); + if ((afrac_arr(iv) < 1.0) && (!covered_cells)) { + const auto iface = fbox.index(iv); + const auto idx = d_cutface_offset[iface]; + d_flux_interp_stencil[idx].iv = iv; + } + }); + + pc_fill_flux_interp_stencil( + tbox, ncutfaces, facecent_arr, afrac_arr, d_flux_interp_stencil); } + } else if ( + (typ != amrex::FabType::regular) && (typ != amrex::FabType::covered)) { + amrex::Abort("multi-valued flux interp stencil to be implemented"); } } } +} - void - PeleC::define_body_state() - { - BL_PROFILE("PeleC::define_body_state()"); - - if (!eb_in_domain) { - return; - } +void +PeleC::define_body_state() +{ + BL_PROFILE("PeleC::define_body_state()"); - if (eb_zero_body_state) { - for (int n = 0; n < NVAR; ++n) { - body_state[n] = 0.0; + if (!eb_in_domain) { + return; } - body_state_set = true; - return; - } - // Scan over data and find a point in the fluid to use to - // set computable values in cells outside the domain - // We look for the lexicographically first valid point - if (!body_state_set) { - auto const& fact = - dynamic_cast(Factory()); - auto const& flags = fact.getMultiEBCellFlagFab(); - auto flag_arrays = flags.const_arrays(); - - amrex::MultiFab minIdxTmp(grids, dmap, 1, 0, amrex::MFInfo(), Factory()); - auto tmp_arrays = minIdxTmp.arrays(); - - const auto& dbox = geom.Domain(); - const long max_idx = dbox.numPts(); - - // function minimized at the first uncovered cell - amrex::ParallelFor( - minIdxTmp, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { - amrex::ignore_unused(k); - const amrex::IntVect iv(amrex::IntVect(AMREX_D_DECL(i, j, k))); - const long idx_masked = - flag_arrays[nbx](iv).isRegular() ? dbox.index(iv) : max_idx; - tmp_arrays[nbx](iv) = static_cast(idx_masked); - }); - amrex::Gpu::synchronize(); + if (eb_zero_body_state) { + for (int n = 0; n < NVAR; ++n) { + body_state[n] = 0.0; + } + body_state_set = true; + return; + } - // select the data at the first uncovered cell - const amrex::IntVect idx_min = minIdxTmp.minIndex(0); - const amrex::Box tgt_box{idx_min, idx_min}; - const amrex::MultiFab& S = get_new_data(State_Type); - for (int n = 0; n < NVAR; ++n) { - body_state[n] = S.min(tgt_box, n); + // Scan over data and find a point in the fluid to use to + // set computable values in cells outside the domain + // We look for the lexicographically first valid point + if (!body_state_set) { + auto const& fact = + dynamic_cast(Factory()); + auto const& flags = fact.getMultiEBCellFlagFab(); + auto flag_arrays = flags.const_arrays(); + + amrex::MultiFab minIdxTmp(grids, dmap, 1, 0, amrex::MFInfo(), Factory()); + auto tmp_arrays = minIdxTmp.arrays(); + + const auto& dbox = geom.Domain(); + const long max_idx = dbox.numPts(); + + // function minimized at the first uncovered cell + amrex::ParallelFor( + minIdxTmp, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { + amrex::ignore_unused(k); + const amrex::IntVect iv(amrex::IntVect(AMREX_D_DECL(i, j, k))); + const long idx_masked = + flag_arrays[nbx](iv).isRegular() ? dbox.index(iv) : max_idx; + tmp_arrays[nbx](iv) = static_cast(idx_masked); + }); + amrex::Gpu::synchronize(); + + // select the data at the first uncovered cell + const amrex::IntVect idx_min = minIdxTmp.minIndex(0); + const amrex::Box tgt_box{idx_min, idx_min}; + const amrex::MultiFab& S = get_new_data(State_Type); + for (int n = 0; n < NVAR; ++n) { + body_state[n] = S.min(tgt_box, n); + } + body_state_set = true; } - body_state_set = true; - } } void PeleC::set_body_state(amrex::MultiFab& S) { - BL_PROFILE("PeleC::set_body_state()"); + BL_PROFILE("PeleC::set_body_state()"); - if (!eb_in_domain) { - return; - } + if (!eb_in_domain) { + return; + } - if (!body_state_set) { - define_body_state(); - } + if (!body_state_set) { + define_body_state(); + } + + auto const& fact = dynamic_cast(Factory()); + auto const& flags = fact.getMultiEBCellFlagFab(); - auto const& fact = dynamic_cast(Factory()); - auto const& flags = fact.getMultiEBCellFlagFab(); - - auto const& sarrs = S.arrays(); - auto const& flagarrs = flags.const_arrays(); - auto const captured_body_state = body_state; - const amrex::IntVect ngs(0); - amrex::ParallelFor( - S, ngs, NVAR, - [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k, int n) noexcept { - pc_set_body_state( - i, j, k, n, flagarrs[nbx], captured_body_state, sarrs[nbx]); - }); - amrex::Gpu::synchronize(); + auto const& sarrs = S.arrays(); + auto const& flagarrs = flags.const_arrays(); + auto const captured_body_state = body_state; + const amrex::IntVect ngs(0); + amrex::ParallelFor( + S, ngs, NVAR, + [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k, int n) noexcept { + pc_set_body_state( + i, j, k, n, flagarrs[nbx], captured_body_state, sarrs[nbx]); + }); + amrex::Gpu::synchronize(); } // Sets up implicit function using EB2 infrastructure void initialize_EB2( - const amrex::Geometry& geom, - const int eb_max_level, - const int max_level, - const int coarsening, - const amrex::Vector& ref_ratio, - const amrex::IntVect& max_grid_size) + const amrex::Geometry& geom, + const int eb_max_level, + const int max_level, + const int coarsening, + const amrex::Vector& ref_ratio, + const amrex::IntVect& max_grid_size) { - BL_PROFILE("PeleC::initialize_EB2()"); - - amrex::Print() << "Initializing EB2" << std::endl; - amrex::ParmParse ppeb2("eb2"); - - std::string geom_type("all_regular"); - ppeb2.query("geom_type", geom_type); + BL_PROFILE("PeleC::initialize_EB2()"); + + amrex::Print() << "Initializing EB2" << std::endl; + amrex::ParmParse ppeb2("eb2"); + + std::string geom_type("all_regular"); + ppeb2.query("geom_type", geom_type); + + int max_coarsening_level = 0; + for (int lev = 0; lev < max_level; ++lev) { + // Since EB always coarsens by a factor of 2 + if (ref_ratio[lev] == 2) { + max_coarsening_level += 1; + } else if (ref_ratio[lev] == 4) { + max_coarsening_level += 2; + } else { + amrex::Abort("initalize_EB2: Refinement ratio must be 2 or 4"); + } + } - int max_coarsening_level = 0; - for (int lev = 0; lev < max_level; ++lev) { - // Since EB always coarsens by a factor of 2 - if (ref_ratio[lev] == 2) { - max_coarsening_level += 1; - } else if (ref_ratio[lev] == 4) { - max_coarsening_level += 2; + // Custom types defined here - all_regular, plane, sphere, etc, will get + // picked up by default (see AMReX_EB2.cpp around L100 ) + amrex::Vector amrex_defaults( + {"all_regular", "box", "cylinder", "plane", "sphere", "torus", "parser"}); + if (!(std::find(amrex_defaults.begin(), amrex_defaults.end(), geom_type) != + amrex_defaults.end())) { + std::unique_ptr geometry( + pele::pelec::Geometry::create(geom_type)); + geometry->build(geom, max_coarsening_level + coarsening); } else { - amrex::Abort("initalize_EB2: Refinement ratio must be 2 or 4"); + amrex::EB2::Build( + geom, max_coarsening_level + coarsening, + max_coarsening_level + coarsening); } - } - - // Custom types defined here - all_regular, plane, sphere, etc, will get - // picked up by default (see AMReX_EB2.cpp around L100 ) - amrex::Vector amrex_defaults( - {"all_regular", "box", "cylinder", "plane", "sphere", "torus", "parser"}); - if (!(std::find(amrex_defaults.begin(), amrex_defaults.end(), geom_type) != - amrex_defaults.end())) { - std::unique_ptr geometry( - pele::pelec::Geometry::create(geom_type)); - geometry->build(geom, max_coarsening_level + coarsening); - } else { - amrex::EB2::Build( - geom, max_coarsening_level + coarsening, - max_coarsening_level + coarsening); - } - // Add finer level, might be inconsistent with the coarser level created - // above. - if (geom_type != "chkfile") { - amrex::EB2::addFineLevels(max_level - eb_max_level); - } + // Add finer level, might be inconsistent with the coarser level created + // above. + if (geom_type != "chkfile") { + amrex::EB2::addFineLevels(max_level - eb_max_level); + } - bool write_chk_geom = false; - ppeb2.query("write_chk_geom", write_chk_geom); - if (write_chk_geom) { - const auto& is = amrex::EB2::IndexSpace::top(); - const auto& eb_level = is.getLevel(geom); - std::string chkfile = "chk_geom"; - ppeb2.query("chkfile", chkfile); + bool write_chk_geom = false; + ppeb2.query("write_chk_geom", write_chk_geom); + if (write_chk_geom) { + const auto& is = amrex::EB2::IndexSpace::top(); + const auto& eb_level = is.getLevel(geom); + std::string chkfile = "chk_geom"; + ppeb2.query("chkfile", chkfile); - eb_level.write_to_chkpt_file( - chkfile, amrex::EB2::ExtendDomainFace(), max_grid_size[0]); - } + eb_level.write_to_chkpt_file( + chkfile, amrex::EB2::ExtendDomainFace(), max_grid_size[0]); + } } void PeleC::initialize_signed_distance() { - BL_PROFILE("PeleC::initialize_signed_distance()"); - if (level == 0) { - const auto& ebfactory = - dynamic_cast(Factory()); - signed_dist_0.define(grids, dmap, 1, 1, amrex::MFInfo(), ebfactory); - - // Estimate the maximum distance we need in terms of level 0 dx: - auto extentFactor = static_cast(parent->nErrorBuf(0)); - for (int ilev = 1; ilev <= parent->maxLevel(); ++ilev) { - extentFactor += static_cast(parent->nErrorBuf(ilev)) / - std::pow( - static_cast(parent->refRatio(ilev - 1)[0]), - static_cast(ilev)); + BL_PROFILE("PeleC::initialize_signed_distance()"); + if (level == 0) { + const auto& ebfactory = + dynamic_cast(Factory()); + signed_dist_0.define(grids, dmap, 1, 1, amrex::MFInfo(), ebfactory); + + // Estimate the maximum distance we need in terms of level 0 dx: + auto extentFactor = static_cast(parent->nErrorBuf(0)); + for (int ilev = 1; ilev <= parent->maxLevel(); ++ilev) { + extentFactor += static_cast(parent->nErrorBuf(ilev)) / + std::pow( + static_cast(parent->refRatio(ilev - 1)[0]), + static_cast(ilev)); + } + extentFactor *= tagging_parm->detag_eb_factor; + + amrex::MultiFab signDist( + convert(grids, amrex::IntVect::TheUnitVector()), dmap, 1, 1, + amrex::MFInfo(), ebfactory); + amrex::FillSignedDistance(signDist, true); + + const auto& sd_ccs = signed_dist_0.arrays(); + const auto& sd_nds = signDist.const_arrays(); + const amrex::IntVect ngs(signed_dist_0.nGrow()); + amrex::ParallelFor( + signed_dist_0, ngs, + [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { + const auto& sd_cc = sd_ccs[nbx]; + const auto& sd_nd = sd_nds[nbx]; + const amrex::Real fac = AMREX_D_PICK(0.5, 0.25, 0.125); + sd_cc(i, j, k) = AMREX_D_TERM( + sd_nd(i, j, k) + sd_nd(i + 1, j, k), + +sd_nd(i, j + 1, k) + sd_nd(i + 1, j + 1, k), + +sd_nd(i, j, k + 1) + sd_nd(i + 1, j, k + 1) + + sd_nd(i, j + 1, k + 1) + sd_nd(i + 1, j + 1, k + 1)); + sd_cc(i, j, k) *= fac; + }); + amrex::Gpu::synchronize(); + + signed_dist_0.FillBoundary(parent->Geom(0).periodicity()); + extend_signed_distance(&signed_dist_0, extentFactor); } - extentFactor *= tagging_parm->detag_eb_factor; - - amrex::MultiFab signDist( - convert(grids, amrex::IntVect::TheUnitVector()), dmap, 1, 1, - amrex::MFInfo(), ebfactory); - amrex::FillSignedDistance(signDist, true); - - const auto& sd_ccs = signed_dist_0.arrays(); - const auto& sd_nds = signDist.const_arrays(); - const amrex::IntVect ngs(signed_dist_0.nGrow()); - amrex::ParallelFor( - signed_dist_0, ngs, - [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { - const auto& sd_cc = sd_ccs[nbx]; - const auto& sd_nd = sd_nds[nbx]; - const amrex::Real fac = AMREX_D_PICK(0.5, 0.25, 0.125); - sd_cc(i, j, k) = AMREX_D_TERM( - sd_nd(i, j, k) + sd_nd(i + 1, j, k), - +sd_nd(i, j + 1, k) + sd_nd(i + 1, j + 1, k), - +sd_nd(i, j, k + 1) + sd_nd(i + 1, j, k + 1) + - sd_nd(i, j + 1, k + 1) + sd_nd(i + 1, j + 1, k + 1)); - sd_cc(i, j, k) *= fac; - }); - amrex::Gpu::synchronize(); - - signed_dist_0.FillBoundary(parent->Geom(0).periodicity()); - extend_signed_distance(&signed_dist_0, extentFactor); - } } void PeleC::eb_distance(const int lev, amrex::MultiFab& signDistLev) { - BL_PROFILE("PeleC::eb_distance()"); - if (lev == 0) { - amrex::MultiFab::Copy(signDistLev, signed_dist_0, 0, 0, 1, 0); - return; - } - - // A pair of MF to hold crse & fine dist data - amrex::Array, 2> MFpair; + BL_PROFILE("PeleC::eb_distance()"); + if (lev == 0) { + amrex::MultiFab::Copy(signDistLev, signed_dist_0, 0, 0, 1, 0); + return; + } - // dummy bcs - amrex::Vector bcrec_dummy(1); - for (int dir = 0; dir < AMREX_SPACEDIM; dir++) { - bcrec_dummy[0].setLo(dir, amrex::BCType::int_dir); - bcrec_dummy[0].setHi(dir, amrex::BCType::int_dir); - } + // A pair of MF to hold crse & fine dist data + amrex::Array, 2> MFpair; - // Interpolate on successive levels up to lev - const auto& pc_0lev = getLevel(0); - for (int ilev = 1; ilev <= lev; ++ilev) { - - // Use MF EB interp - auto& interpolater = amrex::eb_mf_lincc_interp; - - // Get signDist on coarsen fineBA - const auto& pc_ilev = getLevel(ilev); - const auto& grids_ilev = pc_ilev.grids; - const auto& dmap_ilev = pc_ilev.DistributionMap(); - amrex::BoxArray coarsenBA(grids_ilev.size()); - for (int j = 0, N = static_cast(coarsenBA.size()); j < N; ++j) { - coarsenBA.set( - j, interpolater.CoarseBox(grids_ilev[j], parent->refRatio(ilev - 1))); + // dummy bcs + amrex::Vector bcrec_dummy(1); + for (int dir = 0; dir < AMREX_SPACEDIM; dir++) { + bcrec_dummy[0].setLo(dir, amrex::BCType::int_dir); + bcrec_dummy[0].setHi(dir, amrex::BCType::int_dir); } - amrex::MultiFab coarsenSignDist(coarsenBA, dmap_ilev, 1, 0); - coarsenSignDist.setVal(0.0); - const amrex::MultiFab* crseSignDist = - (ilev == 1) ? &pc_0lev.signed_dist_0 : MFpair[0].get(); - coarsenSignDist.ParallelCopy(*crseSignDist, 0, 0, 1); - - // Interpolate on current ilev - amrex::MultiFab* currentSignDist; - if (ilev < lev) { - const auto& ebfactory = - dynamic_cast(pc_ilev.Factory()); - MFpair[1] = std::make_unique( - grids_ilev, dmap_ilev, 1, 0, amrex::MFInfo(), ebfactory); - } - currentSignDist = (ilev == lev) ? &signDistLev : MFpair[1].get(); - interpolater.interp( - coarsenSignDist, 0, *currentSignDist, 0, 1, amrex::IntVect(0), - parent->Geom(ilev - 1), parent->Geom(ilev), parent->Geom(ilev).Domain(), - parent->refRatio(ilev - 1), {bcrec_dummy}, 0); + // Interpolate on successive levels up to lev + const auto& pc_0lev = getLevel(0); + for (int ilev = 1; ilev <= lev; ++ilev) { + + // Use MF EB interp + auto& interpolater = amrex::eb_mf_lincc_interp; + + // Get signDist on coarsen fineBA + const auto& pc_ilev = getLevel(ilev); + const auto& grids_ilev = pc_ilev.grids; + const auto& dmap_ilev = pc_ilev.DistributionMap(); + amrex::BoxArray coarsenBA(grids_ilev.size()); + for (int j = 0, N = static_cast(coarsenBA.size()); j < N; ++j) { + coarsenBA.set( + j, interpolater.CoarseBox(grids_ilev[j], parent->refRatio(ilev - 1))); + } + amrex::MultiFab coarsenSignDist(coarsenBA, dmap_ilev, 1, 0); + coarsenSignDist.setVal(0.0); + const amrex::MultiFab* crseSignDist = + (ilev == 1) ? &pc_0lev.signed_dist_0 : MFpair[0].get(); + coarsenSignDist.ParallelCopy(*crseSignDist, 0, 0, 1); + + // Interpolate on current ilev + amrex::MultiFab* currentSignDist; + if (ilev < lev) { + const auto& ebfactory = + dynamic_cast(pc_ilev.Factory()); + MFpair[1] = std::make_unique( + grids_ilev, dmap_ilev, 1, 0, amrex::MFInfo(), ebfactory); + } + currentSignDist = (ilev == lev) ? &signDistLev : MFpair[1].get(); + + interpolater.interp( + coarsenSignDist, 0, *currentSignDist, 0, 1, amrex::IntVect(0), + parent->Geom(ilev - 1), parent->Geom(ilev), parent->Geom(ilev).Domain(), + parent->refRatio(ilev - 1), {bcrec_dummy}, 0); - // Swap MFpair - if (ilev < lev) { - std::swap(MFpair[0], MFpair[1]); + // Swap MFpair + if (ilev < lev) { + std::swap(MFpair[0], MFpair[1]); + } } - } } // Extend the cell-centered based signed distance function void PeleC::extend_signed_distance( - amrex::MultiFab* signDist, amrex::Real extendFactor) + amrex::MultiFab* signDist, amrex::Real extendFactor) { - // This is a not-so-pretty piece of code that'll take AMReX cell-averaged - // signed distance and propagates it manually up to the point where we need to - // have it for derefining. - BL_PROFILE("PeleC::extend_signed_distance()"); - const auto geomdata = parent->Geom(0).data(); - amrex::Real maxSignedDist = signDist->max(0); - const auto& ebfactory = + // This is a not-so-pretty piece of code that'll take AMReX cell-averaged + // signed distance and propagates it manually up to the point where we need to + // have it for derefining. + BL_PROFILE("PeleC::extend_signed_distance()"); + const auto geomdata = parent->Geom(0).data(); + amrex::Real maxSignedDist = signDist->max(0); + const auto& ebfactory = dynamic_cast(signDist->Factory()); - const auto& flags = ebfactory.getMultiEBCellFlagFab(); - int nGrowFac = flags.nGrow() + 1; - - // First set the region far away at the max value we need - auto const& sd_ccs = signDist->arrays(); - const amrex::IntVect ngs(signDist->nGrow()); - amrex::ParallelFor( - *signDist, ngs, - [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { - const auto& sd_cc = sd_ccs[nbx]; - if (sd_cc(i, j, k) >= maxSignedDist - 1e-12) { - const amrex::Real* dx = geomdata.CellSize(); - sd_cc(i, j, k) = nGrowFac * dx[0] * extendFactor; - } - }); - amrex::Gpu::synchronize(); - - // Iteratively compute the distance function in boxes, propagating across - // boxes using ghost cells If needed, increase the number of loop to extend - // the reach of the distance function - const int nMaxLoop = 4; - for (int dloop = 1; dloop <= nMaxLoop; dloop++) { + const auto& flags = ebfactory.getMultiEBCellFlagFab(); + int nGrowFac = flags.nGrow() + 1; + + // First set the region far away at the max value we need + auto const& sd_ccs = signDist->arrays(); + const amrex::IntVect ngs(signDist->nGrow()); + amrex::ParallelFor( + *signDist, ngs, + [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { + const auto& sd_cc = sd_ccs[nbx]; + if (sd_cc(i, j, k) >= maxSignedDist - 1e-12) { + const amrex::Real* dx = geomdata.CellSize(); + sd_cc(i, j, k) = nGrowFac * dx[0] * extendFactor; + } + }); + amrex::Gpu::synchronize(); + + // Iteratively compute the distance function in boxes, propagating across + // boxes using ghost cells If needed, increase the number of loop to extend + // the reach of the distance function + const int nMaxLoop = 4; + for (int dloop = 1; dloop <= nMaxLoop; dloop++) { #ifdef AMREX_USE_OMP #pragma omp parallel if (amrex::Gpu::notInLaunchRegion()) #endif - for (amrex::MFIter mfi(*signDist, amrex::TilingIfNotGPU()); mfi.isValid(); - ++mfi) { - const amrex::Box& bx = mfi.tilebox(); - const amrex::Box& gbx = grow(bx, 1); - if (flags[mfi].getType(gbx) == amrex::FabType::covered) { - continue; - } - auto const& sd_cc = signDist->array(mfi); - ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - const auto glo = amrex::lbound(gbx); - const auto ghi = amrex::ubound(gbx); - const amrex::Real* dx = geomdata.CellSize(); - const amrex::Real extendedDist = dx[0] * extendFactor; - if (sd_cc(i, j, k) >= maxSignedDist - 1e-12) { - amrex::Real closestEBDist = 1e12; - for (int kk = glo.z; kk <= ghi.z; ++kk) { - for (int jj = glo.y; jj <= ghi.y; ++jj) { - for (int ii = glo.x; ii <= ghi.x; ++ii) { - if ((i != ii) || (j != jj) || (k != kk)) { - if (sd_cc(ii, jj, kk) > 0.0) { - const amrex::Real distToCell = std::sqrt(AMREX_D_TERM( - ((i - ii) * dx[0] * (i - ii) * dx[0]), - +((j - jj) * dx[1] * (j - jj) * dx[1]), - +((k - kk) * dx[2] * (k - kk) * dx[2]))); - const amrex::Real distToEB = distToCell + sd_cc(ii, jj, kk); - if (distToEB < closestEBDist) { - closestEBDist = distToEB; + for (amrex::MFIter mfi(*signDist, amrex::TilingIfNotGPU()); mfi.isValid(); + ++mfi) { + const amrex::Box& bx = mfi.tilebox(); + const amrex::Box& gbx = grow(bx, 1); + if (flags[mfi].getType(gbx) == amrex::FabType::covered) { + continue; + } + auto const& sd_cc = signDist->array(mfi); + ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + const auto glo = amrex::lbound(gbx); + const auto ghi = amrex::ubound(gbx); + const amrex::Real* dx = geomdata.CellSize(); + const amrex::Real extendedDist = dx[0] * extendFactor; + if (sd_cc(i, j, k) >= maxSignedDist - 1e-12) { + amrex::Real closestEBDist = 1e12; + for (int kk = glo.z; kk <= ghi.z; ++kk) { + for (int jj = glo.y; jj <= ghi.y; ++jj) { + for (int ii = glo.x; ii <= ghi.x; ++ii) { + if ((i != ii) || (j != jj) || (k != kk)) { + if (sd_cc(ii, jj, kk) > 0.0) { + const amrex::Real distToCell = std::sqrt(AMREX_D_TERM( + ((i - ii) * dx[0] * (i - ii) * dx[0]), + +((j - jj) * dx[1] * (j - jj) * dx[1]), + +((k - kk) * dx[2] * (k - kk) * dx[2]))); + const amrex::Real distToEB = distToCell + sd_cc(ii, jj, kk); + if (distToEB < closestEBDist) { + closestEBDist = distToEB; + } + } + } + } + } + } + if (closestEBDist < 1e10) { + sd_cc(i, j, k) = closestEBDist; + } else { + sd_cc(i, j, k) = extendedDist; } - } } - } - } - } - if (closestEBDist < 1e10) { - sd_cc(i, j, k) = closestEBDist; - } else { - sd_cc(i, j, k) = extendedDist; - } + }); } - }); + signDist->FillBoundary(parent->Geom(0).periodicity()); } - signDist->FillBoundary(parent->Geom(0).periodicity()); - } } void PeleC::InitialRedistribution( - const amrex::Real time, - const amrex::Vector bcs, - amrex::MultiFab& S_new) + const amrex::Real time, + const amrex::Vector bcs, + amrex::MultiFab& S_new) { - BL_PROFILE("PeleC::InitialRedistribution()"); + BL_PROFILE("PeleC::InitialRedistribution()"); - // Don't redistribute if there is no EB or if the redistribution type is - // anything other than StateRedist - if ((!eb_in_domain) || (redistribution_type != "StateRedist")) { - return; - } + // Don't redistribute if there is no EB or if the redistribution type is + // anything other than StateRedist + if ((!eb_in_domain) || (redistribution_type != "StateRedist")) { + return; + } - if (verbose != 0) { - amrex::Print() << "Doing initial redistribution... " << std::endl; - } + if (verbose != 0) { + amrex::Print() << "Doing initial redistribution... " << std::endl; + } - // Initial data are set at new time step - amrex::MultiFab tmp( - grids, dmap, S_new.nComp(), numGrow(), amrex::MFInfo(), Factory()); - - amrex::MultiFab::Copy(tmp, S_new, 0, 0, S_new.nComp(), S_new.nGrow()); - FillPatch(*this, tmp, numGrow(), time, State_Type, 0, S_new.nComp()); - EB_set_covered(tmp, 0.0); - - amrex::Gpu::DeviceVector d_bcs(bcs.size()); - amrex::Gpu::copy( - amrex::Gpu::hostToDevice, bcs.begin(), bcs.end(), d_bcs.begin()); - - for (amrex::MFIter mfi(S_new, amrex::TilingIfNotGPU()); mfi.isValid(); - ++mfi) { - const amrex::Box& bx = mfi.validbox(); - - auto const& fact = - dynamic_cast(S_new.Factory()); - - auto const& flags = fact.getMultiEBCellFlagFab()[mfi]; - amrex::Array4 const& flag_arr = - flags.const_array(); - - if ( - (flags.getType(amrex::grow(bx, 1)) != amrex::FabType::covered) && - (flags.getType(amrex::grow(bx, 1)) != amrex::FabType::regular)) { - amrex::Array4 AMREX_D_DECL(fcx, fcy, fcz), ccc, - AMREX_D_DECL(apx, apy, apz); - - AMREX_D_TERM(fcx = facecent[0]->const_array(mfi); - , fcy = facecent[1]->const_array(mfi); - , fcz = facecent[2]->const_array(mfi);); - - ccc = fact.getCentroid().const_array(mfi); - - AMREX_D_TERM(apx = areafrac[0]->const_array(mfi); - , apy = areafrac[1]->const_array(mfi); - , apz = areafrac[2]->const_array(mfi);); - - const auto& sarr = S_new.array(mfi); - const auto& tarr = tmp.array(mfi); - ApplyInitialRedistribution( - bx, NVAR, sarr, tarr, flag_arr, AMREX_D_DECL(apx, apy, apz), - vfrac.const_array(mfi), AMREX_D_DECL(fcx, fcy, fcz), ccc, - d_bcs.dataPtr(), geom, redistribution_type, eb_srd_max_order); - - // Make sure rho is same as sum rhoY after redistribution - amrex::ParallelFor( - bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - amrex::Real drhoYsum = 0.0; - for (int n = 0; n < NUM_SPECIES; n++) { - drhoYsum += sarr(i, j, k, UFS + n) - tarr(i, j, k, UFS + n); - } - sarr(i, j, k, URHO) = tarr(i, j, k, URHO) + drhoYsum; - }); - amrex::ParallelFor( - bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - pc_check_initial_species(i, j, k, sarr); - }); + // Initial data are set at new time step + amrex::MultiFab tmp( + grids, dmap, S_new.nComp(), numGrow(), amrex::MFInfo(), Factory()); + + amrex::MultiFab::Copy(tmp, S_new, 0, 0, S_new.nComp(), S_new.nGrow()); + FillPatch(*this, tmp, numGrow(), time, State_Type, 0, S_new.nComp()); + EB_set_covered(tmp, 0.0); + + amrex::Gpu::DeviceVector d_bcs(bcs.size()); + amrex::Gpu::copy( + amrex::Gpu::hostToDevice, bcs.begin(), bcs.end(), d_bcs.begin()); + + for (amrex::MFIter mfi(S_new, amrex::TilingIfNotGPU()); mfi.isValid(); + ++mfi) { + const amrex::Box& bx = mfi.validbox(); + + auto const& fact = + dynamic_cast(S_new.Factory()); + + auto const& flags = fact.getMultiEBCellFlagFab()[mfi]; + amrex::Array4 const& flag_arr = + flags.const_array(); + + if ( + (flags.getType(amrex::grow(bx, 1)) != amrex::FabType::covered) && + (flags.getType(amrex::grow(bx, 1)) != amrex::FabType::regular)) { + amrex::Array4 AMREX_D_DECL(fcx, fcy, fcz), ccc, + AMREX_D_DECL(apx, apy, apz); + + AMREX_D_TERM(fcx = facecent[0]->const_array(mfi); + , fcy = facecent[1]->const_array(mfi); + , fcz = facecent[2]->const_array(mfi);); + + ccc = fact.getCentroid().const_array(mfi); + + AMREX_D_TERM(apx = areafrac[0]->const_array(mfi); + , apy = areafrac[1]->const_array(mfi); + , apz = areafrac[2]->const_array(mfi);); + + const auto& sarr = S_new.array(mfi); + const auto& tarr = tmp.array(mfi); + ApplyInitialRedistribution( + bx, NVAR, sarr, tarr, flag_arr, AMREX_D_DECL(apx, apy, apz), + vfrac.const_array(mfi), AMREX_D_DECL(fcx, fcy, fcz), ccc, + d_bcs.dataPtr(), geom, redistribution_type, eb_srd_max_order); + + // Make sure rho is same as sum rhoY after redistribution + amrex::ParallelFor( + bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + amrex::Real drhoYsum = 0.0; + for (int n = 0; n < NUM_SPECIES; n++) { + drhoYsum += sarr(i, j, k, UFS + n) - tarr(i, j, k, UFS + n); + } + sarr(i, j, k, URHO) = tarr(i, j, k, URHO) + drhoYsum; + }); + amrex::ParallelFor( + bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + pc_check_initial_species(i, j, k, sarr); + }); + } } - } - set_body_state(S_new); + set_body_state(S_new); } diff --git a/Source/MOL.H b/Source/MOL.H index 875a755bc..c64fd26fa 100644 --- a/Source/MOL.H +++ b/Source/MOL.H @@ -127,7 +127,11 @@ void pc_compute_hyp_mol_flux( area, const int mol_iorder, const bool use_laxf_flux, - const amrex::Array4& flags); + const amrex::Array4& flags, + const amrex::GpuArray plo, + const amrex::GpuArray dx, + const amrex::GpuArray axis_loc, + amrex::Real omega,int axisdir,int do_rf); void pc_compute_hyp_mol_flux_eb( const amrex::Box& cbox, diff --git a/Source/MOL.cpp b/Source/MOL.cpp index a373f263f..d4b8b4a33 100644 --- a/Source/MOL.cpp +++ b/Source/MOL.cpp @@ -12,10 +12,10 @@ pc_compute_hyp_mol_flux( const int mol_iorder, const bool use_laxf_flux, const amrex::Array4& flags, - const amrex::GpuArray plo, - const amrex::GpuArray dx, - const amrex::GpuArray axis_loc - amrex::Real omega,int do_rf) + const amrex::GpuArray plo, + const amrex::GpuArray dx, + const amrex::GpuArray axis_loc, + amrex::Real omega,int axisdir,int do_rf) { const int R_RHO = 0; const int R_UN = 1; @@ -26,16 +26,9 @@ pc_compute_hyp_mol_flux( const int R_Y = R_ADV + NUM_ADV; const int R_NUM = 5 + NUM_SPECIES + NUM_ADV + NUM_LIN + NUM_AUX; const int bc_test_val = 1; + int using_rotframe=do_rf; //local capture + amrex::Real omega_captured=omega; - RealVect r(0.0,0.0,0.0); - Real rad; - if(do_rf) - { - r[0]=prob_lo[0]+(i+0.5)*dx[0]-axis_loc[0]; - r[1]=prob_lo[1]+(j+0.5)*dx[1]-axis_loc[1]; - r[2]=prob_lo[2]+(k+0.5)*dx[2]-axis_loc[2]; - rad=std::sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2]); - } for (int dir = 0; dir < AMREX_SPACEDIM; dir++) { amrex::FArrayBox dq_fab(cbox, QVAR, amrex::The_Async_Arena()); @@ -144,96 +137,106 @@ pc_compute_hyp_mol_flux( amrex::Real flux_tmp[NVAR] = {0.0}; amrex::Real ustar = 0.0; + + amrex::RealVect r(0.0,0.0,0.0); + amrex::Real rad; + if(using_rotframe) + { + r[0]=plo[0]+(i+0.5)*dx[0]-axis_loc[0]; + r[1]=plo[1]+(j+0.5)*dx[1]-axis_loc[1]; + r[2]=plo[2]+(k+0.5)*dx[2]-axis_loc[2]; + rad=std::sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2]); + } if (!use_laxf_flux) { - amrex::Real qint_iu = 0.0, tmp1 = 0.0, tmp2 = 0.0, tmp3 = 0.0, - tmp4 = 0.0; - riemann( - qtempl[R_RHO], qtempl[R_UN], qtempl[R_UT1], qtempl[R_UT2], - qtempl[R_P], spl, qtempr[R_RHO], qtempr[R_UN], qtempr[R_UT1], - qtempr[R_UT2], qtempr[R_P], spr, bc_test_val, cavg, ustar, - flux_tmp[URHO], &flux_tmp[UFS], flux_tmp[f_idx[0]], - flux_tmp[f_idx[1]], flux_tmp[f_idx[2]], flux_tmp[UEDEN], - flux_tmp[UEINT], qint_iu, tmp1, tmp2, tmp3, tmp4,omega,rad); + amrex::Real qint_iu = 0.0, tmp1 = 0.0, tmp2 = 0.0, tmp3 = 0.0, + tmp4 = 0.0; + riemann( + qtempl[R_RHO], qtempl[R_UN], qtempl[R_UT1], qtempl[R_UT2], + qtempl[R_P], spl, qtempr[R_RHO], qtempr[R_UN], qtempr[R_UT1], + qtempr[R_UT2], qtempr[R_P], spr, bc_test_val, cavg, ustar, + flux_tmp[URHO], &flux_tmp[UFS], flux_tmp[f_idx[0]], + flux_tmp[f_idx[1]], flux_tmp[f_idx[2]], flux_tmp[UEDEN], + flux_tmp[UEINT], qint_iu, tmp1, tmp2, tmp3, tmp4,omega_captured,rad); #if NUM_ADV > 0 - for (int n = 0; n < NUM_ADV; n++) { - pc_cmpflx_passive( - ustar, flux_tmp[URHO], qtempl[R_ADV + n], qtempr[R_ADV + n], - flux_tmp[UFA + n]); - } + for (int n = 0; n < NUM_ADV; n++) { + pc_cmpflx_passive( + ustar, flux_tmp[URHO], qtempl[R_ADV + n], qtempr[R_ADV + n], + flux_tmp[UFA + n]); + } #endif #if NUM_AUX > 0 - for (int n = 0; n < NUM_AUX; n++) { - pc_cmpflx_passive( - ustar, flux_tmp[URHO], qtempl[R_AUX + n], qtempr[R_AUX + n], - flux_tmp[UFX + n]); - } + for (int n = 0; n < NUM_AUX; n++) { + pc_cmpflx_passive( + ustar, flux_tmp[URHO], qtempl[R_AUX + n], qtempr[R_AUX + n], + flux_tmp[UFX + n]); + } #endif #if NUM_LIN > 0 - for (int n = 0; n < NUM_LIN; n++) { - pc_cmpflx_passive( - ustar, qint_iu, qtempl[R_LIN + n], qtempr[R_LIN + n], - flux_tmp[ULIN + n]); - } + for (int n = 0; n < NUM_LIN; n++) { + pc_cmpflx_passive( + ustar, qint_iu, qtempl[R_LIN + n], qtempr[R_LIN + n], + flux_tmp[ULIN + n]); + } #endif } else { - amrex::Real maxeigval = 0.0; - laxfriedrich_flux( - qtempl[R_RHO], qtempl[R_UN], qtempl[R_UT1], qtempl[R_UT2], - qtempl[R_P], spl, qtempr[R_RHO], qtempr[R_UN], qtempr[R_UT1], - qtempr[R_UT2], qtempr[R_P], spr, bc_test_val, cavg, ustar, - maxeigval, flux_tmp[URHO], &flux_tmp[UFS], flux_tmp[f_idx[0]], - flux_tmp[f_idx[1]], flux_tmp[f_idx[2]], flux_tmp[UEDEN], - flux_tmp[UEINT],omega,rad); + amrex::Real maxeigval = 0.0; + laxfriedrich_flux( + qtempl[R_RHO], qtempl[R_UN], qtempl[R_UT1], qtempl[R_UT2], + qtempl[R_P], spl, qtempr[R_RHO], qtempr[R_UN], qtempr[R_UT1], + qtempr[R_UT2], qtempr[R_P], spr, bc_test_val, cavg, ustar, + maxeigval, flux_tmp[URHO], &flux_tmp[UFS], flux_tmp[f_idx[0]], + flux_tmp[f_idx[1]], flux_tmp[f_idx[2]], flux_tmp[UEDEN], + flux_tmp[UEINT],omega_captured,rad); #if NUM_ADV > 0 - for (int n = 0; n < NUM_ADV; n++) { - pc_lax_cmpflx_passive( - qtempl[R_UN], qtempr[R_UN], qtempl[R_RHO], qtempr[R_RHO], - qtempl[R_ADV + n], qtempr[R_ADV + n], maxeigval, - flux_tmp[UFA + n]); - } + for (int n = 0; n < NUM_ADV; n++) { + pc_lax_cmpflx_passive( + qtempl[R_UN], qtempr[R_UN], qtempl[R_RHO], qtempr[R_RHO], + qtempl[R_ADV + n], qtempr[R_ADV + n], maxeigval, + flux_tmp[UFA + n]); + } #endif #if NUM_AUX > 0 - for (int n = 0; n < NUM_AUX; n++) { - pc_lax_cmpflx_passive( - qtempl[R_UN], qtempr[R_UN], qtempl[R_RHO], qtempr[R_RHO], - qtempl[R_AUX + n], qtempr[R_AUX + n], maxeigval, - flux_tmp[UFX + n]); - } + for (int n = 0; n < NUM_AUX; n++) { + pc_lax_cmpflx_passive( + qtempl[R_UN], qtempr[R_UN], qtempl[R_RHO], qtempr[R_RHO], + qtempl[R_AUX + n], qtempr[R_AUX + n], maxeigval, + flux_tmp[UFX + n]); + } #endif #if NUM_LIN > 0 - for (int n = 0; n < NUM_LIN; n++) { - pc_lax_cmpflx_passive( - qtempl[R_UN], qtempr[R_UN], 1., 1., qtempl[R_LIN + n], - qtempr[R_LIN + n], maxeigval, flux_tmp[ULIN + n]); - } + for (int n = 0; n < NUM_LIN; n++) { + pc_lax_cmpflx_passive( + qtempl[R_UN], qtempr[R_UN], 1., 1., qtempl[R_LIN + n], + qtempr[R_LIN + n], maxeigval, flux_tmp[ULIN + n]); + } #endif } flux_tmp[UTEMP] = 0.0; for (int ivar = 0; ivar < NVAR; ivar++) { - flx[dir](iv, ivar) += flux_tmp[ivar] * area[dir](i, j, k); + flx[dir](iv, ivar) += flux_tmp[ivar] * area[dir](i, j, k); } - }); + }); } } void pc_compute_hyp_mol_flux_eb( - const amrex::Box& cbox, - const amrex::Array4& q, - const amrex::GpuArray& dx, - const EBBndryGeom* ebg, - const int /*Nebg*/, - amrex::Real* ebflux, - const int nebflux) + const amrex::Box& cbox, + const amrex::Array4& q, + const amrex::GpuArray& dx, + const EBBndryGeom* ebg, + const int /*Nebg*/, + amrex::Real* ebflux, + const int nebflux) { - const int nextra = 0; + const int nextra = 0; - const amrex::Real full_area = AMREX_D_PICK(1.0, dx[0], dx[0] * dx[1]); - const amrex::Box bxg = amrex::grow(cbox, nextra - 1); + const amrex::Real full_area = AMREX_D_PICK(1.0, dx[0], dx[0] * dx[1]); + const amrex::Box bxg = amrex::grow(cbox, nextra - 1); - amrex::ParallelFor(nebflux, [=] AMREX_GPU_DEVICE(int L) { + amrex::ParallelFor(nebflux, [=] AMREX_GPU_DEVICE(int L) { const amrex::IntVect& iv = ebg[L].iv; if (bxg.contains(iv)) { amrex::Real ebnorm[AMREX_SPACEDIM] = {AMREX_D_DECL( diff --git a/Source/Params/_cpp_parameters b/Source/Params/_cpp_parameters index 0b11febc7..dcedd4b1b 100644 --- a/Source/Params/_cpp_parameters +++ b/Source/Params/_cpp_parameters @@ -147,39 +147,23 @@ zl_ext_bc_type string "" # if we are doing an external +z boundary condition, who do we interpret it? zr_ext_bc_type string "" -#use multi-reference frame -do_mrf bool false +#use rotational frame (rf) +do_rf bool false -#mrf rotational speed -mrf_omega Real 0.0 +#rf rotational speed +rf_omega Real 0.0 -#mrf axis -mrf_axis int 2 +#rf axis +rf_axis int 2 -#mrf locations -mrf_axis_x Real 0.0 -mrf_axis_y Real 0.0 -mrf_axis_z Real 0.0 +#rf locations +rf_axis_x Real 0.0 +rf_axis_y Real 0.0 +rf_axis_z Real 0.0 -#mrf zone radius -mrf_rad Real 0.0 - -#use multi-reference frame -do_srf bool false - -#mrf rotational speed -srf_omega Real 0.0 - -#mrf axis -srf_axis int 2 - -#srf locations -srf_axis_x Real 0.0 -srf_axis_y Real 0.0 -srf_axis_z Real 0.0 - -#srf cut off distance -srf_dist Real 0.0 +#rf radius beyond which +#impose rotational velocity bc +rf_rad Real 0.0 #----------------------------------------------------------------------------- # category: diffusion diff --git a/Source/Params/param_includes/pelec_defaults.H b/Source/Params/param_includes/pelec_defaults.H index 970c5fc96..78cafb852 100644 --- a/Source/Params/param_includes/pelec_defaults.H +++ b/Source/Params/param_includes/pelec_defaults.H @@ -43,20 +43,13 @@ std::string PeleC::yl_ext_bc_type; std::string PeleC::yr_ext_bc_type; std::string PeleC::zl_ext_bc_type; std::string PeleC::zr_ext_bc_type; -bool PeleC::do_mrf = false; -amrex::Real PeleC::mrf_omega = 0.0; -int PeleC::mrf_axis = 2; -amrex::Real PeleC::mrf_axis_x = 0.0; -amrex::Real PeleC::mrf_axis_y = 0.0; -amrex::Real PeleC::mrf_axis_z = 0.0; -amrex::Real PeleC::mrf_rad = 0.0; -bool PeleC::do_srf = false; -amrex::Real PeleC::srf_omega = 0.0; -int PeleC::srf_axis = 2; -amrex::Real PeleC::srf_axis_x = 0.0; -amrex::Real PeleC::srf_axis_y = 0.0; -amrex::Real PeleC::srf_axis_z = 0.0; -amrex::Real PeleC::srf_dist = 0.0; +bool PeleC::do_rf = false; +amrex::Real PeleC::rf_omega = 0.0; +int PeleC::rf_axis = 2; +amrex::Real PeleC::rf_axis_x = 0.0; +amrex::Real PeleC::rf_axis_y = 0.0; +amrex::Real PeleC::rf_axis_z = 0.0; +amrex::Real PeleC::rf_rad = 0.0; bool PeleC::diffuse_temp = false; bool PeleC::diffuse_enth = false; bool PeleC::diffuse_spec = false; diff --git a/Source/Params/param_includes/pelec_params.H b/Source/Params/param_includes/pelec_params.H index b01b7b374..f00934147 100644 --- a/Source/Params/param_includes/pelec_params.H +++ b/Source/Params/param_includes/pelec_params.H @@ -43,20 +43,13 @@ static std::string yl_ext_bc_type; static std::string yr_ext_bc_type; static std::string zl_ext_bc_type; static std::string zr_ext_bc_type; -static bool do_mrf; -static amrex::Real mrf_omega; -static int mrf_axis; -static amrex::Real mrf_axis_x; -static amrex::Real mrf_axis_y; -static amrex::Real mrf_axis_z; -static amrex::Real mrf_rad; -static bool do_srf; -static amrex::Real srf_omega; -static int srf_axis; -static amrex::Real srf_axis_x; -static amrex::Real srf_axis_y; -static amrex::Real srf_axis_z; -static amrex::Real srf_dist; +static bool do_rf; +static amrex::Real rf_omega; +static int rf_axis; +static amrex::Real rf_axis_x; +static amrex::Real rf_axis_y; +static amrex::Real rf_axis_z; +static amrex::Real rf_rad; static bool diffuse_temp; static bool diffuse_enth; static bool diffuse_spec; diff --git a/Source/Params/param_includes/pelec_queries.H b/Source/Params/param_includes/pelec_queries.H index 673be8032..0d1d8cbf4 100644 --- a/Source/Params/param_includes/pelec_queries.H +++ b/Source/Params/param_includes/pelec_queries.H @@ -49,20 +49,13 @@ pp.query("yl_ext_bc_type", yl_ext_bc_type); pp.query("yr_ext_bc_type", yr_ext_bc_type); pp.query("zl_ext_bc_type", zl_ext_bc_type); pp.query("zr_ext_bc_type", zr_ext_bc_type); -pp.query("do_mrf", do_mrf); -pp.query("mrf_omega", mrf_omega); -pp.query("mrf_axis", mrf_axis); -pp.query("mrf_axis_x", mrf_axis_x); -pp.query("mrf_axis_y", mrf_axis_y); -pp.query("mrf_axis_z", mrf_axis_z); -pp.query("mrf_rad", mrf_rad); -pp.query("do_srf", do_srf); -pp.query("srf_omega", srf_omega); -pp.query("srf_axis", srf_axis); -pp.query("srf_axis_x", srf_axis_x); -pp.query("srf_axis_y", srf_axis_y); -pp.query("srf_axis_z", srf_axis_z); -pp.query("srf_dist", srf_dist); +pp.query("do_rf", do_rf); +pp.query("rf_omega", rf_omega); +pp.query("rf_axis", rf_axis); +pp.query("rf_axis_x", rf_axis_x); +pp.query("rf_axis_y", rf_axis_y); +pp.query("rf_axis_z", rf_axis_z); +pp.query("rf_rad", rf_rad); pp.query("diffuse_temp", diffuse_temp); pp.query("diffuse_enth", diffuse_enth); pp.query("diffuse_spec", diffuse_spec); diff --git a/Source/PeleC.H b/Source/PeleC.H index f56e7e1fd..e11d00193 100644 --- a/Source/PeleC.H +++ b/Source/PeleC.H @@ -41,7 +41,6 @@ enum sources { #ifdef PELE_USE_MASA mms_src, #endif - rot_src, num_src }; @@ -379,7 +378,13 @@ public: void construct_old_rot_source(amrex::Real time, amrex::Real dt); void construct_new_rot_source(amrex::Real time, amrex::Real dt); - + + void fill_rot_source( + const amrex::MultiFab& state_old, + const amrex::MultiFab& state_new, + amrex::MultiFab& forcing_src, + int ng); + void getLESTerm( amrex::Real time, amrex::Real dt, diff --git a/Source/Riemann.H b/Source/Riemann.H index 16a8fdd4e..150203c64 100644 --- a/Source/Riemann.H +++ b/Source/Riemann.H @@ -34,10 +34,10 @@ riemann( amrex::Real& qint_iv2, amrex::Real& qint_gdpres, amrex::Real& qint_gdgame, - amrex::Real omegal, - amrex::Real radl, - amrex::Real omegar, - amrex::Real radr) + amrex::Real omegal=0.0, + amrex::Real radl=0.0, + amrex::Real omegar=0.0, + amrex::Real radr=0.0) { const amrex::Real wsmall = std::numeric_limits::min(); @@ -222,10 +222,10 @@ laxfriedrich_flux( amrex::Real& uflx_w, amrex::Real& uflx_eden, amrex::Real& uflx_eint, - amrex::Real omegal, - amrex::Real radl, - amrex::Real omegar, - amrex::Real radr) + amrex::Real omegal=0.0, + amrex::Real radl=0.0, + amrex::Real omegar=0.0, + amrex::Real radr=0.0) { const amrex::Real wsmall = std::numeric_limits::min(); diff --git a/Source/RotSource.cpp b/Source/RotSource.cpp index af7e25631..effd13d8b 100644 --- a/Source/RotSource.cpp +++ b/Source/RotSource.cpp @@ -14,13 +14,11 @@ PeleC::construct_old_rot_source(amrex::Real /*time*/, amrex::Real /*dt*/) old_sources[rot_src]->setVal(0.0); - if (!do_mrf && !do_srf) { - return; + if (do_rf) + { + fill_rot_source(S_old, S_old, *old_sources[rot_src], ng); + old_sources[rot_src]->FillBoundary(geom.periodicity()); } - - fill_rot_source(S_old, S_old, *old_sources[rot_src], ng); - - old_sources[rot_src]->FillBoundary(geom.periodicity()); } void @@ -33,97 +31,76 @@ PeleC::construct_new_rot_source(amrex::Real /*time*/, amrex::Real /*dt*/) new_sources[rot_src]->setVal(0.0); - if (!do_mrf && !do_srf) { - return; + if (do_rf) + { + fill_rot_source(S_old, S_new, *new_sources[rot_src], ng); } - - fill_rot_source(S_old, S_new, *new_sources[rot_src], ng); } void PeleC::fill_rot_source( - const amrex::MultiFab& state_old - /*unused*/, - const amrex::MultiFab& state_new, - amrex::MultiFab& rot_src, - int ng) + const amrex::MultiFab& state_old + /*unused*/, + const amrex::MultiFab& state_new, + amrex::MultiFab& rot_src, + int ng) { - auto const& fact = + auto const& fact = dynamic_cast(state_old.Factory()); - auto const& flags = fact.getMultiEBCellFlagFab(); - - amrex::Real r_mrf=mrf_rad; - int mrf_on=do_mrf; - int srf_on=do_srf; - amrex::Real omega = (srf_on==1)?srf_omega:mrf_omega; - amrex::Real axis = (srf_on==1)?srf_axis:mrf_axis; - - auto prob_lo = geom.ProbLoArray(); - auto prob_hi = geom.ProbHiArray(); - const auto dx = geom.CellSizeArray(); - - //need a check to prevent mrf in 2 and 1d - //read a vector instead for mrf_axis_x and y - amrex::GpuArray axis_loc={mrf_axis_x,mrf_axis_y,mrf_axis_z}; - - auto const& sarrs = state_new.const_arrays(); - auto const& srcs = mrf_src.arrays(); - auto const& flagarrs = flags.const_arrays(); - const amrex::IntVect ngs(ng); - amrex::ParallelFor( - mrf_src, ngs, axis, r_mrf, mrf_on, srf_on, omega, - [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { - - if (!flagarrs[nbx](i, j, k).isCovered()) - { - const auto& sarr = sarrs[nbx]; - const auto& src = srcs[nbx]; - - RealVect r(0.0,0.0,0.0); - RealVect w(0.0,0.0,0.0); - RealVect v(0.0,0.0,0.0); - - r[0]=prob_lo[0]+(i+0.5)*dx[0]-axis_loc[0]; - r[1]=prob_lo[1]+(j+0.5)*dx[1]-axis_loc[1]; - r[2]=prob_lo[2]+(k+0.5)*dx[2]-axis_loc[2]; - - w[axis]=omega; - - if(mrf_on) - { - t1dir=(axis+1)%AMREX_SPACEDIM; - t2dir=(axis+2)%AMREX_SPACEDIM; - rmag=std::sqrt(std::pow(r[t1dir],2.0)+std::pow(r[t2dir],2.0)); - if(rmag < r_mrf) - { - v[0]=sarr(i, j, k, UMX)/sarr(i, j, k, URHO); - v[1]=sarr(i, j, k, UMY)/sarr(i, j, k, URHO); - v[2]=sarr(i, j, k, UMZ)/sarr(i, j, k, URHO); - - RealVect w_cross_v = w.crossProduct(v); - //multi-reference frame case - src(i, j, k, UMX) = -sarr(i,j,k,URHO)*w_cross_v[0]; - src(i, j, k, UMY) = -sarr(i,j,k,URHO)*w_cross_v[1]; - src(i, j, k, UMZ) = -sarr(i,j,k,URHO)*w_cross_v[2]; - } - } - if(srf_on) - { - v[0]=sarr(i, j, k, UMX)/sarr(i, j, k, URHO); - v[1]=sarr(i, j, k, UMY)/sarr(i, j, k, URHO); - v[2]=sarr(i, j, k, UMZ)/sarr(i, j, k, URHO); - - //non-inertial frame case - RealVect w_cross_v = w.crossProduct(v); - RealVect w_cross_r = w.crossProduct(r); - RealVect w_cross_w_cross_r=w.crossProduct(w_cross_r); - - src(i, j, k, UMX) = -sarr(i,j,k,URHO)*(2.0*w_cross_v[0]+w_cross_w_cross_r[0]); - src(i, j, k, UMY) = -sarr(i,j,k,URHO)*(2.0*w_cross_v[1]+w_cross_w_cross_r[1]); - src(i, j, k, UMZ) = -sarr(i,j,k,URHO)*(2.0*w_cross_v[2]+w_cross_w_cross_r[2]); - } - } - }); - - amrex::Gpu::synchronize(); + auto const& flags = fact.getMultiEBCellFlagFab(); + + int rf_on=do_rf; + amrex::Real omega = rf_omega; + amrex::Real axis = rf_axis; + + auto prob_lo = geom.ProbLoArray(); + auto prob_hi = geom.ProbHiArray(); + const auto dx = geom.CellSizeArray(); + + //need a check to prevent mrf in 2 and 1d + //read a vector instead for mrf_axis_x and y + amrex::GpuArray axis_loc={rf_axis_x,rf_axis_y,rf_axis_z}; + + auto const& sarrs = state_new.const_arrays(); + auto const& srcs = rot_src.arrays(); + auto const& flagarrs = flags.const_arrays(); + const amrex::IntVect ngs(ng); + amrex::ParallelFor( + rot_src, ngs, + [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { + + if (!flagarrs[nbx](i, j, k).isCovered()) + { + const auto& sarr = sarrs[nbx]; + const auto& src = srcs[nbx]; + + amrex::RealVect r(0.0,0.0,0.0); + amrex::RealVect w(0.0,0.0,0.0); + amrex::RealVect v(0.0,0.0,0.0); + + r[0]=prob_lo[0]+(i+0.5)*dx[0]-axis_loc[0]; + r[1]=prob_lo[1]+(j+0.5)*dx[1]-axis_loc[1]; + r[2]=prob_lo[2]+(k+0.5)*dx[2]-axis_loc[2]; + + w[axis]=omega; + + if(rf_on) + { + v[0]=sarr(i, j, k, UMX)/sarr(i, j, k, URHO); + v[1]=sarr(i, j, k, UMY)/sarr(i, j, k, URHO); + v[2]=sarr(i, j, k, UMZ)/sarr(i, j, k, URHO); + + //non-inertial frame case + amrex::RealVect w_cross_v = w.crossProduct(v); + amrex::RealVect w_cross_r = w.crossProduct(r); + amrex::RealVect w_cross_w_cross_r=w.crossProduct(w_cross_r); + + src(i, j, k, UMX) = -sarr(i,j,k,URHO)*(2.0*w_cross_v[0]+w_cross_w_cross_r[0]); + src(i, j, k, UMY) = -sarr(i,j,k,URHO)*(2.0*w_cross_v[1]+w_cross_w_cross_r[1]); + src(i, j, k, UMZ) = -sarr(i,j,k,URHO)*(2.0*w_cross_v[2]+w_cross_w_cross_r[2]); + } + } + }); + + amrex::Gpu::synchronize(); } diff --git a/Source/Setup.cpp b/Source/Setup.cpp index 8be991508..53d1fb760 100644 --- a/Source/Setup.cpp +++ b/Source/Setup.cpp @@ -724,7 +724,7 @@ PeleC::set_active_sources() } #endif - if(do_srf || do_mrf) + if(do_rf) { src_list.push_back(rot_src); } diff --git a/Source/Sources.cpp b/Source/Sources.cpp index 8cc2f3bc3..229e59c04 100644 --- a/Source/Sources.cpp +++ b/Source/Sources.cpp @@ -101,7 +101,7 @@ PeleC::construct_new_source( #endif case rot_src: - construct_new_rot_source(time); + construct_new_rot_source(time, dt); break; } // end switch diff --git a/Source/Utilities.H b/Source/Utilities.H index 29a328803..3b9e1e9c7 100644 --- a/Source/Utilities.H +++ b/Source/Utilities.H @@ -38,9 +38,9 @@ pc_rst_int_e( const bool allow_negative_energy, const bool dual_energy_update_E_from_e, const amrex::Real dual_energy_eta2, - amrex::Real omega, - amrex::Real rad - const int /*verbose*/) + amrex::Real omega=0.0, + amrex::Real rad=0.0, + const int verbose=0) { if (std::is_same< pele::physics::PhysicsType::eos_type, pele::physics::eos::SRK>::value) { @@ -187,7 +187,7 @@ pc_ctoprim( amrex::Array4 const& u, amrex::Array4 const& q, amrex::Array4 const& qa, - amrex::Real omega, amrex::Real rad) + amrex::Real omega=0.0, amrex::Real rad=0.0) { auto eos = pele::physics::PhysicsType::eos(); const amrex::Real rho = u(i, j, k, URHO); From 0bc7392ccae7cefc14626bf97fd121c1e8f38ef2 Mon Sep 17 00:00:00 2001 From: hsitaram Date: Tue, 28 May 2024 16:55:30 -0600 Subject: [PATCH 05/46] build working --- Source/Diffusion.cpp | 7 +++++-- Source/EB.H | 1 + Source/InitEB.cpp | 15 +++++---------- Source/MOL.cpp | 5 ++++- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/Source/Diffusion.cpp b/Source/Diffusion.cpp index ba8d3f949..995bcac43 100644 --- a/Source/Diffusion.cpp +++ b/Source/Diffusion.cpp @@ -141,8 +141,11 @@ PeleC::getMOLSrcTerm( r[0]=prob_lo[0]+(i+0.5)*dx[0]-axis_loc[0]; r[1]=prob_lo[1]+(j+0.5)*dx[1]-axis_loc[1]; r[2]=prob_lo[2]+(k+0.5)*dx[2]-axis_loc[2]; - amrex::Real rad=std::sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2]); - pc_ctoprim(i, j, k, sar, qar, qauxar,omega,rad); + + amrex::Real rad=r[0]*r[0]+r[1]*r[1]+r[2]*r[2]; + rad -= r[axisdir]*r[axisdir]; //only in-plane + rad = std::sqrt(rad); + pc_ctoprim(i, j, k, sar, qar, qauxar,omega, rad); } else { diff --git a/Source/EB.H b/Source/EB.H index 4c3d3ee45..58b8710fe 100644 --- a/Source/EB.H +++ b/Source/EB.H @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include diff --git a/Source/InitEB.cpp b/Source/InitEB.cpp index 58e58c2da..e55d1e8a5 100644 --- a/Source/InitEB.cpp +++ b/Source/InitEB.cpp @@ -41,7 +41,7 @@ PeleC::initialize_eb2_structs() std::is_standard_layout::value, "EBBndryGeom is not standard layout"); - const amrex::GpuArray dx = geom.CellSizeArray(); + const amrex::GpuArray dxlev = geom.CellSizeArray(); const amrex::GpuArray prob_lo = geom.ProbLoArray(); amrex::Real axis = rf_axis; @@ -182,15 +182,9 @@ PeleC::initialize_eb2_structs() amrex::ParallelFor(ncutcells, [=] AMREX_GPU_DEVICE(int L) { const auto &iv = sten[L].iv; - amrex::Real xloc=prob_lo[0]; - //+(iv[0]+0.5)*dx[0]; - //+sten[L].eb_centroid[0]*0.5*dx[0]; - amrex::Real yloc=prob_lo[1]; - //+(iv[1]+0.5)*dx[1]; - //+sten[L].eb_centroid[1]*0.5*dx[1]; - amrex::Real zloc=prob_lo[2]; - //+(iv[2]+0.5)*dx[2]; - //+sten[L].eb_centroid[2]*0.5*dx[2]; + amrex::Real xloc=prob_lo[0] + (iv[0]+0.5)*dxlev[0] + sten[L].eb_centroid[0]*0.5*dxlev[0]; + amrex::Real yloc=prob_lo[1] + (iv[1]+0.5)*dxlev[1] + sten[L].eb_centroid[1]*0.5*dxlev[1]; + amrex::Real zloc=prob_lo[2] + (iv[2]+0.5)*dxlev[2] + sten[L].eb_centroid[2]*0.5*dxlev[2]; amrex::RealVect r(0.0,0.0,0.0); amrex::RealVect w(0.0,0.0,0.0); @@ -200,6 +194,7 @@ PeleC::initialize_eb2_structs() r[2]=zloc-axis_loc[2]; amrex::Real rmag2=r[0]*r[0]+r[1]*r[1]+r[2]*r[2]; + rmag2 -= r[axis]*r[axis]; //only in plane if(rmag2 > rfdist2) { diff --git a/Source/MOL.cpp b/Source/MOL.cpp index d4b8b4a33..d5101d647 100644 --- a/Source/MOL.cpp +++ b/Source/MOL.cpp @@ -27,6 +27,7 @@ pc_compute_hyp_mol_flux( const int R_NUM = 5 + NUM_SPECIES + NUM_ADV + NUM_LIN + NUM_AUX; const int bc_test_val = 1; int using_rotframe=do_rf; //local capture + int axisdir_captured=axisdir; amrex::Real omega_captured=omega; @@ -145,7 +146,9 @@ pc_compute_hyp_mol_flux( r[0]=plo[0]+(i+0.5)*dx[0]-axis_loc[0]; r[1]=plo[1]+(j+0.5)*dx[1]-axis_loc[1]; r[2]=plo[2]+(k+0.5)*dx[2]-axis_loc[2]; - rad=std::sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2]); + rad=r[0]*r[0]+r[1]*r[1]+r[2]*r[2]; + rad-=r[axisdir_captured]*r[axisdir_captured]; + rad=std::sqrt(rad); } if (!use_laxf_flux) { From da57af089c5d728a00ecf53851a27ac5704ecb1f Mon Sep 17 00:00:00 2001 From: hsitaram Date: Wed, 29 May 2024 08:53:14 -0600 Subject: [PATCH 06/46] bug in riemann solve, pass left and right radii --- Source/MOL.cpp | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/Source/MOL.cpp b/Source/MOL.cpp index d5101d647..b28411013 100644 --- a/Source/MOL.cpp +++ b/Source/MOL.cpp @@ -29,6 +29,8 @@ pc_compute_hyp_mol_flux( int using_rotframe=do_rf; //local capture int axisdir_captured=axisdir; amrex::Real omega_captured=omega; + amrex::GpuArray axisloc_captured + ={axis_loc[0],axis_loc[1],axis_loc[2]}; for (int dir = 0; dir < AMREX_SPACEDIM; dir++) { @@ -140,15 +142,22 @@ pc_compute_hyp_mol_flux( amrex::Real ustar = 0.0; amrex::RealVect r(0.0,0.0,0.0); - amrex::Real rad; + amrex::Real radl,radr,rad; if(using_rotframe) { - r[0]=plo[0]+(i+0.5)*dx[0]-axis_loc[0]; - r[1]=plo[1]+(j+0.5)*dx[1]-axis_loc[1]; - r[2]=plo[2]+(k+0.5)*dx[2]-axis_loc[2]; + r[0]=plo[0]+(iv[0]+0.5)*dx[0]-axisloc_captured[0]; + r[1]=plo[1]+(iv[1]+0.5)*dx[1]-axisloc_captured[1]; + r[2]=plo[2]+(iv[2]+0.5)*dx[2]-axisloc_captured[2]; rad=r[0]*r[0]+r[1]*r[1]+r[2]*r[2]; rad-=r[axisdir_captured]*r[axisdir_captured]; - rad=std::sqrt(rad); + radr=std::sqrt(rad); + + r[0]=plo[0]+(ivm[0]+0.5)*dx[0]-axisloc_captured[0]; + r[1]=plo[1]+(ivm[1]+0.5)*dx[1]-axisloc_captured[1]; + r[2]=plo[2]+(ivm[2]+0.5)*dx[2]-axisloc_captured[2]; + rad=r[0]*r[0]+r[1]*r[1]+r[2]*r[2]; + rad-=r[axisdir_captured]*r[axisdir_captured]; + radl=std::sqrt(rad); } if (!use_laxf_flux) { @@ -160,7 +169,8 @@ pc_compute_hyp_mol_flux( qtempr[R_UT2], qtempr[R_P], spr, bc_test_val, cavg, ustar, flux_tmp[URHO], &flux_tmp[UFS], flux_tmp[f_idx[0]], flux_tmp[f_idx[1]], flux_tmp[f_idx[2]], flux_tmp[UEDEN], - flux_tmp[UEINT], qint_iu, tmp1, tmp2, tmp3, tmp4,omega_captured,rad); + flux_tmp[UEINT], qint_iu, tmp1, tmp2, tmp3, tmp4,omega_captured,radl, + omega_captured,radr); #if NUM_ADV > 0 for (int n = 0; n < NUM_ADV; n++) { pc_cmpflx_passive( @@ -190,7 +200,7 @@ pc_compute_hyp_mol_flux( qtempr[R_UT2], qtempr[R_P], spr, bc_test_val, cavg, ustar, maxeigval, flux_tmp[URHO], &flux_tmp[UFS], flux_tmp[f_idx[0]], flux_tmp[f_idx[1]], flux_tmp[f_idx[2]], flux_tmp[UEDEN], - flux_tmp[UEINT],omega_captured,rad); + flux_tmp[UEINT],omega_captured,radl,omega_captured,radr); #if NUM_ADV > 0 for (int n = 0; n < NUM_ADV; n++) { pc_lax_cmpflx_passive( From a87ebe09b7d224be52474c337dfac2ca62867f4c Mon Sep 17 00:00:00 2001 From: hsitaram Date: Mon, 24 Jun 2024 21:38:38 -0600 Subject: [PATCH 07/46] adding switches for rotational frame schemes --- Source/Derive.cpp | 8 ++ Source/Diffusion.cpp | 162 +++++++++++----------- Source/Hydro.H | 3 + Source/IO.cpp | 2 + Source/InitEB.cpp | 11 +- Source/PeleC.H | 2 +- Source/PeleC.cpp | 255 +++++++++++++++++++--------------- Source/React.cpp | 320 +++++++++++++++++++++++-------------------- Source/RotSource.cpp | 9 +- Source/Soot.cpp | 3 + Source/Utilities.H | 189 +++++++++++++++---------- 11 files changed, 538 insertions(+), 426 deletions(-) diff --git a/Source/Derive.cpp b/Source/Derive.cpp index f531f67c5..4cd422508 100644 --- a/Source/Derive.cpp +++ b/Source/Derive.cpp @@ -146,7 +146,13 @@ pc_dereint1( amrex::Real /*time*/, const int* /*bcrec*/, const int /*level*/) + //amrex::Real omega=0.0, + // amrex::Real rad=0.0 ) { + //FIXME:Hari S: + //cant seem to add omega and rad + //as derive functions are quite rigid + // // Compute internal energy from (rho E). auto const dat = datfab.const_array(); auto e = derfab.array(); @@ -158,6 +164,8 @@ pc_dereint1( const amrex::Real uz = dat(i, j, k, UMZ) * rhoInv; e(i, j, k) = dat(i, j, k, UEDEN) * rhoInv - 0.5 * (ux * ux + uy * uy + uz * uz); + //see Blazek, Appendix A3, Navier-Stokes in rotating frame of reference + //e(i,j,k)-=0.5*omega*omega*rad*rad; }); } diff --git a/Source/Diffusion.cpp b/Source/Diffusion.cpp index 995bcac43..eb4a63af2 100644 --- a/Source/Diffusion.cpp +++ b/Source/Diffusion.cpp @@ -18,11 +18,12 @@ PeleC::getMOLSrcTerm( int using_rf=do_rf; amrex::Real omega = rf_omega; - int axisdir = rf_axis; + int axis = rf_axis; amrex::GpuArray axis_loc={rf_axis_x,rf_axis_y,rf_axis_z}; auto prob_lo = geom.ProbLoArray(); auto prob_hi = geom.ProbHiArray(); const auto dx = geom.CellSizeArray(); + const auto geomdata = geom.data(); /* @@ -131,97 +132,90 @@ PeleC::getMOLSrcTerm( // Get primitives, Q, including (Y, T, p, rho) from conserved state { - BL_PROFILE("PeleC::ctoprim()"); - amrex::ParallelFor( - gbox, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + BL_PROFILE("PeleC::ctoprim()"); + amrex::ParallelFor( + gbox, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - if(using_rf) - { - amrex::RealVect r(0.0,0.0,0.0); - r[0]=prob_lo[0]+(i+0.5)*dx[0]-axis_loc[0]; - r[1]=prob_lo[1]+(j+0.5)*dx[1]-axis_loc[1]; - r[2]=prob_lo[2]+(k+0.5)*dx[2]-axis_loc[2]; - - amrex::Real rad=r[0]*r[0]+r[1]*r[1]+r[2]*r[2]; - rad -= r[axisdir]*r[axisdir]; //only in-plane - rad = std::sqrt(rad); - pc_ctoprim(i, j, k, sar, qar, qauxar,omega, rad); - } - else - { - pc_ctoprim(i, j, k, sar, qar, qauxar); - } + if(using_rf) + { + amrex::Real rad=get_rotaxis_dist(i,j,k,axis,axis_loc,geomdata); + pc_ctoprim(i, j, k, sar, qar, qauxar, omega, rad); + } + else + { + pc_ctoprim(i, j, k, sar, qar, qauxar); + } - }); + }); } // TODO deal with NSCBC /* - for (int dir = 0; dir < AMREX_SPACEDIM ; dir++) { - const amrex::Box& bxtmp = amrex::surroundingNodes(vbox,dir); - amrex::Box TestBox(bxtmp); - for(int d=0; d(), coe_mu, coe_xi, coe_lambda, - ltransparm); - }); + auto const& qar_yin = q.array(QFS); + auto const& qar_Tin = q.array(QTEMP); + auto const& qar_rhoin = q.array(QRHO); + auto const& coe_rhoD = coeff_cc.array(dComp_rhoD); + auto const& coe_mu = coeff_cc.array(dComp_mu); + auto const& coe_xi = coeff_cc.array(dComp_xi); + auto const& coe_lambda = coeff_cc.array(dComp_lambda); + BL_PROFILE("PeleC::get_transport_coeffs()"); + auto const* ltransparm = trans_parms.device_trans_parm(); + amrex::launch(gbox, [=] AMREX_GPU_DEVICE(amrex::Box const& tbx) { + auto trans = pele::physics::PhysicsType::transport(); + trans.get_transport_coeffs( + tbx, qar_yin, qar_Tin, qar_rhoin, coe_rhoD, + amrex::Array4(), coe_mu, coe_xi, coe_lambda, + ltransparm); + }); } amrex::FArrayBox flux_ec[AMREX_SPACEDIM]; const amrex::Box eboxes[AMREX_SPACEDIM] = {AMREX_D_DECL( - amrex::surroundingNodes(cbox, 0), amrex::surroundingNodes(cbox, 1), - amrex::surroundingNodes(cbox, 2))}; + amrex::surroundingNodes(cbox, 0), amrex::surroundingNodes(cbox, 1), + amrex::surroundingNodes(cbox, 2))}; amrex::GpuArray, AMREX_SPACEDIM> flx; const amrex::GpuArray< - const amrex::Array4, AMREX_SPACEDIM> - area_arr{{AMREX_D_DECL( - area[0].array(mfi), area[1].array(mfi), area[2].array(mfi))}}; + const amrex::Array4, AMREX_SPACEDIM> + area_arr{{AMREX_D_DECL( + area[0].array(mfi), area[1].array(mfi), area[2].array(mfi))}}; for (int dir = 0; dir < AMREX_SPACEDIM; dir++) { - flux_ec[dir].resize(eboxes[dir], NVAR, amrex::The_Async_Arena()); - flx[dir] = flux_ec[dir].array(); - setV(eboxes[dir], NVAR, flx[dir], 0); + flux_ec[dir].resize(eboxes[dir], NVAR, amrex::The_Async_Arena()); + flx[dir] = flux_ec[dir].array(); + setV(eboxes[dir], NVAR, flx[dir], 0); } amrex::FArrayBox Dfab(cbox, NVAR, amrex::The_Async_Arena()); @@ -230,14 +224,14 @@ PeleC::getMOLSrcTerm( auto flag_arr = flags.const_array(mfi); { - // Compute Extensive diffusion fluxes for X, Y, Z - BL_PROFILE("PeleC::diffusion_flux()"); - const bool l_transport_harmonic_mean = transport_harmonic_mean; - for (int dir = 0; dir < AMREX_SPACEDIM; dir++) { - if ( - (typ == amrex::FabType::singlevalued) || - (typ == amrex::FabType::regular)) { - amrex::ParallelFor( + // Compute Extensive diffusion fluxes for X, Y, Z + BL_PROFILE("PeleC::diffusion_flux()"); + const bool l_transport_harmonic_mean = transport_harmonic_mean; + for (int dir = 0; dir < AMREX_SPACEDIM; dir++) { + if ( + (typ == amrex::FabType::singlevalued) || + (typ == amrex::FabType::regular)) { + amrex::ParallelFor( eboxes[dir], [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { amrex::GpuArray cf = {0.0}; if ( @@ -354,7 +348,7 @@ PeleC::getMOLSrcTerm( BL_PROFILE("PeleC::pc_hyp_mol_flux()"); pc_compute_hyp_mol_flux( cbox, qar, qauxar, flx, area_arr, plm_iorder, use_laxf_flux, - flags.array(mfi),prob_lo,dx,axis_loc,omega,axisdir,using_rf); + flags.array(mfi),prob_lo,dx,axis_loc,omega,axis,using_rf); } // Filter hydro fluxes diff --git a/Source/Hydro.H b/Source/Hydro.H index c84d951b7..4da30a036 100644 --- a/Source/Hydro.H +++ b/Source/Hydro.H @@ -20,6 +20,9 @@ pc_srctoprim( amrex::Array4 const& src, amrex::Array4 const& srcq) { + //FIXME: + //Hari S: unsure how to incorporate rotational frames here + // Local loading Vars ==> Load once from global memory use multiple times const amrex::Real srcrho = src(i, j, k, URHO); const amrex::Real rhoinv = 1.0 / q(i, j, k, QRHO); diff --git a/Source/IO.cpp b/Source/IO.cpp index 090bb89d4..3d9798b98 100644 --- a/Source/IO.cpp +++ b/Source/IO.cpp @@ -725,6 +725,8 @@ void PeleC::initLevelDataFromPlt( const int lev, const std::string& dataPltFile, amrex::MultiFab& S_new) { + //FIXME: + //Hari S: not ready for rotational frames amrex::Print() << "Using data (rho, u, T, Y) from pltfile " << dataPltFile << std::endl; pele::physics::pltfilemanager::PltFileManager pltData(dataPltFile); diff --git a/Source/InitEB.cpp b/Source/InitEB.cpp index e55d1e8a5..0a1b82055 100644 --- a/Source/InitEB.cpp +++ b/Source/InitEB.cpp @@ -44,6 +44,8 @@ PeleC::initialize_eb2_structs() const amrex::GpuArray dxlev = geom.CellSizeArray(); const amrex::GpuArray prob_lo = geom.ProbLoArray(); + const amrex::GpuArray prob_hi = + geom.ProbHiArray(); amrex::Real axis = rf_axis; amrex::Real omega = rf_omega; @@ -172,7 +174,8 @@ PeleC::initialize_eb2_structs() if (eb_noslip && diffuse_vel) { if(do_rf) - { + { + //amrex::Print()<<"do_rf in init eb\n"; auto u_bcval = sv_eb_bcval[iLocal].dataPtr(QU); auto v_bcval = sv_eb_bcval[iLocal].dataPtr(QV); auto w_bcval = sv_eb_bcval[iLocal].dataPtr(QW); @@ -182,9 +185,9 @@ PeleC::initialize_eb2_structs() amrex::ParallelFor(ncutcells, [=] AMREX_GPU_DEVICE(int L) { const auto &iv = sten[L].iv; - amrex::Real xloc=prob_lo[0] + (iv[0]+0.5)*dxlev[0] + sten[L].eb_centroid[0]*0.5*dxlev[0]; - amrex::Real yloc=prob_lo[1] + (iv[1]+0.5)*dxlev[1] + sten[L].eb_centroid[1]*0.5*dxlev[1]; - amrex::Real zloc=prob_lo[2] + (iv[2]+0.5)*dxlev[2] + sten[L].eb_centroid[2]*0.5*dxlev[2]; + amrex::Real xloc=prob_lo[0] + (iv[0]+0.5 + sten[L].eb_centroid[0])*dxlev[0]; + amrex::Real yloc=prob_lo[1] + (iv[1]+0.5 + sten[L].eb_centroid[1])*dxlev[1]; + amrex::Real zloc=prob_lo[2] + (iv[2]+0.5 + sten[L].eb_centroid[2])*dxlev[2]; amrex::RealVect r(0.0,0.0,0.0); amrex::RealVect w(0.0,0.0,0.0); diff --git a/Source/PeleC.H b/Source/PeleC.H index e11d00193..9b54456f3 100644 --- a/Source/PeleC.H +++ b/Source/PeleC.H @@ -507,7 +507,7 @@ public: amrex::Real dt, amrex::Real flux_factor); - static void enforce_consistent_e(amrex::MultiFab& S); + void enforce_consistent_e(amrex::MultiFab& S); amrex::Real volWgtSum( const std::string& name, diff --git a/Source/PeleC.cpp b/Source/PeleC.cpp index 649734104..327a42f63 100644 --- a/Source/PeleC.cpp +++ b/Source/PeleC.cpp @@ -1516,99 +1516,118 @@ PeleC::avgDown() void PeleC::enforce_consistent_e(amrex::MultiFab& S) { - auto sarrs = S.arrays(); - amrex::ParallelFor( - S, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { - auto sarr = sarrs[nbx]; - const amrex::Real rhoInv = 1.0 / sarr(i, j, k, URHO); - const amrex::Real u = sarr(i, j, k, UMX) * rhoInv; - const amrex::Real v = sarr(i, j, k, UMY) * rhoInv; - const amrex::Real w = sarr(i, j, k, UMZ) * rhoInv; - sarr(i, j, k, UEDEN) = sarr(i, j, k, UEINT) + 0.5 * sarr(i, j, k, URHO) * - (u * u + v * v + w * w); - }); - amrex::Gpu::synchronize(); + + auto sarrs = S.arrays(); + amrex::ParallelFor( + S, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { + auto sarr = sarrs[nbx]; + const amrex::Real rhoInv = 1.0 / sarr(i, j, k, URHO); + const amrex::Real u = sarr(i, j, k, UMX) * rhoInv; + const amrex::Real v = sarr(i, j, k, UMY) * rhoInv; + const amrex::Real w = sarr(i, j, k, UMZ) * rhoInv; + sarr(i, j, k, UEDEN) = sarr(i, j, k, UEINT) + 0.5 * sarr(i, j, k, URHO) * + (u * u + v * v + w * w); + }); + + amrex::Gpu::synchronize(); + + if(do_rf) + { + const auto geomdata = geom.data(); + amrex::Real axis = rf_axis; + amrex::Real omega = rf_omega; + amrex::GpuArray axis_loc={rf_axis_x,rf_axis_y,rf_axis_z}; + + amrex::ParallelFor( + S, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { + auto sarr = sarrs[nbx]; + + amrex::Real rotenrg=get_rot_energy(i,j,k,omega,rf_axis,axis_loc,geomdata); + sarr(i, j, k, UEDEN) = sarr(i, j, k, UEINT) + - sarr(i, j, k, URHO) * rotenrg ; + }); + } } void PeleC::avgDown(int state_indx) { - BL_PROFILE("PeleC::avgDown(state_indx)"); + BL_PROFILE("PeleC::avgDown(state_indx)"); - if (level == parent->finestLevel()) { - return; - } + if (level == parent->finestLevel()) { + return; + } - amrex::MultiFab& S_crse = get_new_data(state_indx); - const amrex::MultiFab& S_fine = getLevel(level + 1).get_new_data(state_indx); + amrex::MultiFab& S_crse = get_new_data(state_indx); + const amrex::MultiFab& S_fine = getLevel(level + 1).get_new_data(state_indx); - if (eb_in_domain) { - PeleC& fine_lev = getLevel(level + 1); + if (eb_in_domain) { + PeleC& fine_lev = getLevel(level + 1); - amrex::EB_average_down( - S_fine, S_crse, fine_lev.Volume(), fine_lev.volFrac(), 0, S_fine.nComp(), - fine_ratio); + amrex::EB_average_down( + S_fine, S_crse, fine_lev.Volume(), fine_lev.volFrac(), 0, S_fine.nComp(), + fine_ratio); - if (state_indx == State_Type) { - set_body_state(S_crse); // TODO: Is this necessary? - } - } else { - const amrex::Geometry& fgeom = getLevel(level + 1).geom; - const amrex::Geometry& cgeom = geom; + if (state_indx == State_Type) { + set_body_state(S_crse); // TODO: Is this necessary? + } + } else { + const amrex::Geometry& fgeom = getLevel(level + 1).geom; + const amrex::Geometry& cgeom = geom; - amrex::average_down( - S_fine, S_crse, fgeom, cgeom, 0, S_fine.nComp(), fine_ratio); - } + amrex::average_down( + S_fine, S_crse, fgeom, cgeom, 0, S_fine.nComp(), fine_ratio); + } } void PeleC::allocOldData() { - for (int k = 0; k < num_state_type; k++) { - state[k].allocOldData(); - } + for (int k = 0; k < num_state_type; k++) { + state[k].allocOldData(); + } } void PeleC::removeOldData() { - AmrLevel::removeOldData(); + AmrLevel::removeOldData(); } void PeleC::errorEst( - amrex::TagBoxArray& tags, - int /*clearval*/, - int /*tagval*/, - amrex::Real time, - int /*n_error_buf*/, - int /*ngrow*/) + amrex::TagBoxArray& tags, + int /*clearval*/, + int /*tagval*/, + amrex::Real time, + int /*n_error_buf*/, + int /*ngrow*/) { - BL_PROFILE("PeleC::errorEst()"); + BL_PROFILE("PeleC::errorEst()"); - amrex::MultiFab S_data( - get_new_data(State_Type).boxArray(), - get_new_data(State_Type).DistributionMap(), NVAR, 1, amrex::MFInfo(), - Factory()); - const amrex::Real cur_time = state[State_Type].curTime(); - FillPatch( - *this, S_data, S_data.nGrow(), cur_time, State_Type, Density, NVAR, 0); - - amrex::Vector bcs(NVAR); - const char tagval = amrex::TagBox::SET; - - // Tag EB - if (eb_in_domain) { - if ( - ((tagging_parm->eb_refine_type == "static") && - (level < tagging_parm->max_eb_refine_lev)) || - ((tagging_parm->eb_refine_type == "adaptive") && - (level < tagging_parm->adapt_eb_refined_lev))) { - amrex::TagCutCells(tags, S_data); + amrex::MultiFab S_data( + get_new_data(State_Type).boxArray(), + get_new_data(State_Type).DistributionMap(), NVAR, 1, amrex::MFInfo(), + Factory()); + const amrex::Real cur_time = state[State_Type].curTime(); + FillPatch( + *this, S_data, S_data.nGrow(), cur_time, State_Type, Density, NVAR, 0); + + amrex::Vector bcs(NVAR); + const char tagval = amrex::TagBox::SET; + + // Tag EB + if (eb_in_domain) { + if ( + ((tagging_parm->eb_refine_type == "static") && + (level < tagging_parm->max_eb_refine_lev)) || + ((tagging_parm->eb_refine_type == "adaptive") && + (level < tagging_parm->adapt_eb_refined_lev))) { + amrex::TagCutCells(tags, S_data); + } } - } - auto const& fact = + auto const& fact = dynamic_cast(S_data.Factory()); auto const& flags = fact.getMultiEBCellFlagFab(); @@ -2166,26 +2185,34 @@ PeleC::reset_internal_energy(amrex::MultiFab& S_new, int ng) const auto captured_dual_energy_eta2 = dual_energy_eta2; auto sarrs = S_new.arrays(); const amrex::IntVect ngs(ng); + + //for Rotational frames + const auto geomdata = geom.data(); + amrex::Real axis = rf_axis; + amrex::Real omega = rf_omega; + amrex::GpuArray axis_loc={rf_axis_x,rf_axis_y,rf_axis_z}; amrex::ParallelFor( - S_new, ngs, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { - pc_rst_int_e( - i, j, k, sarrs[nbx], captured_allow_small_energy, - captured_allow_negative_energy, captured_dual_energy_update_E_from_e, - captured_dual_energy_eta2, captured_verbose); - }); + S_new, ngs, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { + + amrex::Real rad=get_rotaxis_dist(i,j,k,axis,axis_loc,geomdata); + pc_rst_int_e( + i, j, k, sarrs[nbx], captured_allow_small_energy, + captured_allow_negative_energy, captured_dual_energy_update_E_from_e, + captured_dual_energy_eta2, omega, rad, captured_verbose); + }); amrex::Gpu::synchronize(); } #ifndef AMREX_USE_GPU if (parent->finestLevel() == 0 && print_energy_diagnostics) { - // Pass in the multifab and the component - amrex::Real sum = volWgtSumMF(S_new, Eden, true); - amrex::ParallelDescriptor::ReduceRealSum(sum0); - amrex::ParallelDescriptor::ReduceRealSum(sum); - if (amrex::ParallelDescriptor::IOProcessor() && std::abs(sum - sum0) > 0) { - amrex::Print() << "(rho E) added from reset terms : " - << sum - sum0 << " out of " << sum0 << std::endl; - } + // Pass in the multifab and the component + amrex::Real sum = volWgtSumMF(S_new, Eden, true); + amrex::ParallelDescriptor::ReduceRealSum(sum0); + amrex::ParallelDescriptor::ReduceRealSum(sum); + if (amrex::ParallelDescriptor::IOProcessor() && std::abs(sum - sum0) > 0) { + amrex::Print() << "(rho E) added from reset terms : " + << sum - sum0 << " out of " << sum0 << std::endl; + } } #endif } @@ -2193,69 +2220,69 @@ PeleC::reset_internal_energy(amrex::MultiFab& S_new, int ng) void PeleC::computeTemp(amrex::MultiFab& S, int ng) { - reset_internal_energy(S, ng); + reset_internal_energy(S, ng); - auto const& fact = + auto const& fact = dynamic_cast(S.Factory()); - auto const& flags = fact.getMultiEBCellFlagFab(); + auto const& flags = fact.getMultiEBCellFlagFab(); - auto const& sarrs = S.arrays(); - auto const& flagarrs = flags.const_arrays(); - const amrex::IntVect ngs(ng); - amrex::ParallelFor( - S, ngs, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { - if (!flagarrs[nbx](i, j, k).isCovered()) { - pc_cmpTemp(i, j, k, sarrs[nbx]); - } - }); - amrex::Gpu::synchronize(); + auto const& sarrs = S.arrays(); + auto const& flagarrs = flags.const_arrays(); + const amrex::IntVect ngs(ng); + amrex::ParallelFor( + S, ngs, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { + if (!flagarrs[nbx](i, j, k).isCovered()) { + pc_cmpTemp(i, j, k, sarrs[nbx]); + } + }); + amrex::Gpu::synchronize(); } amrex::Real PeleC::getCPUTime() { - int numCores = amrex::ParallelDescriptor::NProcs(); + int numCores = amrex::ParallelDescriptor::NProcs(); #ifdef AMREX_USE_OMP - numCores = numCores * omp_get_max_threads(); + numCores = numCores * omp_get_max_threads(); #endif - amrex::Real T = + amrex::Real T = numCores * (amrex::ParallelDescriptor::second() - startCPUTime) + previousCPUTimeUsed; - return T; + return T; } amrex::MultiFab& PeleC::build_fine_mask() { - // Mask for zeroing covered cells - AMREX_ASSERT(level > 0); + // Mask for zeroing covered cells + AMREX_ASSERT(level > 0); - if (!fine_mask.empty()) { - return fine_mask; - } + if (!fine_mask.empty()) { + return fine_mask; + } - const amrex::BoxArray& cba = parent->boxArray(level - 1); - const amrex::DistributionMapping& cdm = parent->DistributionMap(level - 1); + const amrex::BoxArray& cba = parent->boxArray(level - 1); + const amrex::DistributionMapping& cdm = parent->DistributionMap(level - 1); - fine_mask.define(cba, cdm, 1, 0, amrex::MFInfo(), amrex::FArrayBoxFactory()); - fine_mask.setVal(1.0); + fine_mask.define(cba, cdm, 1, 0, amrex::MFInfo(), amrex::FArrayBoxFactory()); + fine_mask.setVal(1.0); - amrex::BoxArray fba = parent->boxArray(level); - amrex::iMultiFab ifine_mask = makeFineMask(cba, cdm, fba, crse_ratio, 1, 0); + amrex::BoxArray fba = parent->boxArray(level); + amrex::iMultiFab ifine_mask = makeFineMask(cba, cdm, fba, crse_ratio, 1, 0); - const auto& arrs = fine_mask.arrays(); - const auto& iarrs = ifine_mask.const_arrays(); - amrex::ParallelFor( - fine_mask, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { + const auto& arrs = fine_mask.arrays(); + const auto& iarrs = ifine_mask.const_arrays(); + amrex::ParallelFor( + fine_mask, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { #ifdef AMREX_USE_OMP #pragma omp atomic write #endif - arrs[nbx](i, j, k) = iarrs[nbx](i, j, k); - }); - amrex::Gpu::synchronize(); - return fine_mask; + arrs[nbx](i, j, k) = iarrs[nbx](i, j, k); + }); + amrex::Gpu::synchronize(); + return fine_mask; } const amrex::iMultiFab* diff --git a/Source/React.cpp b/Source/React.cpp index 1ec951b38..f9c70748a 100644 --- a/Source/React.cpp +++ b/Source/React.cpp @@ -122,162 +122,192 @@ PeleC::react_state( dynamic_cast(S_new.Factory()); auto const& flags = fact.getMultiEBCellFlagFab(); + amrex::Real rot_enrg=0.0; + + //for rotational frames + amrex::Real rotframeflag=do_rf; + const auto geomdata = geom.data(); + amrex::Real axis = rf_axis; + amrex::Real omega = rf_omega; + amrex::GpuArray axis_loc={rf_axis_x,rf_axis_y,rf_axis_z}; + + #ifdef AMREX_USE_OMP #pragma omp parallel if (amrex::Gpu::notInLaunchRegion()) #endif { - for (amrex::MFIter mfi(S_new, amrex::TilingIfNotGPU()); mfi.isValid(); - ++mfi) { - - const amrex::Box& bx = mfi.growntilebox(ng); - - // old state or the state at t=0 - auto const& sold_arr = - react_init ? S_new.array(mfi) : get_old_data(State_Type).array(mfi); - - // new state - auto const& snew_arr = S_new.array(mfi); - auto const& nonrs_arr = non_react_src->array(mfi); - auto const& I_R = react_src.array(mfi); - - // only update beyond first step - // TODO: Update here? Or just get reaction source? - const bool do_update = !react_init; - - const auto& flag_fab = flags[mfi]; - amrex::FabType typ = flag_fab.getType(bx); - if (typ == amrex::FabType::covered) { - if (do_react_load_balance) { - const amrex::Box vbox = mfi.tilebox(); - get_new_data(Work_Estimate_Type)[mfi].plus( - 0.0, vbox); - } - continue; - } - if ( - (typ == amrex::FabType::singlevalued) || - (typ == amrex::FabType::regular)) { - amrex::Real wt = - amrex::ParallelDescriptor::second(); // timing for each fab - - amrex::Real current_time = 0.0; - - auto const& rhoY = STemp.array(mfi); - auto const& T = STemp.array(mfi, NUM_SPECIES); - auto const& rhoE = STemp.array(mfi, NUM_SPECIES + 1); - auto const& frcExt = extsrc_rY.array(mfi); - auto const& frcEExt = extsrc_rE.array(mfi); - auto const& mask = dummyMask.array(mfi); - auto const& fc = fctCount.array(mfi); - - amrex::ParallelFor( - bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - // work on old state - amrex::Real rhou = sold_arr(i, j, k, UMX); - amrex::Real rhov = sold_arr(i, j, k, UMY); - amrex::Real rhow = sold_arr(i, j, k, UMZ); - amrex::Real rho_old = sold_arr(i, j, k, URHO); - amrex::Real rhoInv = 1.0 / rho_old; - - amrex::Real e_old = - (sold_arr(i, j, k, UEDEN) // total energy - - 0.5 * (rhou * rhou + rhov * rhov + rhow * rhow) * rhoInv) // KE - * rhoInv; - - // work on new state - rhou = snew_arr(i, j, k, UMX); - rhov = snew_arr(i, j, k, UMY); - rhow = snew_arr(i, j, k, UMZ); - rhoInv = 1.0 / snew_arr(i, j, k, URHO); - - amrex::Real rhoedot_ext = - (snew_arr(i, j, k, UEDEN) // new total energy - - 0.5 * (rhou * rhou + rhov * rhov + rhow * rhow) * - rhoInv // new KE - - rho_old * e_old) / - dt; - - frcEExt(i, j, k) = rhoedot_ext; - }); - - reactor->react( - bx, rhoY, frcExt, T, rhoE, frcEExt, fc, mask, dt, current_time + for (amrex::MFIter mfi(S_new, amrex::TilingIfNotGPU()); mfi.isValid(); + ++mfi) { + + const amrex::Box& bx = mfi.growntilebox(ng); + + // old state or the state at t=0 + auto const& sold_arr = + react_init ? S_new.array(mfi) : get_old_data(State_Type).array(mfi); + + // new state + auto const& snew_arr = S_new.array(mfi); + auto const& nonrs_arr = non_react_src->array(mfi); + auto const& I_R = react_src.array(mfi); + + // only update beyond first step + // TODO: Update here? Or just get reaction source? + const bool do_update = !react_init; + + const auto& flag_fab = flags[mfi]; + amrex::FabType typ = flag_fab.getType(bx); + if (typ == amrex::FabType::covered) { + if (do_react_load_balance) { + const amrex::Box vbox = mfi.tilebox(); + get_new_data(Work_Estimate_Type)[mfi].plus( + 0.0, vbox); + } + continue; + } + if ( + (typ == amrex::FabType::singlevalued) || + (typ == amrex::FabType::regular)) { + amrex::Real wt = + amrex::ParallelDescriptor::second(); // timing for each fab + + amrex::Real current_time = 0.0; + + auto const& rhoY = STemp.array(mfi); + auto const& T = STemp.array(mfi, NUM_SPECIES); + auto const& rhoE = STemp.array(mfi, NUM_SPECIES + 1); + auto const& frcExt = extsrc_rY.array(mfi); + auto const& frcEExt = extsrc_rE.array(mfi); + auto const& mask = dummyMask.array(mfi); + auto const& fc = fctCount.array(mfi); + + amrex::ParallelFor( + bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + // work on old state + amrex::Real rhou = sold_arr(i, j, k, UMX); + amrex::Real rhov = sold_arr(i, j, k, UMY); + amrex::Real rhow = sold_arr(i, j, k, UMZ); + amrex::Real rho_old = sold_arr(i, j, k, URHO); + amrex::Real rhoInv = 1.0 / rho_old; + + amrex::Real rotenrg=0.0; + if(rotframeflag) + { + rotenrg=get_rot_energy(i,j,k,omega,axis,axis_loc,geomdata); + } + + amrex::Real e_old = + (sold_arr(i, j, k, UEDEN) // total energy + - 0.5 * (rhou * rhou + rhov * rhov + rhow * rhow) * rhoInv) // KE + * rhoInv; + + + //note: e_den =e_int + 0.5*(u^2+v^2+w^2)-0.5*omega^2*rad^2 + //see Blazek, Appendix A3, Navier-Stokes in rotating frame of reference + e_old += rotenrg; + + // work on new state + rhou = snew_arr(i, j, k, UMX); + rhov = snew_arr(i, j, k, UMY); + rhow = snew_arr(i, j, k, UMZ); + rhoInv = 1.0 / snew_arr(i, j, k, URHO); + + amrex::Real rhoedot_ext = + (snew_arr(i, j, k, UEDEN) // new total energy + - 0.5 * (rhou * rhou + rhov * rhov + rhow * rhow) * + rhoInv + snew_arr(i,j,k,URHO)*rotenrg // new KE + - rho_old * e_old) / + dt; + + frcEExt(i, j, k) = rhoedot_ext; + }); + + reactor->react( + bx, rhoY, frcExt, T, rhoE, frcEExt, fc, mask, dt, current_time #ifdef AMREX_USE_GPU - , - amrex::Gpu::gpuStream() + , + amrex::Gpu::gpuStream() #endif - ); - - amrex::Gpu::Device::streamSynchronize(); - - // unpack data - amrex::ParallelFor( - bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - // work on old state - amrex::Real rhou = sold_arr(i, j, k, UMX); - amrex::Real rhov = sold_arr(i, j, k, UMY); - amrex::Real rhow = sold_arr(i, j, k, UMZ); - amrex::Real rho_old = sold_arr(i, j, k, URHO); - amrex::Real rhoInv = 1.0 / rho_old; - - amrex::Real e_old = - (sold_arr(i, j, k, UEDEN) // old total energy - - 0.5 * (rhou * rhou + rhov * rhov + rhow * rhow) * rhoInv) // KE - * rhoInv; - - rhou = snew_arr(i, j, k, UMX); - rhov = snew_arr(i, j, k, UMY); - rhow = snew_arr(i, j, k, UMZ); - rhoInv = 1.0 / snew_arr(i, j, k, URHO); - - amrex::Real rhoedot_ext = - (snew_arr(i, j, k, UEDEN) // new total energy - - 0.5 * (rhou * rhou + rhov * rhov + rhow * rhow) * rhoInv // KE - - rho_old * e_old) // old internal energy - / dt; - - amrex::Real umnew = - sold_arr(i, j, k, UMX) + dt * nonrs_arr(i, j, k, UMX); - amrex::Real vmnew = - sold_arr(i, j, k, UMY) + dt * nonrs_arr(i, j, k, UMY); - amrex::Real wmnew = - sold_arr(i, j, k, UMZ) + dt * nonrs_arr(i, j, k, UMZ); - - // get new rho - amrex::Real rhonew = 0.0; - - for (int nsp = 0; nsp < NUM_SPECIES; nsp++) { - rhonew += rhoY(i, j, k, nsp); - } - - if (do_update) { - snew_arr(i, j, k, URHO) = rhonew; - snew_arr(i, j, k, UMX) = umnew; - snew_arr(i, j, k, UMY) = vmnew; - snew_arr(i, j, k, UMZ) = wmnew; - - for (int nsp = 0; nsp < NUM_SPECIES; nsp++) { - snew_arr(i, j, k, UFS + nsp) = rhoY(i, j, k, nsp); - } - snew_arr(i, j, k, UTEMP) = T(i, j, k); - - snew_arr(i, j, k, UEINT) = rho_old * e_old + dt * rhoedot_ext; - snew_arr(i, j, k, UEDEN) = - snew_arr(i, j, k, UEINT) + - 0.5 * (umnew * umnew + vmnew * vmnew + wmnew * wmnew) / rhonew; - } - - for (int nsp = 0; nsp < NUM_SPECIES; nsp++) { - I_R(i, j, k, nsp) = (rhoY(i, j, k, nsp) // new rhoy - - sold_arr(i, j, k, UFS + nsp)) // old rhoy - / dt - - nonrs_arr(i, j, k, UFS + nsp); + ); + + amrex::Gpu::Device::streamSynchronize(); + + // unpack data + amrex::ParallelFor( + bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + // work on old state + amrex::Real rhou = sold_arr(i, j, k, UMX); + amrex::Real rhov = sold_arr(i, j, k, UMY); + amrex::Real rhow = sold_arr(i, j, k, UMZ); + amrex::Real rho_old = sold_arr(i, j, k, URHO); + amrex::Real rhoInv = 1.0 / rho_old; + + amrex::Real rotenrg=0.0; + if(rotframeflag) + { + rotenrg=get_rot_energy(i,j,k,omega,axis,axis_loc,geomdata); + } + + amrex::Real e_old = + (sold_arr(i, j, k, UEDEN) // old total energy + - 0.5 * (rhou * rhou + rhov * rhov + rhow * rhow) * rhoInv) // KE + * rhoInv; + + e_old += rotenrg; + + rhou = snew_arr(i, j, k, UMX); + rhov = snew_arr(i, j, k, UMY); + rhow = snew_arr(i, j, k, UMZ); + rhoInv = 1.0 / snew_arr(i, j, k, URHO); + + amrex::Real rhoedot_ext = + (snew_arr(i, j, k, UEDEN) // new total energy + - 0.5 * (rhou * rhou + rhov * rhov + rhow * rhow) * rhoInv // KE + + snew_arr(i,j,k,URHO)*rotenrg - rho_old * e_old) // old internal energy + / dt; + + amrex::Real umnew = + sold_arr(i, j, k, UMX) + dt * nonrs_arr(i, j, k, UMX); + amrex::Real vmnew = + sold_arr(i, j, k, UMY) + dt * nonrs_arr(i, j, k, UMY); + amrex::Real wmnew = + sold_arr(i, j, k, UMZ) + dt * nonrs_arr(i, j, k, UMZ); + + // get new rho + amrex::Real rhonew = 0.0; + + for (int nsp = 0; nsp < NUM_SPECIES; nsp++) { + rhonew += rhoY(i, j, k, nsp); + } + + if (do_update) { + snew_arr(i, j, k, URHO) = rhonew; + snew_arr(i, j, k, UMX) = umnew; + snew_arr(i, j, k, UMY) = vmnew; + snew_arr(i, j, k, UMZ) = wmnew; + + for (int nsp = 0; nsp < NUM_SPECIES; nsp++) { + snew_arr(i, j, k, UFS + nsp) = rhoY(i, j, k, nsp); + } + snew_arr(i, j, k, UTEMP) = T(i, j, k); + + snew_arr(i, j, k, UEINT) = rho_old * e_old + dt * rhoedot_ext; + snew_arr(i, j, k, UEDEN) = + snew_arr(i, j, k, UEINT) + + 0.5 * (umnew * umnew + vmnew * vmnew + wmnew * wmnew) / rhonew + - rhonew*rotenrg; + } + + for (int nsp = 0; nsp < NUM_SPECIES; nsp++) { + I_R(i, j, k, nsp) = (rhoY(i, j, k, nsp) // new rhoy + - sold_arr(i, j, k, UFS + nsp)) // old rhoy + / dt - + nonrs_arr(i, j, k, UFS + nsp); } I_R(i, j, k, NUM_SPECIES) = (rho_old * e_old + dt * rhoedot_ext // new internal energy + 0.5 * (umnew * umnew + vmnew * vmnew + wmnew * wmnew) / - rhonew // new KE + rhonew - rhonew*rotenrg // new KE - sold_arr(i, j, k, UEDEN)) // old total energy / dt - nonrs_arr(i, j, k, UEDEN); diff --git a/Source/RotSource.cpp b/Source/RotSource.cpp index effd13d8b..b4d0f9dfc 100644 --- a/Source/RotSource.cpp +++ b/Source/RotSource.cpp @@ -39,8 +39,7 @@ PeleC::construct_new_rot_source(amrex::Real /*time*/, amrex::Real /*dt*/) void PeleC::fill_rot_source( - const amrex::MultiFab& state_old - /*unused*/, + const amrex::MultiFab& state_old, const amrex::MultiFab& state_new, amrex::MultiFab& rot_src, int ng) @@ -49,6 +48,7 @@ PeleC::fill_rot_source( dynamic_cast(state_old.Factory()); auto const& flags = fact.getMultiEBCellFlagFab(); + const auto geomdata=geom.data(); int rf_on=do_rf; amrex::Real omega = rf_omega; amrex::Real axis = rf_axis; @@ -78,10 +78,7 @@ PeleC::fill_rot_source( amrex::RealVect w(0.0,0.0,0.0); amrex::RealVect v(0.0,0.0,0.0); - r[0]=prob_lo[0]+(i+0.5)*dx[0]-axis_loc[0]; - r[1]=prob_lo[1]+(j+0.5)*dx[1]-axis_loc[1]; - r[2]=prob_lo[2]+(k+0.5)*dx[2]-axis_loc[2]; - + r=get_rotaxis_vec(i,j,k,axis_loc,geomdata); w[axis]=omega; if(rf_on) diff --git a/Source/Soot.cpp b/Source/Soot.cpp index de9183ab4..2de1b0e2d 100644 --- a/Source/Soot.cpp +++ b/Source/Soot.cpp @@ -12,6 +12,9 @@ PeleC::setSootIndx() sc.qSpecIndx = QFS; sc.qSootIndx = QFSOOT; sc.rhoIndx = URHO; + //FIXME: Hari S: + //not sure how to handle rotational + //frames here sc.engIndx = UEDEN; sc.specIndx = UFS; sc.sootIndx = UFSOOT; diff --git a/Source/Utilities.H b/Source/Utilities.H index 3b9e1e9c7..9c346b145 100644 --- a/Source/Utilities.H +++ b/Source/Utilities.H @@ -6,92 +6,137 @@ #include "Constants.H" #include "IndexDefines.H" #include "PelePhysics.H" +#include AMREX_GPU_DEVICE AMREX_FORCE_INLINE -void +amrex::RealVect get_rotaxis_vec(const int i,const int j,const int k, + amrex::GpuArray axis_loc, + amrex::GeometryData const& geomdata) +{ + const amrex::Real* prob_lo = + geomdata.ProbLo(); + const amrex::Real* dx = + geomdata.CellSize(); + + amrex::RealVect r(0.0,0.0,0.0); + amrex::Real x=prob_lo[0]+(i+0.5)*dx[0]; + amrex::Real y=prob_lo[1]+(j+0.5)*dx[1]; + amrex::Real z=prob_lo[2]+(k+0.5)*dx[2]; + r[0]=x-axis_loc[0]; + r[1]=y-axis_loc[1]; + r[2]=z-axis_loc[2]; + return(r); +} + +AMREX_GPU_DEVICE +AMREX_FORCE_INLINE +amrex::Real get_rotaxis_dist(const int i,const int j,const int k, + int axis, amrex::GpuArray axis_loc, + amrex::GeometryData const& geomdata) +{ + amrex::RealVect r=get_rotaxis_vec(i,j,k,axis_loc,geomdata); + amrex::Real rad2=r[0]*r[0]+r[1]*r[1]+r[2]*r[2]; + rad2 -= r[axis]*r[axis]; //only in plane + return(std::sqrt(rad2)); +} + +AMREX_GPU_DEVICE +AMREX_FORCE_INLINE +amrex::Real get_rot_energy(const int i,const int j,const int k,amrex::Real omega, + int axis, + amrex::GpuArray axis_loc, + amrex::GeometryData const& geomdata) +{ + amrex::Real rad=get_rotaxis_dist(i,j,k,axis,axis_loc,geomdata); + return(0.5*omega*omega*rad*rad); +} + +AMREX_GPU_DEVICE +AMREX_FORCE_INLINE + void pc_cmpTemp( - const int i, const int j, const int k, amrex::Array4 const& S) + const int i, const int j, const int k, amrex::Array4 const& S) { - amrex::Real rhoInv = 1.0 / S(i, j, k, URHO); - amrex::Real T = S(i, j, k, UTEMP); - amrex::Real e = S(i, j, k, UEINT) * rhoInv; - amrex::Real massfrac[NUM_SPECIES]; - for (int n = 0; n < NUM_SPECIES; ++n) { - massfrac[n] = S(i, j, k, UFS + n) * rhoInv; - } - amrex::Real rho = S(i, j, k, URHO); - auto eos = pele::physics::PhysicsType::eos(); - eos.REY2T(rho, e, massfrac, T); - S(i, j, k, UTEMP) = T; + amrex::Real rhoInv = 1.0 / S(i, j, k, URHO); + amrex::Real T = S(i, j, k, UTEMP); + amrex::Real e = S(i, j, k, UEINT) * rhoInv; + amrex::Real massfrac[NUM_SPECIES]; + for (int n = 0; n < NUM_SPECIES; ++n) { + massfrac[n] = S(i, j, k, UFS + n) * rhoInv; + } + amrex::Real rho = S(i, j, k, URHO); + auto eos = pele::physics::PhysicsType::eos(); + eos.REY2T(rho, e, massfrac, T); + S(i, j, k, UTEMP) = T; } AMREX_GPU_DEVICE AMREX_FORCE_INLINE -void + void pc_rst_int_e( - const int i, - const int j, - const int k, - amrex::Array4 const& S, - const bool allow_small_energy, - const bool allow_negative_energy, - const bool dual_energy_update_E_from_e, - const amrex::Real dual_energy_eta2, - amrex::Real omega=0.0, - amrex::Real rad=0.0, - const int verbose=0) + const int i, + const int j, + const int k, + amrex::Array4 const& S, + const bool allow_small_energy, + const bool allow_negative_energy, + const bool dual_energy_update_E_from_e, + const amrex::Real dual_energy_eta2, + amrex::Real omega=0.0, + amrex::Real rad=0.0, + const int verbose=0) { - if (std::is_same< - pele::physics::PhysicsType::eos_type, pele::physics::eos::SRK>::value) { - if ((!allow_small_energy) || (!allow_negative_energy)) { - amrex::Error("Small/negative energy must be allowed for nonideal EOS"); - } - } - auto eos = pele::physics::PhysicsType::eos(); - if (!allow_small_energy) { - const amrex::Real rhoInv = 1.0 / S(i, j, k, URHO); - const amrex::Real Up = S(i, j, k, UMX) * rhoInv; - const amrex::Real Vp = S(i, j, k, UMY) * rhoInv; - const amrex::Real Wp = S(i, j, k, UMZ) * rhoInv; - const amrex::Real ke = 0.5 * (Up * Up + Vp * Vp + Wp * Wp) - 0.5*omega*omega*rad*rad; - const amrex::Real eden = S(i, j, k, UEDEN) * rhoInv; - const amrex::Real eos_state_T = constants::very_small_num(); - amrex::Real eos_state_massfrac[NUM_SPECIES] = {0.0}; - amrex::Real eos_state_ei[NUM_SPECIES] = {0.0}; - eos.T2Ei(eos_state_T, eos_state_ei); - amrex::Real eos_state_e = 0.0; - for (int sp = 0; sp < NUM_SPECIES; sp++) { - eos_state_massfrac[sp] = S(i, j, k, sp + UFS) * rhoInv; - eos_state_e += eos_state_massfrac[sp] * eos_state_ei[sp]; + if (std::is_same< + pele::physics::PhysicsType::eos_type, pele::physics::eos::SRK>::value) { + if ((!allow_small_energy) || (!allow_negative_energy)) { + amrex::Error("Small/negative energy must be allowed for nonideal EOS"); + } } - const amrex::Real small_e = eos_state_e; - if (eden < small_e) { - if (S(i, j, k, UEINT) * rhoInv < small_e) { - const amrex::Real eos_state_T_loc = amrex::max( - S(i, j, k, UTEMP), std::numeric_limits::min()); - eos.T2Ei(eos_state_T_loc, eos_state_ei); - eos_state_e = 0.0; + auto eos = pele::physics::PhysicsType::eos(); + if (!allow_small_energy) { + const amrex::Real rhoInv = 1.0 / S(i, j, k, URHO); + const amrex::Real Up = S(i, j, k, UMX) * rhoInv; + const amrex::Real Vp = S(i, j, k, UMY) * rhoInv; + const amrex::Real Wp = S(i, j, k, UMZ) * rhoInv; + const amrex::Real ke = 0.5 * (Up * Up + Vp * Vp + Wp * Wp) - 0.5*omega*omega*rad*rad; + const amrex::Real eden = S(i, j, k, UEDEN) * rhoInv; + const amrex::Real eos_state_T = constants::very_small_num(); + amrex::Real eos_state_massfrac[NUM_SPECIES] = {0.0}; + amrex::Real eos_state_ei[NUM_SPECIES] = {0.0}; + eos.T2Ei(eos_state_T, eos_state_ei); + amrex::Real eos_state_e = 0.0; for (int sp = 0; sp < NUM_SPECIES; sp++) { - eos_state_e += eos_state_massfrac[sp] * eos_state_ei[sp]; + eos_state_massfrac[sp] = S(i, j, k, sp + UFS) * rhoInv; + eos_state_e += eos_state_massfrac[sp] * eos_state_ei[sp]; } - S(i, j, k, UEINT) = S(i, j, k, URHO) * eos_state_e; - } - S(i, j, k, UEDEN) = S(i, j, k, UEINT) + S(i, j, k, URHO) * ke; - } else { - const amrex::Real rho_eint = S(i, j, k, UEDEN) - S(i, j, k, URHO) * ke; - if ( - (rho_eint > - (S(i, j, k, URHO) * std::numeric_limits::min())) && - ((rho_eint - - S(i, j, k, URHO) * std::numeric_limits::min()) / - (S(i, j, k, UEDEN) - - S(i, j, k, URHO) * std::numeric_limits::min())) > - dual_energy_eta2) { - S(i, j, k, UEINT) = rho_eint; - } - if (S(i, j, k, UEINT) * rhoInv < small_e) { - const amrex::Real eos_state_T_loc = amrex::max( + const amrex::Real small_e = eos_state_e; + if (eden < small_e) { + if (S(i, j, k, UEINT) * rhoInv < small_e) { + const amrex::Real eos_state_T_loc = amrex::max( + S(i, j, k, UTEMP), std::numeric_limits::min()); + eos.T2Ei(eos_state_T_loc, eos_state_ei); + eos_state_e = 0.0; + for (int sp = 0; sp < NUM_SPECIES; sp++) { + eos_state_e += eos_state_massfrac[sp] * eos_state_ei[sp]; + } + S(i, j, k, UEINT) = S(i, j, k, URHO) * eos_state_e; + } + S(i, j, k, UEDEN) = S(i, j, k, UEINT) + S(i, j, k, URHO) * ke; + } else { + const amrex::Real rho_eint = S(i, j, k, UEDEN) - S(i, j, k, URHO) * ke; + if ( + (rho_eint > + (S(i, j, k, URHO) * std::numeric_limits::min())) && + ((rho_eint - + S(i, j, k, URHO) * std::numeric_limits::min()) / + (S(i, j, k, UEDEN) - + S(i, j, k, URHO) * std::numeric_limits::min())) > + dual_energy_eta2) { + S(i, j, k, UEINT) = rho_eint; + } + if (S(i, j, k, UEINT) * rhoInv < small_e) { + const amrex::Real eos_state_T_loc = amrex::max( S(i, j, k, UTEMP), std::numeric_limits::min()); eos.T2Ei(eos_state_T_loc, eos_state_ei); eos_state_e = 0.0; From ac84db57b802227d72477caceeed3189c1019206 Mon Sep 17 00:00:00 2001 From: hsitaram Date: Mon, 24 Jun 2024 21:40:25 -0600 Subject: [PATCH 08/46] taylor couette flow case --- Exec/RegTests/taylorCouette/GNUmakefile | 38 ++++++ Exec/RegTests/taylorCouette/Make.package | 3 + Exec/RegTests/taylorCouette/inputs | 76 +++++++++++ Exec/RegTests/taylorCouette/prob.H | 163 +++++++++++++++++++++++ Exec/RegTests/taylorCouette/prob.cpp | 83 ++++++++++++ Exec/RegTests/taylorCouette/prob_parm.H | 30 +++++ 6 files changed, 393 insertions(+) create mode 100644 Exec/RegTests/taylorCouette/GNUmakefile create mode 100644 Exec/RegTests/taylorCouette/Make.package create mode 100644 Exec/RegTests/taylorCouette/inputs create mode 100644 Exec/RegTests/taylorCouette/prob.H create mode 100644 Exec/RegTests/taylorCouette/prob.cpp create mode 100644 Exec/RegTests/taylorCouette/prob_parm.H diff --git a/Exec/RegTests/taylorCouette/GNUmakefile b/Exec/RegTests/taylorCouette/GNUmakefile new file mode 100644 index 000000000..759882215 --- /dev/null +++ b/Exec/RegTests/taylorCouette/GNUmakefile @@ -0,0 +1,38 @@ +# AMReX +DIM = 3 +COMP = gnu +PRECISION = DOUBLE + +# Profiling +PROFILE = FALSE +TINY_PROFILE = FALSE +COMM_PROFILE = FALSE +TRACE_PROFILE = FALSE +MEM_PROFILE = FALSE +USE_GPROF = FALSE + +# Performance +USE_MPI = FALSE +USE_OMP = FALSE +USE_CUDA = FALSE +USE_HIP = FALSE +USE_SYCL = FALSE + +# Debugging +DEBUG = FALSE +FSANITIZER = FALSE +THREAD_SANITIZER = FALSE + +# PeleC +PELE_CVODE_FORCE_YCORDER = FALSE +PELE_USE_MAGMA = FALSE +PELE_COMPILE_AJACOBIAN = FALSE +Eos_Model := GammaLaw +Chemistry_Model := Null +Transport_Model := Constant + +# GNU Make +Bpack := ./Make.package +Blocs := . +PELE_HOME := ../../.. +include $(PELE_HOME)/Exec/Make.PeleC diff --git a/Exec/RegTests/taylorCouette/Make.package b/Exec/RegTests/taylorCouette/Make.package new file mode 100644 index 000000000..bdc32b025 --- /dev/null +++ b/Exec/RegTests/taylorCouette/Make.package @@ -0,0 +1,3 @@ +CEXE_headers += prob.H +CEXE_headers += prob_parm.H +CEXE_sources += prob.cpp diff --git a/Exec/RegTests/taylorCouette/inputs b/Exec/RegTests/taylorCouette/inputs new file mode 100644 index 000000000..af17af6a8 --- /dev/null +++ b/Exec/RegTests/taylorCouette/inputs @@ -0,0 +1,76 @@ +# ------------------ INPUTS TO MAIN PROGRAM ------------------- +max_step = 100000 +stop_time = 1.2 + +# PROBLEM SIZE & GEOMETRY +geometry.is_periodic = 1 1 1 +geometry.coord_sys = 0 # 0 => cart +geometry.prob_lo = -50.0 -50.0 -25.0 +geometry.prob_hi = 50.0 50.0 25.0 +amr.n_cell = 32 32 16 + +# >>>>>>>>>>>>> BC KEYWORDS <<<<<<<<<<<<<<<<<<<<<< +# Interior, UserBC, Symmetry, SlipWall, NoSlipWall +# >>>>>>>>>>>>> BC KEYWORDS <<<<<<<<<<<<<<<<<<<<<< + +pelec.lo_bc = "Interior" "Interior" "Interior" +pelec.hi_bc = "Interior" "Interior" "Interior" + +# Problem setup +pelec.eb_isothermal = 0 + +# WHICH PHYSICS +pelec.do_hydro = 1 +pelec.do_mol = 1 +pelec.do_react = 0 +pelec.allow_negative_energy = 0 +pelec.diffuse_temp = 1 +pelec.diffuse_vel = 1 +pelec.diffuse_spec = 0 +pelec.diffuse_enth = 0 + +# TIME STEP CONTROL +pelec.dt_cutoff = 5.e-20 # level 0 timestep below which we halt +pelec.cfl = 0.2 # cfl number for hyperbolic system +pelec.init_shrink = 1.0 # scale back initial timestep +pelec.change_max = 1.05 # maximum increase in dt over successive steps + +# DIAGNOSTICS & VERBOSITY +pelec.sum_interval = 1 # timesteps between computing mass +pelec.v = 1 # verbosity in PeleC cpp files +amr.v = 1 # verbosity in Amr.cpp +#amr.grid_log = grdlog # name of grid logging file +amr.data_log = datlog + +# REFINEMENT / REGRIDDING +amr.max_level = 0 # maximum level number allowed +#amr.ref_ratio = 2 2 2 2 # refinement ratio +#amr.regrid_int = 2 # how often to regrid +amr.blocking_factor = 8 # block factor in grid generation +amr.max_grid_size = 32 + +# CHECKPOINT FILES +amr.checkpoint_files_output = 0 +amr.check_file = chk # root name of checkpoint file +amr.check_int = -1 # number of timesteps between checkpoints + +# PLOTFILES +amr.plot_files_output = 1 +amr.plot_file = plt +amr.plot_int = 1000 +amr.derive_plot_vars=ALL + +eb2.geom_type = "conc_cylinders" +eb2.small_volfrac=1.e-6 +ebd.boundary_grad_stencil_type = 0 +pelec.eb_boundary_T = 300. +pelec.eb_isothermal = 0 +pelec.eb_noslip = 1 + +pelec.do_rf=1 +pelec.rf_omega=1.0 +pelec.rf_axis=2 +pelec.rf_axis_x=0.0 +pelec.rf_axis_y=0.0 +pelec.rf_axis_z=0.0 +pelec.rf_rad=20.0 diff --git a/Exec/RegTests/taylorCouette/prob.H b/Exec/RegTests/taylorCouette/prob.H new file mode 100644 index 000000000..92f99b178 --- /dev/null +++ b/Exec/RegTests/taylorCouette/prob.H @@ -0,0 +1,163 @@ +#ifndef PROB_H +#define PROB_H + +#include +#include +#include +#include +#include +#include + +#include "mechanism.H" + +#include "PeleC.H" +#include "IndexDefines.H" +#include "Constants.H" +#include "PelePhysics.H" +#include "EOS.H" + +#include "Tagging.H" +#include "ProblemDerive.H" +#include "prob_parm.H" +#include "EB.H" +#include +#include "Utilities.H" +#include "Geometry.H" + +class EBConcCylinders + : public pele::pelec::Geometry::Register +{ +public: + static std::string identifier() { return "conc_cylinders"; } + + void + build(const amrex::Geometry& geom, const int max_coarsening_level) override; +}; + +AMREX_GPU_DEVICE +AMREX_FORCE_INLINE +void +pc_initdata( + int i, + int j, + int k, + amrex::Array4 const& state, + amrex::GeometryData const& geomdata, + ProbParmDevice const& prob_parm) +{ + // Geometry + const amrex::Real* prob_lo = geomdata.ProbLo(); + const amrex::Real* dx = geomdata.CellSize(); + + const amrex::Real u = 0.0; + const amrex::Real v = 0.0; + const amrex::Real w = 0.0; + const amrex::Real p = prob_parm.p0; + const amrex::Real T = prob_parm.T0; + amrex::Real massfrac[NUM_SPECIES] = {1.0}; + amrex::Real rho, eint; + auto eos = pele::physics::PhysicsType::eos(); + eos.PYT2RE(p, massfrac, T, rho, eint); + + state(i, j, k, URHO) = rho; + state(i, j, k, UMX) = rho * u; + state(i, j, k, UMY) = rho * v; + state(i, j, k, UMZ) = rho * w; + state(i, j, k, UEINT) = rho * eint; + state(i, j, k, UEDEN) = rho * (eint + 0.5 * (u * u + v * v + w * w)); + state(i, j, k, UTEMP) = T; + for (int n = 0; n < NUM_SPECIES; n++) { + state(i, j, k, UFS + n) = rho * massfrac[n]; + } + + if(prob_parm.do_rf) + { + amrex::GpuArray axis_loc={prob_parm.rf_axis_x, + prob_parm.rf_axis_y,prob_parm.rf_axis_z}; + amrex::Real rotenrg=get_rot_energy(i,j,k,prob_parm.rf_omega,prob_parm.rf_axis,axis_loc,geomdata); + state(i,j,k,UEDEN) -= rho*rotenrg; + } +} + +AMREX_GPU_DEVICE +AMREX_FORCE_INLINE +void +bcnormal( + const amrex::Real* /*x[AMREX_SPACEDIM]*/, + const amrex::Real* /*s_int[NVAR]*/, + amrex::Real* /*s_ext[NVAR]*/, + const int /*idir*/, + const int /*sgn*/, + const amrex::Real /*time*/, + amrex::GeometryData const& /*geomdata*/, + ProbParmDevice const& /*prob_parm*/, + const amrex::GpuArray& /*turb_fluc*/) +{ +} + +void pc_prob_close(); + +using ProblemTags = EmptyProbTagStruct; +using ProblemDerives = EmptyProbDeriveStruct; + +/*using ProblemTags = EmptyProbTagStruct; + + struct MyProbDeriveStruct + { + static amrex::Box the_same_box(const amrex::Box& b) { return b; } + + static void + add(amrex::DeriveList& derive_lst, const amrex::DescriptorList& desc_lst) + { +// Add derives as follows and define the derive function below: +derive_lst.add( +"velx_if", amrex::IndexType::TheCellType(), 1, pc_velx_if, +the_same_box); +derive_lst.addComponent("velx_if", desc_lst, State_Type, 0, NVAR); + +derive_lst.add( +"vely_if", amrex::IndexType::TheCellType(), 1, pc_vely_if, +the_same_box); +derive_lst.addComponent("vely_if", desc_lst, State_Type, 0, NVAR); + +derive_lst.add( +"velz_if", amrex::IndexType::TheCellType(), 1, pc_velz_if, +the_same_box); +derive_lst.addComponent("velz_if", desc_lst, State_Type, 0, NVAR); +} + +static void pc_rhoerror( +const amrex::Box& bx, +amrex::FArrayBox& derfab, +int dcomp, +int ncomp, +const amrex::FArrayBox& datfab, +const amrex::Geometry& geomdata, +amrex::Real time, +const int* bcrec, +int level) +{ +auto const dat = datfab.array(); +auto arr = derfab.array(); +const amrex::GpuArray prob_lo = +geomdata.ProbLoArray(); +const amrex::GpuArray dx = +geomdata.CellSizeArray(); + +ProbParmDevice const* prob_parm = PeleC::d_prob_parm_device; + +amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { +const amrex::Real x = prob_lo[0] + (i + 0.5) * dx[0]; +const amrex::Real rho_exact = +prob_parm->rho + +prob_parm->alpha * std::exp( +-((x - prob_parm->cs * time) / prob_parm->sigma) * +((x - prob_parm->cs * time) / prob_parm->sigma)); +arr(i, j, k, 0) = dat(i, j, k, URHO) - rho_exact; +}); +} +}; + +using ProblemDerives = MyProbDeriveStruct;*/ + +#endif diff --git a/Exec/RegTests/taylorCouette/prob.cpp b/Exec/RegTests/taylorCouette/prob.cpp new file mode 100644 index 000000000..99d6c5de1 --- /dev/null +++ b/Exec/RegTests/taylorCouette/prob.cpp @@ -0,0 +1,83 @@ +#include "prob.H" + +void +pc_prob_close() +{ +} + +extern "C" { + void + amrex_probinit( + const int* /*init*/, + const int* /*name*/, + const int* /*namelen*/, + const amrex::Real* problo, + const amrex::Real* probhi) + { + // Parse params + amrex::ParmParse pp("prob"); + pp.query("p0", PeleC::h_prob_parm_device->p0); + pp.query("T0", PeleC::h_prob_parm_device->T0); + pp.query("d_inner", PeleC::h_prob_parm_device->d_inner); + pp.query("d_outer", PeleC::h_prob_parm_device->d_outer); + pp.query("viscosity", PeleC::h_prob_parm_device->mu); + pp.query("thermal_conductivity", PeleC::h_prob_parm_device->kappa); + + //check for rotational frame + amrex::ParmParse pp_pelec("pelec"); + pp_pelec.query("do_rf",PeleC::h_prob_parm_device->do_rf); + pp_pelec.query("rf_omega",PeleC::h_prob_parm_device->rf_omega); + pp_pelec.query("rf_axis",PeleC::h_prob_parm_device->rf_axis); + pp_pelec.query("rf_axis_x",PeleC::h_prob_parm_device->rf_axis_x); + pp_pelec.query("rf_axis_y",PeleC::h_prob_parm_device->rf_axis_y); + pp_pelec.query("rf_axis_z",PeleC::h_prob_parm_device->rf_axis_z); + + + auto& trans_parm = PeleC::trans_parms.host_trans_parm(); + trans_parm.const_bulk_viscosity = 0.0; + trans_parm.const_diffusivity = 0.0; + trans_parm.const_viscosity = PeleC::h_prob_parm_device->mu; + trans_parm.const_conductivity = PeleC::h_prob_parm_device->kappa; + PeleC::trans_parms.sync_to_device(); + } +} + +void +PeleC::problem_post_timestep() +{ +} + +void +PeleC::problem_post_init() +{ +} + +void +PeleC::problem_post_restart() +{ +} + +void +EBConcCylinders::build( + const amrex::Geometry& geom, const int max_coarsening_level) +{ + amrex::ParmParse ppprob("prob"); + ppprob.query("d_inner", PeleC::h_prob_parm_device->d_inner); + ppprob.query("d_outer", PeleC::h_prob_parm_device->d_outer); + ProbParmDevice const* pp = PeleC::h_prob_parm_device; + + //infinite cylinders + amrex::EB2::CylinderIF inner( + 0.5 * pp->d_inner, 2, + {AMREX_D_DECL(0.0, 0, 0)}, false); + + amrex::EB2::CylinderIF outer( + 0.5 * pp->d_outer, 2, { + AMREX_D_DECL(0.0, 0, 0)}, + true); + + auto conc_cyl = amrex::EB2::makeUnion(inner, outer); + auto gshop = amrex::EB2::makeShop(conc_cyl); + amrex::EB2::Build( + gshop, geom, max_coarsening_level, max_coarsening_level, 4, false); +} diff --git a/Exec/RegTests/taylorCouette/prob_parm.H b/Exec/RegTests/taylorCouette/prob_parm.H new file mode 100644 index 000000000..1ed78283c --- /dev/null +++ b/Exec/RegTests/taylorCouette/prob_parm.H @@ -0,0 +1,30 @@ +#ifndef PROB_PARM_H +#define PROB_PARM_H + +#include +#include +#include + +struct ProbParmDevice +{ + amrex::Real d_inner = 25.0; + amrex::Real d_outer = 75.0; + amrex::Real p0 = 1e6; + amrex::Real T0 = 300.0; + amrex::Real mu = 0.1; + amrex::Real kappa=1.0; + amrex::GpuArray massfrac = {1.0}; + int do_rf=0; + amrex::Real rf_omega=0; + amrex::Real rf_axis=2; + amrex::Real rf_axis_x=0.0; + amrex::Real rf_axis_y=0.0; + amrex::Real rf_axis_z=0.0; +}; + +struct ProbParmHost +{ + ProbParmHost() = default; +}; + +#endif From 7076c356ce448462968ad26af5ef9285818f574b Mon Sep 17 00:00:00 2001 From: Bruce Perry Date: Tue, 25 Jun 2024 15:53:35 -0600 Subject: [PATCH 09/46] clang-format mrf code --- Exec/RegTests/taylorCouette/prob.H | 35 +- Exec/RegTests/taylorCouette/prob.cpp | 94 +- Exec/RegTests/taylorCouette/prob_parm.H | 14 +- Source/Derive.cpp | 16 +- Source/Diffusion.cpp | 100 +-- Source/Godunov.H | 6 +- Source/Hydro.H | 4 +- Source/IO.cpp | 4 +- Source/InitEB.cpp | 1086 +++++++++++------------ Source/MOL.H | 10 +- Source/MOL.cpp | 340 +++---- Source/PeleC.H | 6 +- Source/PeleC.cpp | 273 +++--- Source/React.cpp | 346 ++++---- Source/Riemann.H | 31 +- Source/RotSource.cpp | 130 ++- Source/Setup.cpp | 3 +- Source/Soot.cpp | 6 +- Source/Sources.cpp | 6 +- Source/Utilities.H | 226 ++--- 20 files changed, 1373 insertions(+), 1363 deletions(-) diff --git a/Exec/RegTests/taylorCouette/prob.H b/Exec/RegTests/taylorCouette/prob.H index 92f99b178..517a28ad2 100644 --- a/Exec/RegTests/taylorCouette/prob.H +++ b/Exec/RegTests/taylorCouette/prob.H @@ -24,8 +24,7 @@ #include "Utilities.H" #include "Geometry.H" -class EBConcCylinders - : public pele::pelec::Geometry::Register +class EBConcCylinders : public pele::pelec::Geometry::Register { public: static std::string identifier() { return "conc_cylinders"; } @@ -48,7 +47,7 @@ pc_initdata( // Geometry const amrex::Real* prob_lo = geomdata.ProbLo(); const amrex::Real* dx = geomdata.CellSize(); - + const amrex::Real u = 0.0; const amrex::Real v = 0.0; const amrex::Real w = 0.0; @@ -70,12 +69,12 @@ pc_initdata( state(i, j, k, UFS + n) = rho * massfrac[n]; } - if(prob_parm.do_rf) - { - amrex::GpuArray axis_loc={prob_parm.rf_axis_x, - prob_parm.rf_axis_y,prob_parm.rf_axis_z}; - amrex::Real rotenrg=get_rot_energy(i,j,k,prob_parm.rf_omega,prob_parm.rf_axis,axis_loc,geomdata); - state(i,j,k,UEDEN) -= rho*rotenrg; + if (prob_parm.do_rf) { + amrex::GpuArray axis_loc = { + prob_parm.rf_axis_x, prob_parm.rf_axis_y, prob_parm.rf_axis_z}; + amrex::Real rotenrg = get_rot_energy( + i, j, k, prob_parm.rf_omega, prob_parm.rf_axis, axis_loc, geomdata); + state(i, j, k, UEDEN) -= rho * rotenrg; } } @@ -83,15 +82,15 @@ AMREX_GPU_DEVICE AMREX_FORCE_INLINE void bcnormal( - const amrex::Real* /*x[AMREX_SPACEDIM]*/, - const amrex::Real* /*s_int[NVAR]*/, - amrex::Real* /*s_ext[NVAR]*/, - const int /*idir*/, - const int /*sgn*/, - const amrex::Real /*time*/, - amrex::GeometryData const& /*geomdata*/, - ProbParmDevice const& /*prob_parm*/, - const amrex::GpuArray& /*turb_fluc*/) + const amrex::Real* /*x[AMREX_SPACEDIM]*/, + const amrex::Real* /*s_int[NVAR]*/, + amrex::Real* /*s_ext[NVAR]*/, + const int /*idir*/, + const int /*sgn*/, + const amrex::Real /*time*/, + amrex::GeometryData const& /*geomdata*/, + ProbParmDevice const& /*prob_parm*/, + const amrex::GpuArray& /*turb_fluc*/) { } diff --git a/Exec/RegTests/taylorCouette/prob.cpp b/Exec/RegTests/taylorCouette/prob.cpp index 99d6c5de1..6b8c9fb34 100644 --- a/Exec/RegTests/taylorCouette/prob.cpp +++ b/Exec/RegTests/taylorCouette/prob.cpp @@ -6,40 +6,39 @@ pc_prob_close() } extern "C" { - void - amrex_probinit( - const int* /*init*/, - const int* /*name*/, - const int* /*namelen*/, - const amrex::Real* problo, - const amrex::Real* probhi) - { - // Parse params - amrex::ParmParse pp("prob"); - pp.query("p0", PeleC::h_prob_parm_device->p0); - pp.query("T0", PeleC::h_prob_parm_device->T0); - pp.query("d_inner", PeleC::h_prob_parm_device->d_inner); - pp.query("d_outer", PeleC::h_prob_parm_device->d_outer); - pp.query("viscosity", PeleC::h_prob_parm_device->mu); - pp.query("thermal_conductivity", PeleC::h_prob_parm_device->kappa); - - //check for rotational frame - amrex::ParmParse pp_pelec("pelec"); - pp_pelec.query("do_rf",PeleC::h_prob_parm_device->do_rf); - pp_pelec.query("rf_omega",PeleC::h_prob_parm_device->rf_omega); - pp_pelec.query("rf_axis",PeleC::h_prob_parm_device->rf_axis); - pp_pelec.query("rf_axis_x",PeleC::h_prob_parm_device->rf_axis_x); - pp_pelec.query("rf_axis_y",PeleC::h_prob_parm_device->rf_axis_y); - pp_pelec.query("rf_axis_z",PeleC::h_prob_parm_device->rf_axis_z); +void +amrex_probinit( + const int* /*init*/, + const int* /*name*/, + const int* /*namelen*/, + const amrex::Real* problo, + const amrex::Real* probhi) +{ + // Parse params + amrex::ParmParse pp("prob"); + pp.query("p0", PeleC::h_prob_parm_device->p0); + pp.query("T0", PeleC::h_prob_parm_device->T0); + pp.query("d_inner", PeleC::h_prob_parm_device->d_inner); + pp.query("d_outer", PeleC::h_prob_parm_device->d_outer); + pp.query("viscosity", PeleC::h_prob_parm_device->mu); + pp.query("thermal_conductivity", PeleC::h_prob_parm_device->kappa); + // check for rotational frame + amrex::ParmParse pp_pelec("pelec"); + pp_pelec.query("do_rf", PeleC::h_prob_parm_device->do_rf); + pp_pelec.query("rf_omega", PeleC::h_prob_parm_device->rf_omega); + pp_pelec.query("rf_axis", PeleC::h_prob_parm_device->rf_axis); + pp_pelec.query("rf_axis_x", PeleC::h_prob_parm_device->rf_axis_x); + pp_pelec.query("rf_axis_y", PeleC::h_prob_parm_device->rf_axis_y); + pp_pelec.query("rf_axis_z", PeleC::h_prob_parm_device->rf_axis_z); - auto& trans_parm = PeleC::trans_parms.host_trans_parm(); - trans_parm.const_bulk_viscosity = 0.0; - trans_parm.const_diffusivity = 0.0; - trans_parm.const_viscosity = PeleC::h_prob_parm_device->mu; - trans_parm.const_conductivity = PeleC::h_prob_parm_device->kappa; - PeleC::trans_parms.sync_to_device(); - } + auto& trans_parm = PeleC::trans_parms.host_trans_parm(); + trans_parm.const_bulk_viscosity = 0.0; + trans_parm.const_diffusivity = 0.0; + trans_parm.const_viscosity = PeleC::h_prob_parm_device->mu; + trans_parm.const_conductivity = PeleC::h_prob_parm_device->kappa; + PeleC::trans_parms.sync_to_device(); +} } void @@ -59,25 +58,22 @@ PeleC::problem_post_restart() void EBConcCylinders::build( - const amrex::Geometry& geom, const int max_coarsening_level) + const amrex::Geometry& geom, const int max_coarsening_level) { - amrex::ParmParse ppprob("prob"); - ppprob.query("d_inner", PeleC::h_prob_parm_device->d_inner); - ppprob.query("d_outer", PeleC::h_prob_parm_device->d_outer); - ProbParmDevice const* pp = PeleC::h_prob_parm_device; + amrex::ParmParse ppprob("prob"); + ppprob.query("d_inner", PeleC::h_prob_parm_device->d_inner); + ppprob.query("d_outer", PeleC::h_prob_parm_device->d_outer); + ProbParmDevice const* pp = PeleC::h_prob_parm_device; - //infinite cylinders - amrex::EB2::CylinderIF inner( - 0.5 * pp->d_inner, 2, - {AMREX_D_DECL(0.0, 0, 0)}, false); + // infinite cylinders + amrex::EB2::CylinderIF inner( + 0.5 * pp->d_inner, 2, {AMREX_D_DECL(0.0, 0, 0)}, false); - amrex::EB2::CylinderIF outer( - 0.5 * pp->d_outer, 2, { - AMREX_D_DECL(0.0, 0, 0)}, - true); + amrex::EB2::CylinderIF outer( + 0.5 * pp->d_outer, 2, {AMREX_D_DECL(0.0, 0, 0)}, true); - auto conc_cyl = amrex::EB2::makeUnion(inner, outer); - auto gshop = amrex::EB2::makeShop(conc_cyl); - amrex::EB2::Build( - gshop, geom, max_coarsening_level, max_coarsening_level, 4, false); + auto conc_cyl = amrex::EB2::makeUnion(inner, outer); + auto gshop = amrex::EB2::makeShop(conc_cyl); + amrex::EB2::Build( + gshop, geom, max_coarsening_level, max_coarsening_level, 4, false); } diff --git a/Exec/RegTests/taylorCouette/prob_parm.H b/Exec/RegTests/taylorCouette/prob_parm.H index 1ed78283c..1572c8a77 100644 --- a/Exec/RegTests/taylorCouette/prob_parm.H +++ b/Exec/RegTests/taylorCouette/prob_parm.H @@ -12,14 +12,14 @@ struct ProbParmDevice amrex::Real p0 = 1e6; amrex::Real T0 = 300.0; amrex::Real mu = 0.1; - amrex::Real kappa=1.0; + amrex::Real kappa = 1.0; amrex::GpuArray massfrac = {1.0}; - int do_rf=0; - amrex::Real rf_omega=0; - amrex::Real rf_axis=2; - amrex::Real rf_axis_x=0.0; - amrex::Real rf_axis_y=0.0; - amrex::Real rf_axis_z=0.0; + int do_rf = 0; + amrex::Real rf_omega = 0; + amrex::Real rf_axis = 2; + amrex::Real rf_axis_x = 0.0; + amrex::Real rf_axis_y = 0.0; + amrex::Real rf_axis_z = 0.0; }; struct ProbParmHost diff --git a/Source/Derive.cpp b/Source/Derive.cpp index 4cd422508..081fef428 100644 --- a/Source/Derive.cpp +++ b/Source/Derive.cpp @@ -146,14 +146,14 @@ pc_dereint1( amrex::Real /*time*/, const int* /*bcrec*/, const int /*level*/) - //amrex::Real omega=0.0, - // amrex::Real rad=0.0 ) +// amrex::Real omega=0.0, +// amrex::Real rad=0.0 ) { - //FIXME:Hari S: - //cant seem to add omega and rad - //as derive functions are quite rigid + // FIXME:Hari S: + // cant seem to add omega and rad + // as derive functions are quite rigid // - // Compute internal energy from (rho E). + // Compute internal energy from (rho E). auto const dat = datfab.const_array(); auto e = derfab.array(); @@ -164,8 +164,8 @@ pc_dereint1( const amrex::Real uz = dat(i, j, k, UMZ) * rhoInv; e(i, j, k) = dat(i, j, k, UEDEN) * rhoInv - 0.5 * (ux * ux + uy * uy + uz * uz); - //see Blazek, Appendix A3, Navier-Stokes in rotating frame of reference - //e(i,j,k)-=0.5*omega*omega*rad*rad; + // see Blazek, Appendix A3, Navier-Stokes in rotating frame of reference + // e(i,j,k)-=0.5*omega*omega*rad*rad; }); } diff --git a/Source/Diffusion.cpp b/Source/Diffusion.cpp index eb4a63af2..8daaae58b 100644 --- a/Source/Diffusion.cpp +++ b/Source/Diffusion.cpp @@ -16,15 +16,15 @@ PeleC::getMOLSrcTerm( return; } - int using_rf=do_rf; + int using_rf = do_rf; amrex::Real omega = rf_omega; - int axis = rf_axis; - amrex::GpuArray axis_loc={rf_axis_x,rf_axis_y,rf_axis_z}; + int axis = rf_axis; + amrex::GpuArray axis_loc = { + rf_axis_x, rf_axis_y, rf_axis_z}; auto prob_lo = geom.ProbLoArray(); auto prob_hi = geom.ProbHiArray(); const auto dx = geom.CellSizeArray(); const auto geomdata = geom.data(); - /* Across all conserved state components, compute the method of lines rhs @@ -132,21 +132,17 @@ PeleC::getMOLSrcTerm( // Get primitives, Q, including (Y, T, p, rho) from conserved state { - BL_PROFILE("PeleC::ctoprim()"); - amrex::ParallelFor( - gbox, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - - if(using_rf) - { - amrex::Real rad=get_rotaxis_dist(i,j,k,axis,axis_loc,geomdata); - pc_ctoprim(i, j, k, sar, qar, qauxar, omega, rad); - } - else - { - pc_ctoprim(i, j, k, sar, qar, qauxar); - } - - }); + BL_PROFILE("PeleC::ctoprim()"); + amrex::ParallelFor( + gbox, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + if (using_rf) { + amrex::Real rad = + get_rotaxis_dist(i, j, k, axis, axis_loc, geomdata); + pc_ctoprim(i, j, k, sar, qar, qauxar, omega, rad); + } else { + pc_ctoprim(i, j, k, sar, qar, qauxar); + } + }); } // TODO deal with NSCBC /* @@ -185,37 +181,37 @@ PeleC::getMOLSrcTerm( // Compute transport coefficients, coincident with Q auto const& coe_cc = coeff_cc.array(); { - auto const& qar_yin = q.array(QFS); - auto const& qar_Tin = q.array(QTEMP); - auto const& qar_rhoin = q.array(QRHO); - auto const& coe_rhoD = coeff_cc.array(dComp_rhoD); - auto const& coe_mu = coeff_cc.array(dComp_mu); - auto const& coe_xi = coeff_cc.array(dComp_xi); - auto const& coe_lambda = coeff_cc.array(dComp_lambda); - BL_PROFILE("PeleC::get_transport_coeffs()"); - auto const* ltransparm = trans_parms.device_trans_parm(); - amrex::launch(gbox, [=] AMREX_GPU_DEVICE(amrex::Box const& tbx) { - auto trans = pele::physics::PhysicsType::transport(); - trans.get_transport_coeffs( - tbx, qar_yin, qar_Tin, qar_rhoin, coe_rhoD, - amrex::Array4(), coe_mu, coe_xi, coe_lambda, - ltransparm); - }); + auto const& qar_yin = q.array(QFS); + auto const& qar_Tin = q.array(QTEMP); + auto const& qar_rhoin = q.array(QRHO); + auto const& coe_rhoD = coeff_cc.array(dComp_rhoD); + auto const& coe_mu = coeff_cc.array(dComp_mu); + auto const& coe_xi = coeff_cc.array(dComp_xi); + auto const& coe_lambda = coeff_cc.array(dComp_lambda); + BL_PROFILE("PeleC::get_transport_coeffs()"); + auto const* ltransparm = trans_parms.device_trans_parm(); + amrex::launch(gbox, [=] AMREX_GPU_DEVICE(amrex::Box const& tbx) { + auto trans = pele::physics::PhysicsType::transport(); + trans.get_transport_coeffs( + tbx, qar_yin, qar_Tin, qar_rhoin, coe_rhoD, + amrex::Array4(), coe_mu, coe_xi, coe_lambda, + ltransparm); + }); } amrex::FArrayBox flux_ec[AMREX_SPACEDIM]; const amrex::Box eboxes[AMREX_SPACEDIM] = {AMREX_D_DECL( - amrex::surroundingNodes(cbox, 0), amrex::surroundingNodes(cbox, 1), - amrex::surroundingNodes(cbox, 2))}; + amrex::surroundingNodes(cbox, 0), amrex::surroundingNodes(cbox, 1), + amrex::surroundingNodes(cbox, 2))}; amrex::GpuArray, AMREX_SPACEDIM> flx; const amrex::GpuArray< - const amrex::Array4, AMREX_SPACEDIM> - area_arr{{AMREX_D_DECL( - area[0].array(mfi), area[1].array(mfi), area[2].array(mfi))}}; + const amrex::Array4, AMREX_SPACEDIM> + area_arr{{AMREX_D_DECL( + area[0].array(mfi), area[1].array(mfi), area[2].array(mfi))}}; for (int dir = 0; dir < AMREX_SPACEDIM; dir++) { - flux_ec[dir].resize(eboxes[dir], NVAR, amrex::The_Async_Arena()); - flx[dir] = flux_ec[dir].array(); - setV(eboxes[dir], NVAR, flx[dir], 0); + flux_ec[dir].resize(eboxes[dir], NVAR, amrex::The_Async_Arena()); + flx[dir] = flux_ec[dir].array(); + setV(eboxes[dir], NVAR, flx[dir], 0); } amrex::FArrayBox Dfab(cbox, NVAR, amrex::The_Async_Arena()); @@ -224,14 +220,14 @@ PeleC::getMOLSrcTerm( auto flag_arr = flags.const_array(mfi); { - // Compute Extensive diffusion fluxes for X, Y, Z - BL_PROFILE("PeleC::diffusion_flux()"); - const bool l_transport_harmonic_mean = transport_harmonic_mean; - for (int dir = 0; dir < AMREX_SPACEDIM; dir++) { - if ( - (typ == amrex::FabType::singlevalued) || - (typ == amrex::FabType::regular)) { - amrex::ParallelFor( + // Compute Extensive diffusion fluxes for X, Y, Z + BL_PROFILE("PeleC::diffusion_flux()"); + const bool l_transport_harmonic_mean = transport_harmonic_mean; + for (int dir = 0; dir < AMREX_SPACEDIM; dir++) { + if ( + (typ == amrex::FabType::singlevalued) || + (typ == amrex::FabType::regular)) { + amrex::ParallelFor( eboxes[dir], [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { amrex::GpuArray cf = {0.0}; if ( @@ -348,7 +344,7 @@ PeleC::getMOLSrcTerm( BL_PROFILE("PeleC::pc_hyp_mol_flux()"); pc_compute_hyp_mol_flux( cbox, qar, qauxar, flx, area_arr, plm_iorder, use_laxf_flux, - flags.array(mfi),prob_lo,dx,axis_loc,omega,axis,using_rf); + flags.array(mfi), prob_lo, dx, axis_loc, omega, axis, using_rf); } // Filter hydro fluxes diff --git a/Source/Godunov.H b/Source/Godunov.H index 474c04e3b..1c8874519 100644 --- a/Source/Godunov.H +++ b/Source/Godunov.H @@ -419,9 +419,9 @@ pc_cmpflx( const int bc_test_val = 1; amrex::Real dummy_flx[NUM_SPECIES] = {0.0}; - - //WIP: hard coding rotating frame stuff for now - //soon to be fixed + + // WIP: hard coding rotating frame stuff for now + // soon to be fixed riemann( rhol, ul, vl, v2l, pl, spl, rhor, ur, vr, v2r, pr, spr, bc_test_val, cav, ustar, flx(i, j, k, URHO), dummy_flx, flx(i, j, k, f_idx[0]), diff --git a/Source/Hydro.H b/Source/Hydro.H index 4da30a036..293e5b38f 100644 --- a/Source/Hydro.H +++ b/Source/Hydro.H @@ -20,8 +20,8 @@ pc_srctoprim( amrex::Array4 const& src, amrex::Array4 const& srcq) { - //FIXME: - //Hari S: unsure how to incorporate rotational frames here + // FIXME: + // Hari S: unsure how to incorporate rotational frames here // Local loading Vars ==> Load once from global memory use multiple times const amrex::Real srcrho = src(i, j, k, URHO); diff --git a/Source/IO.cpp b/Source/IO.cpp index 3d9798b98..fe7a5bd40 100644 --- a/Source/IO.cpp +++ b/Source/IO.cpp @@ -725,8 +725,8 @@ void PeleC::initLevelDataFromPlt( const int lev, const std::string& dataPltFile, amrex::MultiFab& S_new) { - //FIXME: - //Hari S: not ready for rotational frames + // FIXME: + // Hari S: not ready for rotational frames amrex::Print() << "Using data (rho, u, T, Y) from pltfile " << dataPltFile << std::endl; pele::physics::pltfilemanager::PltFileManager pltData(dataPltFile); diff --git a/Source/InitEB.cpp b/Source/InitEB.cpp index 0a1b82055..ad4160e1f 100644 --- a/Source/InitEB.cpp +++ b/Source/InitEB.cpp @@ -40,17 +40,18 @@ PeleC::initialize_eb2_structs() static_assert( std::is_standard_layout::value, "EBBndryGeom is not standard layout"); - - const amrex::GpuArray dxlev = geom.CellSizeArray(); + + const amrex::GpuArray dxlev = + geom.CellSizeArray(); const amrex::GpuArray prob_lo = - geom.ProbLoArray(); + geom.ProbLoArray(); const amrex::GpuArray prob_hi = - geom.ProbHiArray(); - amrex::Real axis = rf_axis; + geom.ProbHiArray(); + amrex::Real axis = rf_axis; amrex::Real omega = rf_omega; const auto& ebfactory = - dynamic_cast(Factory()); + dynamic_cast(Factory()); // These are the data sources amrex::MultiFab::Copy(vfrac, ebfactory.getVolFrac(), 0, 0, 1, numGrow()); @@ -63,9 +64,10 @@ PeleC::initialize_eb2_structs() sv_eb_bndry_grad_stencil.resize(vfrac.local_size()); sv_eb_flux.resize(vfrac.local_size()); sv_eb_bcval.resize(vfrac.local_size()); - - amrex::GpuArray axis_loc={rf_axis_x,rf_axis_y,rf_axis_z}; - amrex::Real rfdist2=rf_rad*rf_rad; + + amrex::GpuArray axis_loc = { + rf_axis_x, rf_axis_y, rf_axis_z}; + amrex::Real rfdist2 = rf_rad * rf_rad; auto const& flags = ebfactory.getMultiEBCellFlagFab(); @@ -76,642 +78,638 @@ PeleC::initialize_eb2_structs() pp.query("boundary_grad_stencil_type", bgs); if (bgs == 0) { - amrex::Print() << "Using quadratic stencil for the EB gradient\n"; + amrex::Print() << "Using quadratic stencil for the EB gradient\n"; } else if (bgs == 1) { - amrex::Print() << "Using least-squares stencil for the EB gradient\n"; + amrex::Print() << "Using least-squares stencil for the EB gradient\n"; } else { - amrex::Print() << "Unknown or unspecified EB gradient stencil type:" << bgs - << std::endl; - amrex::Abort(); + amrex::Print() << "Unknown or unspecified EB gradient stencil type:" << bgs + << std::endl; + amrex::Abort(); } #ifdef AMREX_USE_OMP #pragma omp parallel if (amrex::Gpu::notInLaunchRegion()) #endif for (amrex::MFIter mfi(vfrac, false); mfi.isValid(); ++mfi) { - const amrex::Box tbox = mfi.growntilebox(); - const amrex::EBCellFlagFab& flagfab = flags[mfi]; - const amrex::FabType typ = flagfab.getType(tbox); - const int iLocal = mfi.LocalIndex(); - - if ((typ == amrex::FabType::regular) || (typ == amrex::FabType::covered)) { - // do nothing - } else if (typ == amrex::FabType::singlevalued) { - auto const& flag_arr = flags.const_array(mfi); - - const auto nallcells = static_cast(tbox.numPts()); - amrex::Gpu::DeviceVector cutcell_offset(nallcells, 0); - auto* d_cutcell_offset = cutcell_offset.data(); - const auto ncutcells = amrex::Scan::PrefixSum( - nallcells, - [=] AMREX_GPU_DEVICE(int icell) -> int { - const auto iv = tbox.atOffset(icell); - return static_cast(flag_arr(iv).isSingleValued()); - }, - [=] AMREX_GPU_DEVICE(int icell, int const& x) { - d_cutcell_offset[icell] = x; - }, - amrex::Scan::Type::exclusive, amrex::Scan::retSum); - - AMREX_ASSERT(ncutcells == flagfab.getNumCutCells(tbox)); - - sv_eb_bndry_geom[iLocal].resize(ncutcells); - if (ncutcells > 0) { - auto* d_sv_eb_bndry_geom = sv_eb_bndry_geom[iLocal].data(); - amrex::ParallelFor( - tbox, - [=] AMREX_GPU_DEVICE(int i, int j, int AMREX_D_PICK(, , k)) noexcept { - const amrex::IntVect iv(amrex::IntVect(AMREX_D_DECL(i, j, k))); - if (flag_arr(iv).isSingleValued()) { - const auto icell = tbox.index(iv); - const auto idx = d_cutcell_offset[icell]; - d_sv_eb_bndry_geom[idx].iv = iv; - } - }); - } + const amrex::Box tbox = mfi.growntilebox(); + const amrex::EBCellFlagFab& flagfab = flags[mfi]; + const amrex::FabType typ = flagfab.getType(tbox); + const int iLocal = mfi.LocalIndex(); + + if ((typ == amrex::FabType::regular) || (typ == amrex::FabType::covered)) { + // do nothing + } else if (typ == amrex::FabType::singlevalued) { + auto const& flag_arr = flags.const_array(mfi); + + const auto nallcells = static_cast(tbox.numPts()); + amrex::Gpu::DeviceVector cutcell_offset(nallcells, 0); + auto* d_cutcell_offset = cutcell_offset.data(); + const auto ncutcells = amrex::Scan::PrefixSum( + nallcells, + [=] AMREX_GPU_DEVICE(int icell) -> int { + const auto iv = tbox.atOffset(icell); + return static_cast(flag_arr(iv).isSingleValued()); + }, + [=] AMREX_GPU_DEVICE(int icell, int const& x) { + d_cutcell_offset[icell] = x; + }, + amrex::Scan::Type::exclusive, amrex::Scan::retSum); + + AMREX_ASSERT(ncutcells == flagfab.getNumCutCells(tbox)); + + sv_eb_bndry_geom[iLocal].resize(ncutcells); + if (ncutcells > 0) { + auto* d_sv_eb_bndry_geom = sv_eb_bndry_geom[iLocal].data(); + amrex::ParallelFor( + tbox, + [=] AMREX_GPU_DEVICE(int i, int j, int AMREX_D_PICK(, , k)) noexcept { + const amrex::IntVect iv(amrex::IntVect(AMREX_D_DECL(i, j, k))); + if (flag_arr(iv).isSingleValued()) { + const auto icell = tbox.index(iv); + const auto idx = d_cutcell_offset[icell]; + d_sv_eb_bndry_geom[idx].iv = iv; + } + }); + } - // Now fill the sv_eb_bndry_geom - auto const& vfrac_arr = vfrac.const_array(mfi); - auto const& bndrycent_arr = bndrycent->const_array(mfi); - AMREX_D_TERM(auto const& apx = areafrac[0]->const_array(mfi); - , auto const& apy = areafrac[1]->const_array(mfi); - , auto const& apz = areafrac[2]->const_array(mfi);) - pc_fill_sv_ebg( - tbox, ncutcells, vfrac_arr, bndrycent_arr, AMREX_D_DECL(apx, apy, apz), - sv_eb_bndry_geom[iLocal].data()); - - // Fill in boundary gradient for cut cells in this grown tile - sv_eb_bndry_grad_stencil[iLocal].resize(ncutcells); - const amrex::Real dx = geom.CellSize()[0]; - if (bgs == 0) { - pc_fill_bndry_grad_stencil_quadratic( - tbox, dx, ncutcells, sv_eb_bndry_geom[iLocal].data(), ncutcells, - sv_eb_bndry_grad_stencil[iLocal].data()); - } else if (bgs == 1) { - pc_fill_bndry_grad_stencil_ls( - tbox, dx, ncutcells, sv_eb_bndry_geom[iLocal].data(), ncutcells, - flags.array(mfi), sv_eb_bndry_grad_stencil[iLocal].data()); - } else { - amrex::Print() - << "Unknown or unspecified boundary gradient stencil type:" << bgs - << std::endl; - amrex::Abort(); - } + // Now fill the sv_eb_bndry_geom + auto const& vfrac_arr = vfrac.const_array(mfi); + auto const& bndrycent_arr = bndrycent->const_array(mfi); + AMREX_D_TERM(auto const& apx = areafrac[0]->const_array(mfi); + , auto const& apy = areafrac[1]->const_array(mfi); + , auto const& apz = areafrac[2]->const_array(mfi);) + pc_fill_sv_ebg( + tbox, ncutcells, vfrac_arr, bndrycent_arr, AMREX_D_DECL(apx, apy, apz), + sv_eb_bndry_geom[iLocal].data()); + + // Fill in boundary gradient for cut cells in this grown tile + sv_eb_bndry_grad_stencil[iLocal].resize(ncutcells); + const amrex::Real dx = geom.CellSize()[0]; + if (bgs == 0) { + pc_fill_bndry_grad_stencil_quadratic( + tbox, dx, ncutcells, sv_eb_bndry_geom[iLocal].data(), ncutcells, + sv_eb_bndry_grad_stencil[iLocal].data()); + } else if (bgs == 1) { + pc_fill_bndry_grad_stencil_ls( + tbox, dx, ncutcells, sv_eb_bndry_geom[iLocal].data(), ncutcells, + flags.array(mfi), sv_eb_bndry_grad_stencil[iLocal].data()); + } else { + amrex::Print() + << "Unknown or unspecified boundary gradient stencil type:" << bgs + << std::endl; + amrex::Abort(); + } - if (eb_noslip or eb_isothermal) { - amrex::Box sbox = amrex::grow(tbox, -3); - pc_check_bndry_grad_stencil( - sbox, ncutcells, flags.array(mfi), - sv_eb_bndry_grad_stencil[iLocal].data()); - } + if (eb_noslip or eb_isothermal) { + amrex::Box sbox = amrex::grow(tbox, -3); + pc_check_bndry_grad_stencil( + sbox, ncutcells, flags.array(mfi), + sv_eb_bndry_grad_stencil[iLocal].data()); + } - sv_eb_flux[iLocal].define(sv_eb_bndry_grad_stencil[iLocal], NVAR); - sv_eb_bcval[iLocal].define(sv_eb_bndry_grad_stencil[iLocal], QVAR); + sv_eb_flux[iLocal].define(sv_eb_bndry_grad_stencil[iLocal], NVAR); + sv_eb_bcval[iLocal].define(sv_eb_bndry_grad_stencil[iLocal], QVAR); - if (eb_isothermal && (diffuse_temp || diffuse_enth)) { - sv_eb_bcval[iLocal].setVal(eb_boundary_T, QTEMP); - } - if (eb_noslip && diffuse_vel) { - - if(do_rf) - { - //amrex::Print()<<"do_rf in init eb\n"; - auto u_bcval = sv_eb_bcval[iLocal].dataPtr(QU); - auto v_bcval = sv_eb_bcval[iLocal].dataPtr(QV); - auto w_bcval = sv_eb_bcval[iLocal].dataPtr(QW); - auto sten = sv_eb_bndry_geom[iLocal].data(); - if (ncutcells > 0) - { - amrex::ParallelFor(ncutcells, [=] AMREX_GPU_DEVICE(int L) { - const auto &iv = sten[L].iv; - - amrex::Real xloc=prob_lo[0] + (iv[0]+0.5 + sten[L].eb_centroid[0])*dxlev[0]; - amrex::Real yloc=prob_lo[1] + (iv[1]+0.5 + sten[L].eb_centroid[1])*dxlev[1]; - amrex::Real zloc=prob_lo[2] + (iv[2]+0.5 + sten[L].eb_centroid[2])*dxlev[2]; - - amrex::RealVect r(0.0,0.0,0.0); - amrex::RealVect w(0.0,0.0,0.0); - - r[0]=xloc-axis_loc[0]; - r[1]=yloc-axis_loc[1]; - r[2]=zloc-axis_loc[2]; - - amrex::Real rmag2=r[0]*r[0]+r[1]*r[1]+r[2]*r[2]; - rmag2 -= r[axis]*r[axis]; //only in plane - - if(rmag2 > rfdist2) - { - w[axis]=omega; - amrex::RealVect w_cross_r = w.crossProduct(r); - - u_bcval[L]=-w_cross_r[0]; - v_bcval[L]=-w_cross_r[1]; - w_bcval[L]=-w_cross_r[2]; - } - else - { - u_bcval[L]=0.0; - v_bcval[L]=0.0; - w_bcval[L]=0.0; - } - }); - } - } - else - { - sv_eb_bcval[iLocal].setVal(0, QU, AMREX_SPACEDIM); + if (eb_isothermal && (diffuse_temp || diffuse_enth)) { + sv_eb_bcval[iLocal].setVal(eb_boundary_T, QTEMP); + } + if (eb_noslip && diffuse_vel) { + + if (do_rf) { + // amrex::Print()<<"do_rf in init eb\n"; + auto u_bcval = sv_eb_bcval[iLocal].dataPtr(QU); + auto v_bcval = sv_eb_bcval[iLocal].dataPtr(QV); + auto w_bcval = sv_eb_bcval[iLocal].dataPtr(QW); + auto sten = sv_eb_bndry_geom[iLocal].data(); + if (ncutcells > 0) { + amrex::ParallelFor(ncutcells, [=] AMREX_GPU_DEVICE(int L) { + const auto& iv = sten[L].iv; + + amrex::Real xloc = + prob_lo[0] + (iv[0] + 0.5 + sten[L].eb_centroid[0]) * dxlev[0]; + amrex::Real yloc = + prob_lo[1] + (iv[1] + 0.5 + sten[L].eb_centroid[1]) * dxlev[1]; + amrex::Real zloc = + prob_lo[2] + (iv[2] + 0.5 + sten[L].eb_centroid[2]) * dxlev[2]; + + amrex::RealVect r(0.0, 0.0, 0.0); + amrex::RealVect w(0.0, 0.0, 0.0); + + r[0] = xloc - axis_loc[0]; + r[1] = yloc - axis_loc[1]; + r[2] = zloc - axis_loc[2]; + + amrex::Real rmag2 = r[0] * r[0] + r[1] * r[1] + r[2] * r[2]; + rmag2 -= r[axis] * r[axis]; // only in plane + + if (rmag2 > rfdist2) { + w[axis] = omega; + amrex::RealVect w_cross_r = w.crossProduct(r); + + u_bcval[L] = -w_cross_r[0]; + v_bcval[L] = -w_cross_r[1]; + w_bcval[L] = -w_cross_r[2]; + } else { + u_bcval[L] = 0.0; + v_bcval[L] = 0.0; + w_bcval[L] = 0.0; } + }); } - - } else { - amrex::Print() << "unknown (or multivalued) fab type" << std::endl; - amrex::Abort(); + } else { + sv_eb_bcval[iLocal].setVal(0, QU, AMREX_SPACEDIM); + } } + + } else { + amrex::Print() << "unknown (or multivalued) fab type" << std::endl; + amrex::Abort(); + } } // Second pass over dirs and fabs to fill flux interpolation stencils for (int dir = 0; dir < AMREX_SPACEDIM; ++dir) { - flux_interp_stencil[dir].resize(vfrac.local_size()); + flux_interp_stencil[dir].resize(vfrac.local_size()); #ifdef AMREX_USE_OMP #pragma omp parallel if (amrex::Gpu::notInLaunchRegion()) #endif - for (amrex::MFIter mfi(vfrac, false); mfi.isValid(); ++mfi) { - const amrex::Box tbox = mfi.growntilebox(numGrow()); - const auto& flagfab = flags[mfi]; - const amrex::FabType typ = flagfab.getType(tbox); - const int iLocal = mfi.LocalIndex(); - - if (typ == amrex::FabType::singlevalued) { - auto const& flag_arr = flagfab.const_array(); - const auto afrac_arr = (*areafrac[dir])[mfi].const_array(); - const auto facecent_arr = (*facecent[dir])[mfi].const_array(); - const auto fbox = amrex::surroundingNodes(tbox, dir); - const auto nallfaces = static_cast(fbox.numPts()); - amrex::Gpu::DeviceVector cutfaces_offset(nallfaces, 0); - auto* d_cutface_offset = cutfaces_offset.data(); - const auto ncutfaces = amrex::Scan::PrefixSum( - nallfaces, - [=] AMREX_GPU_DEVICE(int iface) -> int { - const auto iv = fbox.atOffset(iface); - const bool covered_cells = - flag_arr(iv).isCovered() && - flag_arr(iv - amrex::IntVect::TheDimensionVector(dir)) - .isCovered(); - return static_cast((afrac_arr(iv) < 1.0) && (!covered_cells)); - }, - [=] AMREX_GPU_DEVICE(int iface, int const& x) { - d_cutface_offset[iface] = x; - }, - amrex::Scan::Type::exclusive, amrex::Scan::retSum); - - if (ncutfaces > 0) { - flux_interp_stencil[dir][iLocal].resize(ncutfaces); - auto* d_flux_interp_stencil = flux_interp_stencil[dir][iLocal].data(); - amrex::ParallelFor( - fbox, [=] AMREX_GPU_DEVICE( - int i, int j, int AMREX_D_PICK(, , k)) noexcept { - const amrex::IntVect iv(amrex::IntVect(AMREX_D_DECL(i, j, k))); - const bool covered_cells = - flag_arr(iv).isCovered() && - flag_arr(iv - amrex::IntVect::TheDimensionVector(dir)) - .isCovered(); - if ((afrac_arr(iv) < 1.0) && (!covered_cells)) { - const auto iface = fbox.index(iv); - const auto idx = d_cutface_offset[iface]; - d_flux_interp_stencil[idx].iv = iv; - } - }); - - pc_fill_flux_interp_stencil( - tbox, ncutfaces, facecent_arr, afrac_arr, d_flux_interp_stencil); + for (amrex::MFIter mfi(vfrac, false); mfi.isValid(); ++mfi) { + const amrex::Box tbox = mfi.growntilebox(numGrow()); + const auto& flagfab = flags[mfi]; + const amrex::FabType typ = flagfab.getType(tbox); + const int iLocal = mfi.LocalIndex(); + + if (typ == amrex::FabType::singlevalued) { + auto const& flag_arr = flagfab.const_array(); + const auto afrac_arr = (*areafrac[dir])[mfi].const_array(); + const auto facecent_arr = (*facecent[dir])[mfi].const_array(); + const auto fbox = amrex::surroundingNodes(tbox, dir); + const auto nallfaces = static_cast(fbox.numPts()); + amrex::Gpu::DeviceVector cutfaces_offset(nallfaces, 0); + auto* d_cutface_offset = cutfaces_offset.data(); + const auto ncutfaces = amrex::Scan::PrefixSum( + nallfaces, + [=] AMREX_GPU_DEVICE(int iface) -> int { + const auto iv = fbox.atOffset(iface); + const bool covered_cells = + flag_arr(iv).isCovered() && + flag_arr(iv - amrex::IntVect::TheDimensionVector(dir)) + .isCovered(); + return static_cast((afrac_arr(iv) < 1.0) && (!covered_cells)); + }, + [=] AMREX_GPU_DEVICE(int iface, int const& x) { + d_cutface_offset[iface] = x; + }, + amrex::Scan::Type::exclusive, amrex::Scan::retSum); + + if (ncutfaces > 0) { + flux_interp_stencil[dir][iLocal].resize(ncutfaces); + auto* d_flux_interp_stencil = flux_interp_stencil[dir][iLocal].data(); + amrex::ParallelFor( + fbox, [=] AMREX_GPU_DEVICE( + int i, int j, int AMREX_D_PICK(, , k)) noexcept { + const amrex::IntVect iv(amrex::IntVect(AMREX_D_DECL(i, j, k))); + const bool covered_cells = + flag_arr(iv).isCovered() && + flag_arr(iv - amrex::IntVect::TheDimensionVector(dir)) + .isCovered(); + if ((afrac_arr(iv) < 1.0) && (!covered_cells)) { + const auto iface = fbox.index(iv); + const auto idx = d_cutface_offset[iface]; + d_flux_interp_stencil[idx].iv = iv; } - } else if ( - (typ != amrex::FabType::regular) && (typ != amrex::FabType::covered)) { - amrex::Abort("multi-valued flux interp stencil to be implemented"); - } + }); + + pc_fill_flux_interp_stencil( + tbox, ncutfaces, facecent_arr, afrac_arr, d_flux_interp_stencil); + } + } else if ( + (typ != amrex::FabType::regular) && (typ != amrex::FabType::covered)) { + amrex::Abort("multi-valued flux interp stencil to be implemented"); } + } } } void PeleC::define_body_state() { - BL_PROFILE("PeleC::define_body_state()"); + BL_PROFILE("PeleC::define_body_state()"); - if (!eb_in_domain) { - return; - } + if (!eb_in_domain) { + return; + } - if (eb_zero_body_state) { - for (int n = 0; n < NVAR; ++n) { - body_state[n] = 0.0; - } - body_state_set = true; - return; + if (eb_zero_body_state) { + for (int n = 0; n < NVAR; ++n) { + body_state[n] = 0.0; } + body_state_set = true; + return; + } - // Scan over data and find a point in the fluid to use to - // set computable values in cells outside the domain - // We look for the lexicographically first valid point - if (!body_state_set) { - auto const& fact = - dynamic_cast(Factory()); - auto const& flags = fact.getMultiEBCellFlagFab(); - auto flag_arrays = flags.const_arrays(); + // Scan over data and find a point in the fluid to use to + // set computable values in cells outside the domain + // We look for the lexicographically first valid point + if (!body_state_set) { + auto const& fact = + dynamic_cast(Factory()); + auto const& flags = fact.getMultiEBCellFlagFab(); + auto flag_arrays = flags.const_arrays(); - amrex::MultiFab minIdxTmp(grids, dmap, 1, 0, amrex::MFInfo(), Factory()); - auto tmp_arrays = minIdxTmp.arrays(); + amrex::MultiFab minIdxTmp(grids, dmap, 1, 0, amrex::MFInfo(), Factory()); + auto tmp_arrays = minIdxTmp.arrays(); - const auto& dbox = geom.Domain(); - const long max_idx = dbox.numPts(); + const auto& dbox = geom.Domain(); + const long max_idx = dbox.numPts(); - // function minimized at the first uncovered cell - amrex::ParallelFor( - minIdxTmp, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { - amrex::ignore_unused(k); - const amrex::IntVect iv(amrex::IntVect(AMREX_D_DECL(i, j, k))); - const long idx_masked = - flag_arrays[nbx](iv).isRegular() ? dbox.index(iv) : max_idx; - tmp_arrays[nbx](iv) = static_cast(idx_masked); - }); - amrex::Gpu::synchronize(); - - // select the data at the first uncovered cell - const amrex::IntVect idx_min = minIdxTmp.minIndex(0); - const amrex::Box tgt_box{idx_min, idx_min}; - const amrex::MultiFab& S = get_new_data(State_Type); - for (int n = 0; n < NVAR; ++n) { - body_state[n] = S.min(tgt_box, n); - } - body_state_set = true; + // function minimized at the first uncovered cell + amrex::ParallelFor( + minIdxTmp, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { + amrex::ignore_unused(k); + const amrex::IntVect iv(amrex::IntVect(AMREX_D_DECL(i, j, k))); + const long idx_masked = + flag_arrays[nbx](iv).isRegular() ? dbox.index(iv) : max_idx; + tmp_arrays[nbx](iv) = static_cast(idx_masked); + }); + amrex::Gpu::synchronize(); + + // select the data at the first uncovered cell + const amrex::IntVect idx_min = minIdxTmp.minIndex(0); + const amrex::Box tgt_box{idx_min, idx_min}; + const amrex::MultiFab& S = get_new_data(State_Type); + for (int n = 0; n < NVAR; ++n) { + body_state[n] = S.min(tgt_box, n); } + body_state_set = true; + } } void PeleC::set_body_state(amrex::MultiFab& S) { - BL_PROFILE("PeleC::set_body_state()"); - - if (!eb_in_domain) { - return; - } + BL_PROFILE("PeleC::set_body_state()"); - if (!body_state_set) { - define_body_state(); - } + if (!eb_in_domain) { + return; + } - auto const& fact = dynamic_cast(Factory()); - auto const& flags = fact.getMultiEBCellFlagFab(); + if (!body_state_set) { + define_body_state(); + } - auto const& sarrs = S.arrays(); - auto const& flagarrs = flags.const_arrays(); - auto const captured_body_state = body_state; - const amrex::IntVect ngs(0); - amrex::ParallelFor( - S, ngs, NVAR, - [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k, int n) noexcept { - pc_set_body_state( - i, j, k, n, flagarrs[nbx], captured_body_state, sarrs[nbx]); - }); - amrex::Gpu::synchronize(); + auto const& fact = dynamic_cast(Factory()); + auto const& flags = fact.getMultiEBCellFlagFab(); + + auto const& sarrs = S.arrays(); + auto const& flagarrs = flags.const_arrays(); + auto const captured_body_state = body_state; + const amrex::IntVect ngs(0); + amrex::ParallelFor( + S, ngs, NVAR, + [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k, int n) noexcept { + pc_set_body_state( + i, j, k, n, flagarrs[nbx], captured_body_state, sarrs[nbx]); + }); + amrex::Gpu::synchronize(); } // Sets up implicit function using EB2 infrastructure void initialize_EB2( - const amrex::Geometry& geom, - const int eb_max_level, - const int max_level, - const int coarsening, - const amrex::Vector& ref_ratio, - const amrex::IntVect& max_grid_size) + const amrex::Geometry& geom, + const int eb_max_level, + const int max_level, + const int coarsening, + const amrex::Vector& ref_ratio, + const amrex::IntVect& max_grid_size) { - BL_PROFILE("PeleC::initialize_EB2()"); + BL_PROFILE("PeleC::initialize_EB2()"); - amrex::Print() << "Initializing EB2" << std::endl; - amrex::ParmParse ppeb2("eb2"); + amrex::Print() << "Initializing EB2" << std::endl; + amrex::ParmParse ppeb2("eb2"); - std::string geom_type("all_regular"); - ppeb2.query("geom_type", geom_type); + std::string geom_type("all_regular"); + ppeb2.query("geom_type", geom_type); - int max_coarsening_level = 0; - for (int lev = 0; lev < max_level; ++lev) { - // Since EB always coarsens by a factor of 2 - if (ref_ratio[lev] == 2) { - max_coarsening_level += 1; - } else if (ref_ratio[lev] == 4) { - max_coarsening_level += 2; - } else { - amrex::Abort("initalize_EB2: Refinement ratio must be 2 or 4"); - } - } - - // Custom types defined here - all_regular, plane, sphere, etc, will get - // picked up by default (see AMReX_EB2.cpp around L100 ) - amrex::Vector amrex_defaults( - {"all_regular", "box", "cylinder", "plane", "sphere", "torus", "parser"}); - if (!(std::find(amrex_defaults.begin(), amrex_defaults.end(), geom_type) != - amrex_defaults.end())) { - std::unique_ptr geometry( - pele::pelec::Geometry::create(geom_type)); - geometry->build(geom, max_coarsening_level + coarsening); + int max_coarsening_level = 0; + for (int lev = 0; lev < max_level; ++lev) { + // Since EB always coarsens by a factor of 2 + if (ref_ratio[lev] == 2) { + max_coarsening_level += 1; + } else if (ref_ratio[lev] == 4) { + max_coarsening_level += 2; } else { - amrex::EB2::Build( - geom, max_coarsening_level + coarsening, - max_coarsening_level + coarsening); + amrex::Abort("initalize_EB2: Refinement ratio must be 2 or 4"); } + } - // Add finer level, might be inconsistent with the coarser level created - // above. - if (geom_type != "chkfile") { - amrex::EB2::addFineLevels(max_level - eb_max_level); - } + // Custom types defined here - all_regular, plane, sphere, etc, will get + // picked up by default (see AMReX_EB2.cpp around L100 ) + amrex::Vector amrex_defaults( + {"all_regular", "box", "cylinder", "plane", "sphere", "torus", "parser"}); + if (!(std::find(amrex_defaults.begin(), amrex_defaults.end(), geom_type) != + amrex_defaults.end())) { + std::unique_ptr geometry( + pele::pelec::Geometry::create(geom_type)); + geometry->build(geom, max_coarsening_level + coarsening); + } else { + amrex::EB2::Build( + geom, max_coarsening_level + coarsening, + max_coarsening_level + coarsening); + } + + // Add finer level, might be inconsistent with the coarser level created + // above. + if (geom_type != "chkfile") { + amrex::EB2::addFineLevels(max_level - eb_max_level); + } - bool write_chk_geom = false; - ppeb2.query("write_chk_geom", write_chk_geom); - if (write_chk_geom) { - const auto& is = amrex::EB2::IndexSpace::top(); - const auto& eb_level = is.getLevel(geom); - std::string chkfile = "chk_geom"; - ppeb2.query("chkfile", chkfile); + bool write_chk_geom = false; + ppeb2.query("write_chk_geom", write_chk_geom); + if (write_chk_geom) { + const auto& is = amrex::EB2::IndexSpace::top(); + const auto& eb_level = is.getLevel(geom); + std::string chkfile = "chk_geom"; + ppeb2.query("chkfile", chkfile); - eb_level.write_to_chkpt_file( - chkfile, amrex::EB2::ExtendDomainFace(), max_grid_size[0]); - } + eb_level.write_to_chkpt_file( + chkfile, amrex::EB2::ExtendDomainFace(), max_grid_size[0]); + } } void PeleC::initialize_signed_distance() { - BL_PROFILE("PeleC::initialize_signed_distance()"); - if (level == 0) { - const auto& ebfactory = - dynamic_cast(Factory()); - signed_dist_0.define(grids, dmap, 1, 1, amrex::MFInfo(), ebfactory); - - // Estimate the maximum distance we need in terms of level 0 dx: - auto extentFactor = static_cast(parent->nErrorBuf(0)); - for (int ilev = 1; ilev <= parent->maxLevel(); ++ilev) { - extentFactor += static_cast(parent->nErrorBuf(ilev)) / - std::pow( - static_cast(parent->refRatio(ilev - 1)[0]), - static_cast(ilev)); - } - extentFactor *= tagging_parm->detag_eb_factor; + BL_PROFILE("PeleC::initialize_signed_distance()"); + if (level == 0) { + const auto& ebfactory = + dynamic_cast(Factory()); + signed_dist_0.define(grids, dmap, 1, 1, amrex::MFInfo(), ebfactory); + + // Estimate the maximum distance we need in terms of level 0 dx: + auto extentFactor = static_cast(parent->nErrorBuf(0)); + for (int ilev = 1; ilev <= parent->maxLevel(); ++ilev) { + extentFactor += static_cast(parent->nErrorBuf(ilev)) / + std::pow( + static_cast(parent->refRatio(ilev - 1)[0]), + static_cast(ilev)); + } + extentFactor *= tagging_parm->detag_eb_factor; - amrex::MultiFab signDist( - convert(grids, amrex::IntVect::TheUnitVector()), dmap, 1, 1, - amrex::MFInfo(), ebfactory); - amrex::FillSignedDistance(signDist, true); + amrex::MultiFab signDist( + convert(grids, amrex::IntVect::TheUnitVector()), dmap, 1, 1, + amrex::MFInfo(), ebfactory); + amrex::FillSignedDistance(signDist, true); - const auto& sd_ccs = signed_dist_0.arrays(); - const auto& sd_nds = signDist.const_arrays(); - const amrex::IntVect ngs(signed_dist_0.nGrow()); - amrex::ParallelFor( - signed_dist_0, ngs, - [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { - const auto& sd_cc = sd_ccs[nbx]; - const auto& sd_nd = sd_nds[nbx]; - const amrex::Real fac = AMREX_D_PICK(0.5, 0.25, 0.125); - sd_cc(i, j, k) = AMREX_D_TERM( - sd_nd(i, j, k) + sd_nd(i + 1, j, k), - +sd_nd(i, j + 1, k) + sd_nd(i + 1, j + 1, k), - +sd_nd(i, j, k + 1) + sd_nd(i + 1, j, k + 1) + - sd_nd(i, j + 1, k + 1) + sd_nd(i + 1, j + 1, k + 1)); - sd_cc(i, j, k) *= fac; - }); - amrex::Gpu::synchronize(); + const auto& sd_ccs = signed_dist_0.arrays(); + const auto& sd_nds = signDist.const_arrays(); + const amrex::IntVect ngs(signed_dist_0.nGrow()); + amrex::ParallelFor( + signed_dist_0, ngs, + [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { + const auto& sd_cc = sd_ccs[nbx]; + const auto& sd_nd = sd_nds[nbx]; + const amrex::Real fac = AMREX_D_PICK(0.5, 0.25, 0.125); + sd_cc(i, j, k) = AMREX_D_TERM( + sd_nd(i, j, k) + sd_nd(i + 1, j, k), + +sd_nd(i, j + 1, k) + sd_nd(i + 1, j + 1, k), + +sd_nd(i, j, k + 1) + sd_nd(i + 1, j, k + 1) + + sd_nd(i, j + 1, k + 1) + sd_nd(i + 1, j + 1, k + 1)); + sd_cc(i, j, k) *= fac; + }); + amrex::Gpu::synchronize(); - signed_dist_0.FillBoundary(parent->Geom(0).periodicity()); - extend_signed_distance(&signed_dist_0, extentFactor); - } + signed_dist_0.FillBoundary(parent->Geom(0).periodicity()); + extend_signed_distance(&signed_dist_0, extentFactor); + } } void PeleC::eb_distance(const int lev, amrex::MultiFab& signDistLev) { - BL_PROFILE("PeleC::eb_distance()"); - if (lev == 0) { - amrex::MultiFab::Copy(signDistLev, signed_dist_0, 0, 0, 1, 0); - return; - } + BL_PROFILE("PeleC::eb_distance()"); + if (lev == 0) { + amrex::MultiFab::Copy(signDistLev, signed_dist_0, 0, 0, 1, 0); + return; + } - // A pair of MF to hold crse & fine dist data - amrex::Array, 2> MFpair; + // A pair of MF to hold crse & fine dist data + amrex::Array, 2> MFpair; - // dummy bcs - amrex::Vector bcrec_dummy(1); - for (int dir = 0; dir < AMREX_SPACEDIM; dir++) { - bcrec_dummy[0].setLo(dir, amrex::BCType::int_dir); - bcrec_dummy[0].setHi(dir, amrex::BCType::int_dir); - } + // dummy bcs + amrex::Vector bcrec_dummy(1); + for (int dir = 0; dir < AMREX_SPACEDIM; dir++) { + bcrec_dummy[0].setLo(dir, amrex::BCType::int_dir); + bcrec_dummy[0].setHi(dir, amrex::BCType::int_dir); + } - // Interpolate on successive levels up to lev - const auto& pc_0lev = getLevel(0); - for (int ilev = 1; ilev <= lev; ++ilev) { - - // Use MF EB interp - auto& interpolater = amrex::eb_mf_lincc_interp; - - // Get signDist on coarsen fineBA - const auto& pc_ilev = getLevel(ilev); - const auto& grids_ilev = pc_ilev.grids; - const auto& dmap_ilev = pc_ilev.DistributionMap(); - amrex::BoxArray coarsenBA(grids_ilev.size()); - for (int j = 0, N = static_cast(coarsenBA.size()); j < N; ++j) { - coarsenBA.set( - j, interpolater.CoarseBox(grids_ilev[j], parent->refRatio(ilev - 1))); - } - amrex::MultiFab coarsenSignDist(coarsenBA, dmap_ilev, 1, 0); - coarsenSignDist.setVal(0.0); - const amrex::MultiFab* crseSignDist = - (ilev == 1) ? &pc_0lev.signed_dist_0 : MFpair[0].get(); - coarsenSignDist.ParallelCopy(*crseSignDist, 0, 0, 1); - - // Interpolate on current ilev - amrex::MultiFab* currentSignDist; - if (ilev < lev) { - const auto& ebfactory = - dynamic_cast(pc_ilev.Factory()); - MFpair[1] = std::make_unique( - grids_ilev, dmap_ilev, 1, 0, amrex::MFInfo(), ebfactory); - } - currentSignDist = (ilev == lev) ? &signDistLev : MFpair[1].get(); + // Interpolate on successive levels up to lev + const auto& pc_0lev = getLevel(0); + for (int ilev = 1; ilev <= lev; ++ilev) { + + // Use MF EB interp + auto& interpolater = amrex::eb_mf_lincc_interp; + + // Get signDist on coarsen fineBA + const auto& pc_ilev = getLevel(ilev); + const auto& grids_ilev = pc_ilev.grids; + const auto& dmap_ilev = pc_ilev.DistributionMap(); + amrex::BoxArray coarsenBA(grids_ilev.size()); + for (int j = 0, N = static_cast(coarsenBA.size()); j < N; ++j) { + coarsenBA.set( + j, interpolater.CoarseBox(grids_ilev[j], parent->refRatio(ilev - 1))); + } + amrex::MultiFab coarsenSignDist(coarsenBA, dmap_ilev, 1, 0); + coarsenSignDist.setVal(0.0); + const amrex::MultiFab* crseSignDist = + (ilev == 1) ? &pc_0lev.signed_dist_0 : MFpair[0].get(); + coarsenSignDist.ParallelCopy(*crseSignDist, 0, 0, 1); + + // Interpolate on current ilev + amrex::MultiFab* currentSignDist; + if (ilev < lev) { + const auto& ebfactory = + dynamic_cast(pc_ilev.Factory()); + MFpair[1] = std::make_unique( + grids_ilev, dmap_ilev, 1, 0, amrex::MFInfo(), ebfactory); + } + currentSignDist = (ilev == lev) ? &signDistLev : MFpair[1].get(); - interpolater.interp( - coarsenSignDist, 0, *currentSignDist, 0, 1, amrex::IntVect(0), - parent->Geom(ilev - 1), parent->Geom(ilev), parent->Geom(ilev).Domain(), - parent->refRatio(ilev - 1), {bcrec_dummy}, 0); + interpolater.interp( + coarsenSignDist, 0, *currentSignDist, 0, 1, amrex::IntVect(0), + parent->Geom(ilev - 1), parent->Geom(ilev), parent->Geom(ilev).Domain(), + parent->refRatio(ilev - 1), {bcrec_dummy}, 0); - // Swap MFpair - if (ilev < lev) { - std::swap(MFpair[0], MFpair[1]); - } + // Swap MFpair + if (ilev < lev) { + std::swap(MFpair[0], MFpair[1]); } + } } // Extend the cell-centered based signed distance function void PeleC::extend_signed_distance( - amrex::MultiFab* signDist, amrex::Real extendFactor) + amrex::MultiFab* signDist, amrex::Real extendFactor) { - // This is a not-so-pretty piece of code that'll take AMReX cell-averaged - // signed distance and propagates it manually up to the point where we need to - // have it for derefining. - BL_PROFILE("PeleC::extend_signed_distance()"); - const auto geomdata = parent->Geom(0).data(); - amrex::Real maxSignedDist = signDist->max(0); - const auto& ebfactory = + // This is a not-so-pretty piece of code that'll take AMReX cell-averaged + // signed distance and propagates it manually up to the point where we need to + // have it for derefining. + BL_PROFILE("PeleC::extend_signed_distance()"); + const auto geomdata = parent->Geom(0).data(); + amrex::Real maxSignedDist = signDist->max(0); + const auto& ebfactory = dynamic_cast(signDist->Factory()); - const auto& flags = ebfactory.getMultiEBCellFlagFab(); - int nGrowFac = flags.nGrow() + 1; - - // First set the region far away at the max value we need - auto const& sd_ccs = signDist->arrays(); - const amrex::IntVect ngs(signDist->nGrow()); - amrex::ParallelFor( - *signDist, ngs, - [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { - const auto& sd_cc = sd_ccs[nbx]; - if (sd_cc(i, j, k) >= maxSignedDist - 1e-12) { - const amrex::Real* dx = geomdata.CellSize(); - sd_cc(i, j, k) = nGrowFac * dx[0] * extendFactor; - } - }); - amrex::Gpu::synchronize(); - - // Iteratively compute the distance function in boxes, propagating across - // boxes using ghost cells If needed, increase the number of loop to extend - // the reach of the distance function - const int nMaxLoop = 4; - for (int dloop = 1; dloop <= nMaxLoop; dloop++) { + const auto& flags = ebfactory.getMultiEBCellFlagFab(); + int nGrowFac = flags.nGrow() + 1; + + // First set the region far away at the max value we need + auto const& sd_ccs = signDist->arrays(); + const amrex::IntVect ngs(signDist->nGrow()); + amrex::ParallelFor( + *signDist, ngs, + [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { + const auto& sd_cc = sd_ccs[nbx]; + if (sd_cc(i, j, k) >= maxSignedDist - 1e-12) { + const amrex::Real* dx = geomdata.CellSize(); + sd_cc(i, j, k) = nGrowFac * dx[0] * extendFactor; + } + }); + amrex::Gpu::synchronize(); + + // Iteratively compute the distance function in boxes, propagating across + // boxes using ghost cells If needed, increase the number of loop to extend + // the reach of the distance function + const int nMaxLoop = 4; + for (int dloop = 1; dloop <= nMaxLoop; dloop++) { #ifdef AMREX_USE_OMP #pragma omp parallel if (amrex::Gpu::notInLaunchRegion()) #endif - for (amrex::MFIter mfi(*signDist, amrex::TilingIfNotGPU()); mfi.isValid(); - ++mfi) { - const amrex::Box& bx = mfi.tilebox(); - const amrex::Box& gbx = grow(bx, 1); - if (flags[mfi].getType(gbx) == amrex::FabType::covered) { - continue; - } - auto const& sd_cc = signDist->array(mfi); - ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - const auto glo = amrex::lbound(gbx); - const auto ghi = amrex::ubound(gbx); - const amrex::Real* dx = geomdata.CellSize(); - const amrex::Real extendedDist = dx[0] * extendFactor; - if (sd_cc(i, j, k) >= maxSignedDist - 1e-12) { - amrex::Real closestEBDist = 1e12; - for (int kk = glo.z; kk <= ghi.z; ++kk) { - for (int jj = glo.y; jj <= ghi.y; ++jj) { - for (int ii = glo.x; ii <= ghi.x; ++ii) { - if ((i != ii) || (j != jj) || (k != kk)) { - if (sd_cc(ii, jj, kk) > 0.0) { - const amrex::Real distToCell = std::sqrt(AMREX_D_TERM( - ((i - ii) * dx[0] * (i - ii) * dx[0]), - +((j - jj) * dx[1] * (j - jj) * dx[1]), - +((k - kk) * dx[2] * (k - kk) * dx[2]))); - const amrex::Real distToEB = distToCell + sd_cc(ii, jj, kk); - if (distToEB < closestEBDist) { - closestEBDist = distToEB; - } - } - } - } - } - } - if (closestEBDist < 1e10) { - sd_cc(i, j, k) = closestEBDist; - } else { - sd_cc(i, j, k) = extendedDist; + for (amrex::MFIter mfi(*signDist, amrex::TilingIfNotGPU()); mfi.isValid(); + ++mfi) { + const amrex::Box& bx = mfi.tilebox(); + const amrex::Box& gbx = grow(bx, 1); + if (flags[mfi].getType(gbx) == amrex::FabType::covered) { + continue; + } + auto const& sd_cc = signDist->array(mfi); + ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + const auto glo = amrex::lbound(gbx); + const auto ghi = amrex::ubound(gbx); + const amrex::Real* dx = geomdata.CellSize(); + const amrex::Real extendedDist = dx[0] * extendFactor; + if (sd_cc(i, j, k) >= maxSignedDist - 1e-12) { + amrex::Real closestEBDist = 1e12; + for (int kk = glo.z; kk <= ghi.z; ++kk) { + for (int jj = glo.y; jj <= ghi.y; ++jj) { + for (int ii = glo.x; ii <= ghi.x; ++ii) { + if ((i != ii) || (j != jj) || (k != kk)) { + if (sd_cc(ii, jj, kk) > 0.0) { + const amrex::Real distToCell = std::sqrt(AMREX_D_TERM( + ((i - ii) * dx[0] * (i - ii) * dx[0]), + +((j - jj) * dx[1] * (j - jj) * dx[1]), + +((k - kk) * dx[2] * (k - kk) * dx[2]))); + const amrex::Real distToEB = distToCell + sd_cc(ii, jj, kk); + if (distToEB < closestEBDist) { + closestEBDist = distToEB; } + } } - }); + } + } + } + if (closestEBDist < 1e10) { + sd_cc(i, j, k) = closestEBDist; + } else { + sd_cc(i, j, k) = extendedDist; + } } - signDist->FillBoundary(parent->Geom(0).periodicity()); + }); } + signDist->FillBoundary(parent->Geom(0).periodicity()); + } } void PeleC::InitialRedistribution( - const amrex::Real time, - const amrex::Vector bcs, - amrex::MultiFab& S_new) + const amrex::Real time, + const amrex::Vector bcs, + amrex::MultiFab& S_new) { - BL_PROFILE("PeleC::InitialRedistribution()"); - - // Don't redistribute if there is no EB or if the redistribution type is - // anything other than StateRedist - if ((!eb_in_domain) || (redistribution_type != "StateRedist")) { - return; - } - - if (verbose != 0) { - amrex::Print() << "Doing initial redistribution... " << std::endl; - } - - // Initial data are set at new time step - amrex::MultiFab tmp( - grids, dmap, S_new.nComp(), numGrow(), amrex::MFInfo(), Factory()); + BL_PROFILE("PeleC::InitialRedistribution()"); - amrex::MultiFab::Copy(tmp, S_new, 0, 0, S_new.nComp(), S_new.nGrow()); - FillPatch(*this, tmp, numGrow(), time, State_Type, 0, S_new.nComp()); - EB_set_covered(tmp, 0.0); + // Don't redistribute if there is no EB or if the redistribution type is + // anything other than StateRedist + if ((!eb_in_domain) || (redistribution_type != "StateRedist")) { + return; + } - amrex::Gpu::DeviceVector d_bcs(bcs.size()); - amrex::Gpu::copy( - amrex::Gpu::hostToDevice, bcs.begin(), bcs.end(), d_bcs.begin()); + if (verbose != 0) { + amrex::Print() << "Doing initial redistribution... " << std::endl; + } - for (amrex::MFIter mfi(S_new, amrex::TilingIfNotGPU()); mfi.isValid(); - ++mfi) { - const amrex::Box& bx = mfi.validbox(); - - auto const& fact = - dynamic_cast(S_new.Factory()); - - auto const& flags = fact.getMultiEBCellFlagFab()[mfi]; - amrex::Array4 const& flag_arr = - flags.const_array(); - - if ( - (flags.getType(amrex::grow(bx, 1)) != amrex::FabType::covered) && - (flags.getType(amrex::grow(bx, 1)) != amrex::FabType::regular)) { - amrex::Array4 AMREX_D_DECL(fcx, fcy, fcz), ccc, - AMREX_D_DECL(apx, apy, apz); - - AMREX_D_TERM(fcx = facecent[0]->const_array(mfi); - , fcy = facecent[1]->const_array(mfi); - , fcz = facecent[2]->const_array(mfi);); - - ccc = fact.getCentroid().const_array(mfi); - - AMREX_D_TERM(apx = areafrac[0]->const_array(mfi); - , apy = areafrac[1]->const_array(mfi); - , apz = areafrac[2]->const_array(mfi);); - - const auto& sarr = S_new.array(mfi); - const auto& tarr = tmp.array(mfi); - ApplyInitialRedistribution( - bx, NVAR, sarr, tarr, flag_arr, AMREX_D_DECL(apx, apy, apz), - vfrac.const_array(mfi), AMREX_D_DECL(fcx, fcy, fcz), ccc, - d_bcs.dataPtr(), geom, redistribution_type, eb_srd_max_order); - - // Make sure rho is same as sum rhoY after redistribution - amrex::ParallelFor( - bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - amrex::Real drhoYsum = 0.0; - for (int n = 0; n < NUM_SPECIES; n++) { - drhoYsum += sarr(i, j, k, UFS + n) - tarr(i, j, k, UFS + n); - } - sarr(i, j, k, URHO) = tarr(i, j, k, URHO) + drhoYsum; - }); - amrex::ParallelFor( - bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - pc_check_initial_species(i, j, k, sarr); - }); - } + // Initial data are set at new time step + amrex::MultiFab tmp( + grids, dmap, S_new.nComp(), numGrow(), amrex::MFInfo(), Factory()); + + amrex::MultiFab::Copy(tmp, S_new, 0, 0, S_new.nComp(), S_new.nGrow()); + FillPatch(*this, tmp, numGrow(), time, State_Type, 0, S_new.nComp()); + EB_set_covered(tmp, 0.0); + + amrex::Gpu::DeviceVector d_bcs(bcs.size()); + amrex::Gpu::copy( + amrex::Gpu::hostToDevice, bcs.begin(), bcs.end(), d_bcs.begin()); + + for (amrex::MFIter mfi(S_new, amrex::TilingIfNotGPU()); mfi.isValid(); + ++mfi) { + const amrex::Box& bx = mfi.validbox(); + + auto const& fact = + dynamic_cast(S_new.Factory()); + + auto const& flags = fact.getMultiEBCellFlagFab()[mfi]; + amrex::Array4 const& flag_arr = + flags.const_array(); + + if ( + (flags.getType(amrex::grow(bx, 1)) != amrex::FabType::covered) && + (flags.getType(amrex::grow(bx, 1)) != amrex::FabType::regular)) { + amrex::Array4 AMREX_D_DECL(fcx, fcy, fcz), ccc, + AMREX_D_DECL(apx, apy, apz); + + AMREX_D_TERM(fcx = facecent[0]->const_array(mfi); + , fcy = facecent[1]->const_array(mfi); + , fcz = facecent[2]->const_array(mfi);); + + ccc = fact.getCentroid().const_array(mfi); + + AMREX_D_TERM(apx = areafrac[0]->const_array(mfi); + , apy = areafrac[1]->const_array(mfi); + , apz = areafrac[2]->const_array(mfi);); + + const auto& sarr = S_new.array(mfi); + const auto& tarr = tmp.array(mfi); + ApplyInitialRedistribution( + bx, NVAR, sarr, tarr, flag_arr, AMREX_D_DECL(apx, apy, apz), + vfrac.const_array(mfi), AMREX_D_DECL(fcx, fcy, fcz), ccc, + d_bcs.dataPtr(), geom, redistribution_type, eb_srd_max_order); + + // Make sure rho is same as sum rhoY after redistribution + amrex::ParallelFor( + bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + amrex::Real drhoYsum = 0.0; + for (int n = 0; n < NUM_SPECIES; n++) { + drhoYsum += sarr(i, j, k, UFS + n) - tarr(i, j, k, UFS + n); + } + sarr(i, j, k, URHO) = tarr(i, j, k, URHO) + drhoYsum; + }); + amrex::ParallelFor( + bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + pc_check_initial_species(i, j, k, sarr); + }); } - set_body_state(S_new); + } + set_body_state(S_new); } diff --git a/Source/MOL.H b/Source/MOL.H index c64fd26fa..5b47edc90 100644 --- a/Source/MOL.H +++ b/Source/MOL.H @@ -128,10 +128,12 @@ void pc_compute_hyp_mol_flux( const int mol_iorder, const bool use_laxf_flux, const amrex::Array4& flags, - const amrex::GpuArray plo, - const amrex::GpuArray dx, - const amrex::GpuArray axis_loc, - amrex::Real omega,int axisdir,int do_rf); + const amrex::GpuArray plo, + const amrex::GpuArray dx, + const amrex::GpuArray axis_loc, + amrex::Real omega, + int axisdir, + int do_rf); void pc_compute_hyp_mol_flux_eb( const amrex::Box& cbox, diff --git a/Source/MOL.cpp b/Source/MOL.cpp index b28411013..29a5444ed 100644 --- a/Source/MOL.cpp +++ b/Source/MOL.cpp @@ -11,11 +11,13 @@ pc_compute_hyp_mol_flux( area, const int mol_iorder, const bool use_laxf_flux, - const amrex::Array4& flags, - const amrex::GpuArray plo, - const amrex::GpuArray dx, - const amrex::GpuArray axis_loc, - amrex::Real omega,int axisdir,int do_rf) + const amrex::Array4& flags, + const amrex::GpuArray plo, + const amrex::GpuArray dx, + const amrex::GpuArray axis_loc, + amrex::Real omega, + int axisdir, + int do_rf) { const int R_RHO = 0; const int R_UN = 1; @@ -26,104 +28,103 @@ pc_compute_hyp_mol_flux( const int R_Y = R_ADV + NUM_ADV; const int R_NUM = 5 + NUM_SPECIES + NUM_ADV + NUM_LIN + NUM_AUX; const int bc_test_val = 1; - int using_rotframe=do_rf; //local capture - int axisdir_captured=axisdir; - amrex::Real omega_captured=omega; - amrex::GpuArray axisloc_captured - ={axis_loc[0],axis_loc[1],axis_loc[2]}; - + int using_rotframe = do_rf; // local capture + int axisdir_captured = axisdir; + amrex::Real omega_captured = omega; + amrex::GpuArray axisloc_captured = { + axis_loc[0], axis_loc[1], axis_loc[2]}; for (int dir = 0; dir < AMREX_SPACEDIM; dir++) { - amrex::FArrayBox dq_fab(cbox, QVAR, amrex::The_Async_Arena()); - auto const& dq = dq_fab.array(); - setV(cbox, QVAR, dq, 0.0); + amrex::FArrayBox dq_fab(cbox, QVAR, amrex::The_Async_Arena()); + auto const& dq = dq_fab.array(); + setV(cbox, QVAR, dq, 0.0); - // dimensional indexing - const amrex::GpuArray bdim{ - {static_cast(dir == 0), static_cast(dir == 1), - static_cast(dir == 2)}}; - const amrex::GpuArray q_idx{ - {bdim[0] * QU + bdim[1] * QV + bdim[2] * QW, - bdim[0] * QV + bdim[1] * QU + bdim[2] * QU, - bdim[0] * QW + bdim[1] * QW + bdim[2] * QV}}; - const amrex::GpuArray f_idx{ - {bdim[0] * UMX + bdim[1] * UMY + bdim[2] * UMZ, - bdim[0] * UMY + bdim[1] * UMX + bdim[2] * UMX, - bdim[0] * UMZ + bdim[1] * UMZ + bdim[2] * UMY}}; + // dimensional indexing + const amrex::GpuArray bdim{ + {static_cast(dir == 0), static_cast(dir == 1), + static_cast(dir == 2)}}; + const amrex::GpuArray q_idx{ + {bdim[0] * QU + bdim[1] * QV + bdim[2] * QW, + bdim[0] * QV + bdim[1] * QU + bdim[2] * QU, + bdim[0] * QW + bdim[1] * QW + bdim[2] * QV}}; + const amrex::GpuArray f_idx{ + {bdim[0] * UMX + bdim[1] * UMY + bdim[2] * UMZ, + bdim[0] * UMY + bdim[1] * UMX + bdim[2] * UMX, + bdim[0] * UMZ + bdim[1] * UMZ + bdim[2] * UMY}}; - if (mol_iorder != 1) { - amrex::ParallelFor( - cbox, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - mol_slope(i, j, k, dir, q_idx, q, qaux, dq, flags); - }); - } - const amrex::Box tbox = amrex::grow(cbox, dir, -1); - const amrex::Box ebox = amrex::surroundingNodes(tbox, dir); + if (mol_iorder != 1) { amrex::ParallelFor( - ebox, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - const amrex::IntVect iv{AMREX_D_DECL(i, j, k)}; - const amrex::IntVect ivm(iv - amrex::IntVect::TheDimensionVector(dir)); + cbox, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + mol_slope(i, j, k, dir, q_idx, q, qaux, dq, flags); + }); + } + const amrex::Box tbox = amrex::grow(cbox, dir, -1); + const amrex::Box ebox = amrex::surroundingNodes(tbox, dir); + amrex::ParallelFor( + ebox, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + const amrex::IntVect iv{AMREX_D_DECL(i, j, k)}; + const amrex::IntVect ivm(iv - amrex::IntVect::TheDimensionVector(dir)); - amrex::Real qtempl[R_NUM] = {0.0}; - qtempl[R_UN] = - q(ivm, q_idx[0]) + 0.5 * ((dq(ivm, 1) - dq(ivm, 0)) / q(ivm, QRHO)); - qtempl[R_P] = - q(ivm, QPRES) + 0.5 * (dq(ivm, 0) + dq(ivm, 1)) * qaux(ivm, QC); - qtempl[R_UT1] = q(ivm, q_idx[1]) + 0.5 * dq(ivm, 2); - qtempl[R_UT2] = - AMREX_D_PICK(0.0, 0.0, q(ivm, q_idx[2]) + 0.5 * dq(ivm, 3)); - qtempl[R_RHO] = 0.0; - for (int n = 0; n < NUM_SPECIES; n++) { - qtempl[R_Y + n] = - q(ivm, QFS + n) * q(ivm, QRHO) + - 0.5 * (dq(ivm, QFS + n) + - q(ivm, QFS + n) * (dq(ivm, 0) + dq(ivm, 1)) / qaux(ivm, QC)); - qtempl[R_RHO] += qtempl[R_Y + n]; - } + amrex::Real qtempl[R_NUM] = {0.0}; + qtempl[R_UN] = + q(ivm, q_idx[0]) + 0.5 * ((dq(ivm, 1) - dq(ivm, 0)) / q(ivm, QRHO)); + qtempl[R_P] = + q(ivm, QPRES) + 0.5 * (dq(ivm, 0) + dq(ivm, 1)) * qaux(ivm, QC); + qtempl[R_UT1] = q(ivm, q_idx[1]) + 0.5 * dq(ivm, 2); + qtempl[R_UT2] = + AMREX_D_PICK(0.0, 0.0, q(ivm, q_idx[2]) + 0.5 * dq(ivm, 3)); + qtempl[R_RHO] = 0.0; + for (int n = 0; n < NUM_SPECIES; n++) { + qtempl[R_Y + n] = + q(ivm, QFS + n) * q(ivm, QRHO) + + 0.5 * (dq(ivm, QFS + n) + + q(ivm, QFS + n) * (dq(ivm, 0) + dq(ivm, 1)) / qaux(ivm, QC)); + qtempl[R_RHO] += qtempl[R_Y + n]; + } - for (int n = 0; n < NUM_SPECIES; n++) { - qtempl[R_Y + n] = qtempl[R_Y + n] / qtempl[R_RHO]; - } + for (int n = 0; n < NUM_SPECIES; n++) { + qtempl[R_Y + n] = qtempl[R_Y + n] / qtempl[R_RHO]; + } - amrex::Real qtempr[R_NUM] = {0.0}; - qtempr[R_UN] = - q(iv, q_idx[0]) - 0.5 * ((dq(iv, 1) - dq(iv, 0)) / q(iv, QRHO)); - qtempr[R_P] = - q(iv, QPRES) - 0.5 * (dq(iv, 0) + dq(iv, 1)) * qaux(iv, QC); - qtempr[R_UT1] = q(iv, q_idx[1]) - 0.5 * dq(iv, 2); - qtempr[R_UT2] = - AMREX_D_PICK(0.0, 0.0, q(iv, q_idx[2]) - 0.5 * dq(iv, 3)); - qtempr[R_RHO] = 0.0; - for (int n = 0; n < NUM_SPECIES; n++) { - qtempr[R_Y + n] = - q(iv, QFS + n) * q(iv, QRHO) - - 0.5 * (dq(iv, QFS + n) + - q(iv, QFS + n) * (dq(iv, 0) + dq(iv, 1)) / qaux(iv, QC)); - qtempr[R_RHO] += qtempr[R_Y + n]; - } - for (int n = 0; n < NUM_SPECIES; n++) { - qtempr[R_Y + n] = qtempr[R_Y + n] / qtempr[R_RHO]; - } + amrex::Real qtempr[R_NUM] = {0.0}; + qtempr[R_UN] = + q(iv, q_idx[0]) - 0.5 * ((dq(iv, 1) - dq(iv, 0)) / q(iv, QRHO)); + qtempr[R_P] = + q(iv, QPRES) - 0.5 * (dq(iv, 0) + dq(iv, 1)) * qaux(iv, QC); + qtempr[R_UT1] = q(iv, q_idx[1]) - 0.5 * dq(iv, 2); + qtempr[R_UT2] = + AMREX_D_PICK(0.0, 0.0, q(iv, q_idx[2]) - 0.5 * dq(iv, 3)); + qtempr[R_RHO] = 0.0; + for (int n = 0; n < NUM_SPECIES; n++) { + qtempr[R_Y + n] = + q(iv, QFS + n) * q(iv, QRHO) - + 0.5 * (dq(iv, QFS + n) + + q(iv, QFS + n) * (dq(iv, 0) + dq(iv, 1)) / qaux(iv, QC)); + qtempr[R_RHO] += qtempr[R_Y + n]; + } + for (int n = 0; n < NUM_SPECIES; n++) { + qtempr[R_Y + n] = qtempr[R_Y + n] / qtempr[R_RHO]; + } #if NUM_ADV > 0 - for (int n = 0; n < NUM_ADV; n++) { - qtempl[R_ADV + n] = q(ivm, QFA + n) + 0.5 * dq(ivm, QFA + n); - qtempr[R_ADV + n] = q(iv, QFA + n) - 0.5 * dq(iv, QFA + n); - } + for (int n = 0; n < NUM_ADV; n++) { + qtempl[R_ADV + n] = q(ivm, QFA + n) + 0.5 * dq(ivm, QFA + n); + qtempr[R_ADV + n] = q(iv, QFA + n) - 0.5 * dq(iv, QFA + n); + } #endif #if NUM_AUX > 0 - const int R_AUX = R_Y + NUM_SPECIES; - for (int n = 0; n < NUM_AUX; n++) { - qtempl[R_AUX + n] = q(ivm, QFX + n) + 0.5 * dq(ivm, QFX + n); - qtempr[R_AUX + n] = q(iv, QFX + n) - 0.5 * dq(iv, QFX + n); - } + const int R_AUX = R_Y + NUM_SPECIES; + for (int n = 0; n < NUM_AUX; n++) { + qtempl[R_AUX + n] = q(ivm, QFX + n) + 0.5 * dq(ivm, QFX + n); + qtempr[R_AUX + n] = q(iv, QFX + n) - 0.5 * dq(iv, QFX + n); + } #endif #if NUM_LIN > 0 - const int R_LIN = R_Y + NUM_SPECIES + NUM_AUX; - for (int n = 0; n < NUM_LIN; n++) { - qtempl[R_LIN + n] = q(ivm, QLIN + n) + 0.5 * dq(ivm, QLIN + n); - qtempr[R_LIN + n] = q(iv, QLIN + n) - 0.5 * dq(iv, QLIN + n); - } + const int R_LIN = R_Y + NUM_SPECIES + NUM_AUX; + for (int n = 0; n < NUM_LIN; n++) { + qtempl[R_LIN + n] = q(ivm, QLIN + n) + 0.5 * dq(ivm, QLIN + n); + qtempr[R_LIN + n] = q(iv, QLIN + n) - 0.5 * dq(iv, QLIN + n); + } #endif const amrex::Real cavg = 0.5 * (qaux(iv, QC) + qaux(ivm, QC)); @@ -140,116 +141,115 @@ pc_compute_hyp_mol_flux( amrex::Real flux_tmp[NVAR] = {0.0}; amrex::Real ustar = 0.0; - - amrex::RealVect r(0.0,0.0,0.0); - amrex::Real radl,radr,rad; - if(using_rotframe) - { - r[0]=plo[0]+(iv[0]+0.5)*dx[0]-axisloc_captured[0]; - r[1]=plo[1]+(iv[1]+0.5)*dx[1]-axisloc_captured[1]; - r[2]=plo[2]+(iv[2]+0.5)*dx[2]-axisloc_captured[2]; - rad=r[0]*r[0]+r[1]*r[1]+r[2]*r[2]; - rad-=r[axisdir_captured]*r[axisdir_captured]; - radr=std::sqrt(rad); - - r[0]=plo[0]+(ivm[0]+0.5)*dx[0]-axisloc_captured[0]; - r[1]=plo[1]+(ivm[1]+0.5)*dx[1]-axisloc_captured[1]; - r[2]=plo[2]+(ivm[2]+0.5)*dx[2]-axisloc_captured[2]; - rad=r[0]*r[0]+r[1]*r[1]+r[2]*r[2]; - rad-=r[axisdir_captured]*r[axisdir_captured]; - radl=std::sqrt(rad); + + amrex::RealVect r(0.0, 0.0, 0.0); + amrex::Real radl, radr, rad; + if (using_rotframe) { + r[0] = plo[0] + (iv[0] + 0.5) * dx[0] - axisloc_captured[0]; + r[1] = plo[1] + (iv[1] + 0.5) * dx[1] - axisloc_captured[1]; + r[2] = plo[2] + (iv[2] + 0.5) * dx[2] - axisloc_captured[2]; + rad = r[0] * r[0] + r[1] * r[1] + r[2] * r[2]; + rad -= r[axisdir_captured] * r[axisdir_captured]; + radr = std::sqrt(rad); + + r[0] = plo[0] + (ivm[0] + 0.5) * dx[0] - axisloc_captured[0]; + r[1] = plo[1] + (ivm[1] + 0.5) * dx[1] - axisloc_captured[1]; + r[2] = plo[2] + (ivm[2] + 0.5) * dx[2] - axisloc_captured[2]; + rad = r[0] * r[0] + r[1] * r[1] + r[2] * r[2]; + rad -= r[axisdir_captured] * r[axisdir_captured]; + radl = std::sqrt(rad); } if (!use_laxf_flux) { - amrex::Real qint_iu = 0.0, tmp1 = 0.0, tmp2 = 0.0, tmp3 = 0.0, - tmp4 = 0.0; - riemann( - qtempl[R_RHO], qtempl[R_UN], qtempl[R_UT1], qtempl[R_UT2], - qtempl[R_P], spl, qtempr[R_RHO], qtempr[R_UN], qtempr[R_UT1], - qtempr[R_UT2], qtempr[R_P], spr, bc_test_val, cavg, ustar, - flux_tmp[URHO], &flux_tmp[UFS], flux_tmp[f_idx[0]], - flux_tmp[f_idx[1]], flux_tmp[f_idx[2]], flux_tmp[UEDEN], - flux_tmp[UEINT], qint_iu, tmp1, tmp2, tmp3, tmp4,omega_captured,radl, - omega_captured,radr); + amrex::Real qint_iu = 0.0, tmp1 = 0.0, tmp2 = 0.0, tmp3 = 0.0, + tmp4 = 0.0; + riemann( + qtempl[R_RHO], qtempl[R_UN], qtempl[R_UT1], qtempl[R_UT2], + qtempl[R_P], spl, qtempr[R_RHO], qtempr[R_UN], qtempr[R_UT1], + qtempr[R_UT2], qtempr[R_P], spr, bc_test_val, cavg, ustar, + flux_tmp[URHO], &flux_tmp[UFS], flux_tmp[f_idx[0]], + flux_tmp[f_idx[1]], flux_tmp[f_idx[2]], flux_tmp[UEDEN], + flux_tmp[UEINT], qint_iu, tmp1, tmp2, tmp3, tmp4, omega_captured, + radl, omega_captured, radr); #if NUM_ADV > 0 - for (int n = 0; n < NUM_ADV; n++) { - pc_cmpflx_passive( - ustar, flux_tmp[URHO], qtempl[R_ADV + n], qtempr[R_ADV + n], - flux_tmp[UFA + n]); - } + for (int n = 0; n < NUM_ADV; n++) { + pc_cmpflx_passive( + ustar, flux_tmp[URHO], qtempl[R_ADV + n], qtempr[R_ADV + n], + flux_tmp[UFA + n]); + } #endif #if NUM_AUX > 0 - for (int n = 0; n < NUM_AUX; n++) { - pc_cmpflx_passive( - ustar, flux_tmp[URHO], qtempl[R_AUX + n], qtempr[R_AUX + n], - flux_tmp[UFX + n]); - } + for (int n = 0; n < NUM_AUX; n++) { + pc_cmpflx_passive( + ustar, flux_tmp[URHO], qtempl[R_AUX + n], qtempr[R_AUX + n], + flux_tmp[UFX + n]); + } #endif #if NUM_LIN > 0 - for (int n = 0; n < NUM_LIN; n++) { - pc_cmpflx_passive( - ustar, qint_iu, qtempl[R_LIN + n], qtempr[R_LIN + n], - flux_tmp[ULIN + n]); - } + for (int n = 0; n < NUM_LIN; n++) { + pc_cmpflx_passive( + ustar, qint_iu, qtempl[R_LIN + n], qtempr[R_LIN + n], + flux_tmp[ULIN + n]); + } #endif } else { - amrex::Real maxeigval = 0.0; - laxfriedrich_flux( - qtempl[R_RHO], qtempl[R_UN], qtempl[R_UT1], qtempl[R_UT2], - qtempl[R_P], spl, qtempr[R_RHO], qtempr[R_UN], qtempr[R_UT1], - qtempr[R_UT2], qtempr[R_P], spr, bc_test_val, cavg, ustar, - maxeigval, flux_tmp[URHO], &flux_tmp[UFS], flux_tmp[f_idx[0]], - flux_tmp[f_idx[1]], flux_tmp[f_idx[2]], flux_tmp[UEDEN], - flux_tmp[UEINT],omega_captured,radl,omega_captured,radr); + amrex::Real maxeigval = 0.0; + laxfriedrich_flux( + qtempl[R_RHO], qtempl[R_UN], qtempl[R_UT1], qtempl[R_UT2], + qtempl[R_P], spl, qtempr[R_RHO], qtempr[R_UN], qtempr[R_UT1], + qtempr[R_UT2], qtempr[R_P], spr, bc_test_val, cavg, ustar, + maxeigval, flux_tmp[URHO], &flux_tmp[UFS], flux_tmp[f_idx[0]], + flux_tmp[f_idx[1]], flux_tmp[f_idx[2]], flux_tmp[UEDEN], + flux_tmp[UEINT], omega_captured, radl, omega_captured, radr); #if NUM_ADV > 0 - for (int n = 0; n < NUM_ADV; n++) { - pc_lax_cmpflx_passive( - qtempl[R_UN], qtempr[R_UN], qtempl[R_RHO], qtempr[R_RHO], - qtempl[R_ADV + n], qtempr[R_ADV + n], maxeigval, - flux_tmp[UFA + n]); - } + for (int n = 0; n < NUM_ADV; n++) { + pc_lax_cmpflx_passive( + qtempl[R_UN], qtempr[R_UN], qtempl[R_RHO], qtempr[R_RHO], + qtempl[R_ADV + n], qtempr[R_ADV + n], maxeigval, + flux_tmp[UFA + n]); + } #endif #if NUM_AUX > 0 - for (int n = 0; n < NUM_AUX; n++) { - pc_lax_cmpflx_passive( - qtempl[R_UN], qtempr[R_UN], qtempl[R_RHO], qtempr[R_RHO], - qtempl[R_AUX + n], qtempr[R_AUX + n], maxeigval, - flux_tmp[UFX + n]); - } + for (int n = 0; n < NUM_AUX; n++) { + pc_lax_cmpflx_passive( + qtempl[R_UN], qtempr[R_UN], qtempl[R_RHO], qtempr[R_RHO], + qtempl[R_AUX + n], qtempr[R_AUX + n], maxeigval, + flux_tmp[UFX + n]); + } #endif #if NUM_LIN > 0 - for (int n = 0; n < NUM_LIN; n++) { - pc_lax_cmpflx_passive( - qtempl[R_UN], qtempr[R_UN], 1., 1., qtempl[R_LIN + n], - qtempr[R_LIN + n], maxeigval, flux_tmp[ULIN + n]); - } + for (int n = 0; n < NUM_LIN; n++) { + pc_lax_cmpflx_passive( + qtempl[R_UN], qtempr[R_UN], 1., 1., qtempl[R_LIN + n], + qtempr[R_LIN + n], maxeigval, flux_tmp[ULIN + n]); + } #endif } flux_tmp[UTEMP] = 0.0; for (int ivar = 0; ivar < NVAR; ivar++) { - flx[dir](iv, ivar) += flux_tmp[ivar] * area[dir](i, j, k); + flx[dir](iv, ivar) += flux_tmp[ivar] * area[dir](i, j, k); } - }); + }); } } void pc_compute_hyp_mol_flux_eb( - const amrex::Box& cbox, - const amrex::Array4& q, - const amrex::GpuArray& dx, - const EBBndryGeom* ebg, - const int /*Nebg*/, - amrex::Real* ebflux, - const int nebflux) + const amrex::Box& cbox, + const amrex::Array4& q, + const amrex::GpuArray& dx, + const EBBndryGeom* ebg, + const int /*Nebg*/, + amrex::Real* ebflux, + const int nebflux) { - const int nextra = 0; + const int nextra = 0; - const amrex::Real full_area = AMREX_D_PICK(1.0, dx[0], dx[0] * dx[1]); - const amrex::Box bxg = amrex::grow(cbox, nextra - 1); + const amrex::Real full_area = AMREX_D_PICK(1.0, dx[0], dx[0] * dx[1]); + const amrex::Box bxg = amrex::grow(cbox, nextra - 1); - amrex::ParallelFor(nebflux, [=] AMREX_GPU_DEVICE(int L) { + amrex::ParallelFor(nebflux, [=] AMREX_GPU_DEVICE(int L) { const amrex::IntVect& iv = ebg[L].iv; if (bxg.contains(iv)) { amrex::Real ebnorm[AMREX_SPACEDIM] = {AMREX_D_DECL( diff --git a/Source/PeleC.H b/Source/PeleC.H index 9b54456f3..8f25d97f7 100644 --- a/Source/PeleC.H +++ b/Source/PeleC.H @@ -374,17 +374,17 @@ public: amrex::MultiFab& mms_src, int ng); #endif - + void construct_old_rot_source(amrex::Real time, amrex::Real dt); void construct_new_rot_source(amrex::Real time, amrex::Real dt); - + void fill_rot_source( const amrex::MultiFab& state_old, const amrex::MultiFab& state_new, amrex::MultiFab& forcing_src, int ng); - + void getLESTerm( amrex::Real time, amrex::Real dt, diff --git a/Source/PeleC.cpp b/Source/PeleC.cpp index 327a42f63..8bde8a346 100644 --- a/Source/PeleC.cpp +++ b/Source/PeleC.cpp @@ -1517,117 +1517,118 @@ void PeleC::enforce_consistent_e(amrex::MultiFab& S) { - auto sarrs = S.arrays(); + auto sarrs = S.arrays(); + amrex::ParallelFor( + S, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { + auto sarr = sarrs[nbx]; + const amrex::Real rhoInv = 1.0 / sarr(i, j, k, URHO); + const amrex::Real u = sarr(i, j, k, UMX) * rhoInv; + const amrex::Real v = sarr(i, j, k, UMY) * rhoInv; + const amrex::Real w = sarr(i, j, k, UMZ) * rhoInv; + sarr(i, j, k, UEDEN) = sarr(i, j, k, UEINT) + 0.5 * sarr(i, j, k, URHO) * + (u * u + v * v + w * w); + }); + + amrex::Gpu::synchronize(); + + if (do_rf) { + const auto geomdata = geom.data(); + amrex::Real axis = rf_axis; + amrex::Real omega = rf_omega; + amrex::GpuArray axis_loc = { + rf_axis_x, rf_axis_y, rf_axis_z}; + amrex::ParallelFor( - S, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { - auto sarr = sarrs[nbx]; - const amrex::Real rhoInv = 1.0 / sarr(i, j, k, URHO); - const amrex::Real u = sarr(i, j, k, UMX) * rhoInv; - const amrex::Real v = sarr(i, j, k, UMY) * rhoInv; - const amrex::Real w = sarr(i, j, k, UMZ) * rhoInv; - sarr(i, j, k, UEDEN) = sarr(i, j, k, UEINT) + 0.5 * sarr(i, j, k, URHO) * - (u * u + v * v + w * w); - }); - - amrex::Gpu::synchronize(); - - if(do_rf) - { - const auto geomdata = geom.data(); - amrex::Real axis = rf_axis; - amrex::Real omega = rf_omega; - amrex::GpuArray axis_loc={rf_axis_x,rf_axis_y,rf_axis_z}; - - amrex::ParallelFor( - S, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { - auto sarr = sarrs[nbx]; - - amrex::Real rotenrg=get_rot_energy(i,j,k,omega,rf_axis,axis_loc,geomdata); - sarr(i, j, k, UEDEN) = sarr(i, j, k, UEINT) - - sarr(i, j, k, URHO) * rotenrg ; - }); - } + S, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { + auto sarr = sarrs[nbx]; + + amrex::Real rotenrg = + get_rot_energy(i, j, k, omega, rf_axis, axis_loc, geomdata); + sarr(i, j, k, UEDEN) = + sarr(i, j, k, UEINT) - sarr(i, j, k, URHO) * rotenrg; + }); + } } void PeleC::avgDown(int state_indx) { - BL_PROFILE("PeleC::avgDown(state_indx)"); + BL_PROFILE("PeleC::avgDown(state_indx)"); - if (level == parent->finestLevel()) { - return; - } - - amrex::MultiFab& S_crse = get_new_data(state_indx); - const amrex::MultiFab& S_fine = getLevel(level + 1).get_new_data(state_indx); + if (level == parent->finestLevel()) { + return; + } - if (eb_in_domain) { - PeleC& fine_lev = getLevel(level + 1); + amrex::MultiFab& S_crse = get_new_data(state_indx); + const amrex::MultiFab& S_fine = getLevel(level + 1).get_new_data(state_indx); - amrex::EB_average_down( - S_fine, S_crse, fine_lev.Volume(), fine_lev.volFrac(), 0, S_fine.nComp(), - fine_ratio); + if (eb_in_domain) { + PeleC& fine_lev = getLevel(level + 1); - if (state_indx == State_Type) { - set_body_state(S_crse); // TODO: Is this necessary? - } - } else { - const amrex::Geometry& fgeom = getLevel(level + 1).geom; - const amrex::Geometry& cgeom = geom; + amrex::EB_average_down( + S_fine, S_crse, fine_lev.Volume(), fine_lev.volFrac(), 0, S_fine.nComp(), + fine_ratio); - amrex::average_down( - S_fine, S_crse, fgeom, cgeom, 0, S_fine.nComp(), fine_ratio); + if (state_indx == State_Type) { + set_body_state(S_crse); // TODO: Is this necessary? } + } else { + const amrex::Geometry& fgeom = getLevel(level + 1).geom; + const amrex::Geometry& cgeom = geom; + + amrex::average_down( + S_fine, S_crse, fgeom, cgeom, 0, S_fine.nComp(), fine_ratio); + } } void PeleC::allocOldData() { - for (int k = 0; k < num_state_type; k++) { - state[k].allocOldData(); - } + for (int k = 0; k < num_state_type; k++) { + state[k].allocOldData(); + } } void PeleC::removeOldData() { - AmrLevel::removeOldData(); + AmrLevel::removeOldData(); } void PeleC::errorEst( - amrex::TagBoxArray& tags, - int /*clearval*/, - int /*tagval*/, - amrex::Real time, - int /*n_error_buf*/, - int /*ngrow*/) + amrex::TagBoxArray& tags, + int /*clearval*/, + int /*tagval*/, + amrex::Real time, + int /*n_error_buf*/, + int /*ngrow*/) { - BL_PROFILE("PeleC::errorEst()"); + BL_PROFILE("PeleC::errorEst()"); - amrex::MultiFab S_data( - get_new_data(State_Type).boxArray(), - get_new_data(State_Type).DistributionMap(), NVAR, 1, amrex::MFInfo(), - Factory()); - const amrex::Real cur_time = state[State_Type].curTime(); - FillPatch( - *this, S_data, S_data.nGrow(), cur_time, State_Type, Density, NVAR, 0); - - amrex::Vector bcs(NVAR); - const char tagval = amrex::TagBox::SET; - - // Tag EB - if (eb_in_domain) { - if ( - ((tagging_parm->eb_refine_type == "static") && - (level < tagging_parm->max_eb_refine_lev)) || - ((tagging_parm->eb_refine_type == "adaptive") && - (level < tagging_parm->adapt_eb_refined_lev))) { - amrex::TagCutCells(tags, S_data); - } + amrex::MultiFab S_data( + get_new_data(State_Type).boxArray(), + get_new_data(State_Type).DistributionMap(), NVAR, 1, amrex::MFInfo(), + Factory()); + const amrex::Real cur_time = state[State_Type].curTime(); + FillPatch( + *this, S_data, S_data.nGrow(), cur_time, State_Type, Density, NVAR, 0); + + amrex::Vector bcs(NVAR); + const char tagval = amrex::TagBox::SET; + + // Tag EB + if (eb_in_domain) { + if ( + ((tagging_parm->eb_refine_type == "static") && + (level < tagging_parm->max_eb_refine_lev)) || + ((tagging_parm->eb_refine_type == "adaptive") && + (level < tagging_parm->adapt_eb_refined_lev))) { + amrex::TagCutCells(tags, S_data); } + } - auto const& fact = + auto const& fact = dynamic_cast(S_data.Factory()); auto const& flags = fact.getMultiEBCellFlagFab(); @@ -2186,33 +2187,33 @@ PeleC::reset_internal_energy(amrex::MultiFab& S_new, int ng) auto sarrs = S_new.arrays(); const amrex::IntVect ngs(ng); - //for Rotational frames + // for Rotational frames const auto geomdata = geom.data(); - amrex::Real axis = rf_axis; + amrex::Real axis = rf_axis; amrex::Real omega = rf_omega; - amrex::GpuArray axis_loc={rf_axis_x,rf_axis_y,rf_axis_z}; + amrex::GpuArray axis_loc = { + rf_axis_x, rf_axis_y, rf_axis_z}; amrex::ParallelFor( - S_new, ngs, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { - - amrex::Real rad=get_rotaxis_dist(i,j,k,axis,axis_loc,geomdata); - pc_rst_int_e( - i, j, k, sarrs[nbx], captured_allow_small_energy, - captured_allow_negative_energy, captured_dual_energy_update_E_from_e, - captured_dual_energy_eta2, omega, rad, captured_verbose); - }); + S_new, ngs, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { + amrex::Real rad = get_rotaxis_dist(i, j, k, axis, axis_loc, geomdata); + pc_rst_int_e( + i, j, k, sarrs[nbx], captured_allow_small_energy, + captured_allow_negative_energy, captured_dual_energy_update_E_from_e, + captured_dual_energy_eta2, omega, rad, captured_verbose); + }); amrex::Gpu::synchronize(); } #ifndef AMREX_USE_GPU if (parent->finestLevel() == 0 && print_energy_diagnostics) { - // Pass in the multifab and the component - amrex::Real sum = volWgtSumMF(S_new, Eden, true); - amrex::ParallelDescriptor::ReduceRealSum(sum0); - amrex::ParallelDescriptor::ReduceRealSum(sum); - if (amrex::ParallelDescriptor::IOProcessor() && std::abs(sum - sum0) > 0) { - amrex::Print() << "(rho E) added from reset terms : " - << sum - sum0 << " out of " << sum0 << std::endl; - } + // Pass in the multifab and the component + amrex::Real sum = volWgtSumMF(S_new, Eden, true); + amrex::ParallelDescriptor::ReduceRealSum(sum0); + amrex::ParallelDescriptor::ReduceRealSum(sum); + if (amrex::ParallelDescriptor::IOProcessor() && std::abs(sum - sum0) > 0) { + amrex::Print() << "(rho E) added from reset terms : " + << sum - sum0 << " out of " << sum0 << std::endl; + } } #endif } @@ -2220,69 +2221,69 @@ PeleC::reset_internal_energy(amrex::MultiFab& S_new, int ng) void PeleC::computeTemp(amrex::MultiFab& S, int ng) { - reset_internal_energy(S, ng); + reset_internal_energy(S, ng); - auto const& fact = + auto const& fact = dynamic_cast(S.Factory()); - auto const& flags = fact.getMultiEBCellFlagFab(); + auto const& flags = fact.getMultiEBCellFlagFab(); - auto const& sarrs = S.arrays(); - auto const& flagarrs = flags.const_arrays(); - const amrex::IntVect ngs(ng); - amrex::ParallelFor( - S, ngs, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { - if (!flagarrs[nbx](i, j, k).isCovered()) { - pc_cmpTemp(i, j, k, sarrs[nbx]); - } - }); - amrex::Gpu::synchronize(); + auto const& sarrs = S.arrays(); + auto const& flagarrs = flags.const_arrays(); + const amrex::IntVect ngs(ng); + amrex::ParallelFor( + S, ngs, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { + if (!flagarrs[nbx](i, j, k).isCovered()) { + pc_cmpTemp(i, j, k, sarrs[nbx]); + } + }); + amrex::Gpu::synchronize(); } amrex::Real PeleC::getCPUTime() { - int numCores = amrex::ParallelDescriptor::NProcs(); + int numCores = amrex::ParallelDescriptor::NProcs(); #ifdef AMREX_USE_OMP - numCores = numCores * omp_get_max_threads(); + numCores = numCores * omp_get_max_threads(); #endif - amrex::Real T = + amrex::Real T = numCores * (amrex::ParallelDescriptor::second() - startCPUTime) + previousCPUTimeUsed; - return T; + return T; } amrex::MultiFab& PeleC::build_fine_mask() { - // Mask for zeroing covered cells - AMREX_ASSERT(level > 0); + // Mask for zeroing covered cells + AMREX_ASSERT(level > 0); - if (!fine_mask.empty()) { - return fine_mask; - } + if (!fine_mask.empty()) { + return fine_mask; + } - const amrex::BoxArray& cba = parent->boxArray(level - 1); - const amrex::DistributionMapping& cdm = parent->DistributionMap(level - 1); + const amrex::BoxArray& cba = parent->boxArray(level - 1); + const amrex::DistributionMapping& cdm = parent->DistributionMap(level - 1); - fine_mask.define(cba, cdm, 1, 0, amrex::MFInfo(), amrex::FArrayBoxFactory()); - fine_mask.setVal(1.0); + fine_mask.define(cba, cdm, 1, 0, amrex::MFInfo(), amrex::FArrayBoxFactory()); + fine_mask.setVal(1.0); - amrex::BoxArray fba = parent->boxArray(level); - amrex::iMultiFab ifine_mask = makeFineMask(cba, cdm, fba, crse_ratio, 1, 0); + amrex::BoxArray fba = parent->boxArray(level); + amrex::iMultiFab ifine_mask = makeFineMask(cba, cdm, fba, crse_ratio, 1, 0); - const auto& arrs = fine_mask.arrays(); - const auto& iarrs = ifine_mask.const_arrays(); - amrex::ParallelFor( - fine_mask, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { + const auto& arrs = fine_mask.arrays(); + const auto& iarrs = ifine_mask.const_arrays(); + amrex::ParallelFor( + fine_mask, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { #ifdef AMREX_USE_OMP #pragma omp atomic write #endif - arrs[nbx](i, j, k) = iarrs[nbx](i, j, k); - }); - amrex::Gpu::synchronize(); - return fine_mask; + arrs[nbx](i, j, k) = iarrs[nbx](i, j, k); + }); + amrex::Gpu::synchronize(); + return fine_mask; } const amrex::iMultiFab* diff --git a/Source/React.cpp b/Source/React.cpp index f9c70748a..5e93c2c03 100644 --- a/Source/React.cpp +++ b/Source/React.cpp @@ -122,192 +122,194 @@ PeleC::react_state( dynamic_cast(S_new.Factory()); auto const& flags = fact.getMultiEBCellFlagFab(); - amrex::Real rot_enrg=0.0; + amrex::Real rot_enrg = 0.0; - //for rotational frames - amrex::Real rotframeflag=do_rf; + // for rotational frames + amrex::Real rotframeflag = do_rf; const auto geomdata = geom.data(); - amrex::Real axis = rf_axis; + amrex::Real axis = rf_axis; amrex::Real omega = rf_omega; - amrex::GpuArray axis_loc={rf_axis_x,rf_axis_y,rf_axis_z}; - + amrex::GpuArray axis_loc = { + rf_axis_x, rf_axis_y, rf_axis_z}; #ifdef AMREX_USE_OMP #pragma omp parallel if (amrex::Gpu::notInLaunchRegion()) #endif { - for (amrex::MFIter mfi(S_new, amrex::TilingIfNotGPU()); mfi.isValid(); - ++mfi) { - - const amrex::Box& bx = mfi.growntilebox(ng); - - // old state or the state at t=0 - auto const& sold_arr = - react_init ? S_new.array(mfi) : get_old_data(State_Type).array(mfi); - - // new state - auto const& snew_arr = S_new.array(mfi); - auto const& nonrs_arr = non_react_src->array(mfi); - auto const& I_R = react_src.array(mfi); - - // only update beyond first step - // TODO: Update here? Or just get reaction source? - const bool do_update = !react_init; - - const auto& flag_fab = flags[mfi]; - amrex::FabType typ = flag_fab.getType(bx); - if (typ == amrex::FabType::covered) { - if (do_react_load_balance) { - const amrex::Box vbox = mfi.tilebox(); - get_new_data(Work_Estimate_Type)[mfi].plus( - 0.0, vbox); - } - continue; - } - if ( - (typ == amrex::FabType::singlevalued) || - (typ == amrex::FabType::regular)) { - amrex::Real wt = - amrex::ParallelDescriptor::second(); // timing for each fab - - amrex::Real current_time = 0.0; - - auto const& rhoY = STemp.array(mfi); - auto const& T = STemp.array(mfi, NUM_SPECIES); - auto const& rhoE = STemp.array(mfi, NUM_SPECIES + 1); - auto const& frcExt = extsrc_rY.array(mfi); - auto const& frcEExt = extsrc_rE.array(mfi); - auto const& mask = dummyMask.array(mfi); - auto const& fc = fctCount.array(mfi); - - amrex::ParallelFor( - bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - // work on old state - amrex::Real rhou = sold_arr(i, j, k, UMX); - amrex::Real rhov = sold_arr(i, j, k, UMY); - amrex::Real rhow = sold_arr(i, j, k, UMZ); - amrex::Real rho_old = sold_arr(i, j, k, URHO); - amrex::Real rhoInv = 1.0 / rho_old; - - amrex::Real rotenrg=0.0; - if(rotframeflag) - { - rotenrg=get_rot_energy(i,j,k,omega,axis,axis_loc,geomdata); - } - - amrex::Real e_old = - (sold_arr(i, j, k, UEDEN) // total energy - - 0.5 * (rhou * rhou + rhov * rhov + rhow * rhow) * rhoInv) // KE - * rhoInv; - - - //note: e_den =e_int + 0.5*(u^2+v^2+w^2)-0.5*omega^2*rad^2 - //see Blazek, Appendix A3, Navier-Stokes in rotating frame of reference - e_old += rotenrg; - - // work on new state - rhou = snew_arr(i, j, k, UMX); - rhov = snew_arr(i, j, k, UMY); - rhow = snew_arr(i, j, k, UMZ); - rhoInv = 1.0 / snew_arr(i, j, k, URHO); - - amrex::Real rhoedot_ext = - (snew_arr(i, j, k, UEDEN) // new total energy - - 0.5 * (rhou * rhou + rhov * rhov + rhow * rhow) * - rhoInv + snew_arr(i,j,k,URHO)*rotenrg // new KE - - rho_old * e_old) / - dt; - - frcEExt(i, j, k) = rhoedot_ext; - }); - - reactor->react( - bx, rhoY, frcExt, T, rhoE, frcEExt, fc, mask, dt, current_time + for (amrex::MFIter mfi(S_new, amrex::TilingIfNotGPU()); mfi.isValid(); + ++mfi) { + + const amrex::Box& bx = mfi.growntilebox(ng); + + // old state or the state at t=0 + auto const& sold_arr = + react_init ? S_new.array(mfi) : get_old_data(State_Type).array(mfi); + + // new state + auto const& snew_arr = S_new.array(mfi); + auto const& nonrs_arr = non_react_src->array(mfi); + auto const& I_R = react_src.array(mfi); + + // only update beyond first step + // TODO: Update here? Or just get reaction source? + const bool do_update = !react_init; + + const auto& flag_fab = flags[mfi]; + amrex::FabType typ = flag_fab.getType(bx); + if (typ == amrex::FabType::covered) { + if (do_react_load_balance) { + const amrex::Box vbox = mfi.tilebox(); + get_new_data(Work_Estimate_Type)[mfi].plus( + 0.0, vbox); + } + continue; + } + if ( + (typ == amrex::FabType::singlevalued) || + (typ == amrex::FabType::regular)) { + amrex::Real wt = + amrex::ParallelDescriptor::second(); // timing for each fab + + amrex::Real current_time = 0.0; + + auto const& rhoY = STemp.array(mfi); + auto const& T = STemp.array(mfi, NUM_SPECIES); + auto const& rhoE = STemp.array(mfi, NUM_SPECIES + 1); + auto const& frcExt = extsrc_rY.array(mfi); + auto const& frcEExt = extsrc_rE.array(mfi); + auto const& mask = dummyMask.array(mfi); + auto const& fc = fctCount.array(mfi); + + amrex::ParallelFor( + bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + // work on old state + amrex::Real rhou = sold_arr(i, j, k, UMX); + amrex::Real rhov = sold_arr(i, j, k, UMY); + amrex::Real rhow = sold_arr(i, j, k, UMZ); + amrex::Real rho_old = sold_arr(i, j, k, URHO); + amrex::Real rhoInv = 1.0 / rho_old; + + amrex::Real rotenrg = 0.0; + if (rotframeflag) { + rotenrg = + get_rot_energy(i, j, k, omega, axis, axis_loc, geomdata); + } + + amrex::Real e_old = + (sold_arr(i, j, k, UEDEN) // total energy + - 0.5 * (rhou * rhou + rhov * rhov + rhow * rhow) * rhoInv) // KE + * rhoInv; + + // note: e_den =e_int + 0.5*(u^2+v^2+w^2)-0.5*omega^2*rad^2 + // see Blazek, Appendix A3, Navier-Stokes in rotating frame of + // reference + e_old += rotenrg; + + // work on new state + rhou = snew_arr(i, j, k, UMX); + rhov = snew_arr(i, j, k, UMY); + rhow = snew_arr(i, j, k, UMZ); + rhoInv = 1.0 / snew_arr(i, j, k, URHO); + + amrex::Real rhoedot_ext = + (snew_arr(i, j, k, UEDEN) // new total energy + - 0.5 * (rhou * rhou + rhov * rhov + rhow * rhow) * rhoInv + + snew_arr(i, j, k, URHO) * rotenrg // new KE + - rho_old * e_old) / + dt; + + frcEExt(i, j, k) = rhoedot_ext; + }); + + reactor->react( + bx, rhoY, frcExt, T, rhoE, frcEExt, fc, mask, dt, current_time #ifdef AMREX_USE_GPU - , - amrex::Gpu::gpuStream() + , + amrex::Gpu::gpuStream() #endif - ); - - amrex::Gpu::Device::streamSynchronize(); - - // unpack data - amrex::ParallelFor( - bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - // work on old state - amrex::Real rhou = sold_arr(i, j, k, UMX); - amrex::Real rhov = sold_arr(i, j, k, UMY); - amrex::Real rhow = sold_arr(i, j, k, UMZ); - amrex::Real rho_old = sold_arr(i, j, k, URHO); - amrex::Real rhoInv = 1.0 / rho_old; - - amrex::Real rotenrg=0.0; - if(rotframeflag) - { - rotenrg=get_rot_energy(i,j,k,omega,axis,axis_loc,geomdata); - } - - amrex::Real e_old = - (sold_arr(i, j, k, UEDEN) // old total energy - - 0.5 * (rhou * rhou + rhov * rhov + rhow * rhow) * rhoInv) // KE - * rhoInv; - - e_old += rotenrg; - - rhou = snew_arr(i, j, k, UMX); - rhov = snew_arr(i, j, k, UMY); - rhow = snew_arr(i, j, k, UMZ); - rhoInv = 1.0 / snew_arr(i, j, k, URHO); - - amrex::Real rhoedot_ext = - (snew_arr(i, j, k, UEDEN) // new total energy - - 0.5 * (rhou * rhou + rhov * rhov + rhow * rhow) * rhoInv // KE - + snew_arr(i,j,k,URHO)*rotenrg - rho_old * e_old) // old internal energy - / dt; - - amrex::Real umnew = - sold_arr(i, j, k, UMX) + dt * nonrs_arr(i, j, k, UMX); - amrex::Real vmnew = - sold_arr(i, j, k, UMY) + dt * nonrs_arr(i, j, k, UMY); - amrex::Real wmnew = - sold_arr(i, j, k, UMZ) + dt * nonrs_arr(i, j, k, UMZ); - - // get new rho - amrex::Real rhonew = 0.0; - - for (int nsp = 0; nsp < NUM_SPECIES; nsp++) { - rhonew += rhoY(i, j, k, nsp); - } - - if (do_update) { - snew_arr(i, j, k, URHO) = rhonew; - snew_arr(i, j, k, UMX) = umnew; - snew_arr(i, j, k, UMY) = vmnew; - snew_arr(i, j, k, UMZ) = wmnew; - - for (int nsp = 0; nsp < NUM_SPECIES; nsp++) { - snew_arr(i, j, k, UFS + nsp) = rhoY(i, j, k, nsp); - } - snew_arr(i, j, k, UTEMP) = T(i, j, k); - - snew_arr(i, j, k, UEINT) = rho_old * e_old + dt * rhoedot_ext; - snew_arr(i, j, k, UEDEN) = - snew_arr(i, j, k, UEINT) + - 0.5 * (umnew * umnew + vmnew * vmnew + wmnew * wmnew) / rhonew - - rhonew*rotenrg; - } - - for (int nsp = 0; nsp < NUM_SPECIES; nsp++) { - I_R(i, j, k, nsp) = (rhoY(i, j, k, nsp) // new rhoy - - sold_arr(i, j, k, UFS + nsp)) // old rhoy - / dt - - nonrs_arr(i, j, k, UFS + nsp); + ); + + amrex::Gpu::Device::streamSynchronize(); + + // unpack data + amrex::ParallelFor( + bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + // work on old state + amrex::Real rhou = sold_arr(i, j, k, UMX); + amrex::Real rhov = sold_arr(i, j, k, UMY); + amrex::Real rhow = sold_arr(i, j, k, UMZ); + amrex::Real rho_old = sold_arr(i, j, k, URHO); + amrex::Real rhoInv = 1.0 / rho_old; + + amrex::Real rotenrg = 0.0; + if (rotframeflag) { + rotenrg = + get_rot_energy(i, j, k, omega, axis, axis_loc, geomdata); + } + + amrex::Real e_old = + (sold_arr(i, j, k, UEDEN) // old total energy + - 0.5 * (rhou * rhou + rhov * rhov + rhow * rhow) * rhoInv) // KE + * rhoInv; + + e_old += rotenrg; + + rhou = snew_arr(i, j, k, UMX); + rhov = snew_arr(i, j, k, UMY); + rhow = snew_arr(i, j, k, UMZ); + rhoInv = 1.0 / snew_arr(i, j, k, URHO); + + amrex::Real rhoedot_ext = + (snew_arr(i, j, k, UEDEN) // new total energy + - 0.5 * (rhou * rhou + rhov * rhov + rhow * rhow) * rhoInv // KE + + snew_arr(i, j, k, URHO) * rotenrg - + rho_old * e_old) // old internal energy + / dt; + + amrex::Real umnew = + sold_arr(i, j, k, UMX) + dt * nonrs_arr(i, j, k, UMX); + amrex::Real vmnew = + sold_arr(i, j, k, UMY) + dt * nonrs_arr(i, j, k, UMY); + amrex::Real wmnew = + sold_arr(i, j, k, UMZ) + dt * nonrs_arr(i, j, k, UMZ); + + // get new rho + amrex::Real rhonew = 0.0; + + for (int nsp = 0; nsp < NUM_SPECIES; nsp++) { + rhonew += rhoY(i, j, k, nsp); + } + + if (do_update) { + snew_arr(i, j, k, URHO) = rhonew; + snew_arr(i, j, k, UMX) = umnew; + snew_arr(i, j, k, UMY) = vmnew; + snew_arr(i, j, k, UMZ) = wmnew; + + for (int nsp = 0; nsp < NUM_SPECIES; nsp++) { + snew_arr(i, j, k, UFS + nsp) = rhoY(i, j, k, nsp); + } + snew_arr(i, j, k, UTEMP) = T(i, j, k); + + snew_arr(i, j, k, UEINT) = rho_old * e_old + dt * rhoedot_ext; + snew_arr(i, j, k, UEDEN) = + snew_arr(i, j, k, UEINT) + + 0.5 * (umnew * umnew + vmnew * vmnew + wmnew * wmnew) / rhonew - + rhonew * rotenrg; + } + + for (int nsp = 0; nsp < NUM_SPECIES; nsp++) { + I_R(i, j, k, nsp) = (rhoY(i, j, k, nsp) // new rhoy + - sold_arr(i, j, k, UFS + nsp)) // old rhoy + / dt - + nonrs_arr(i, j, k, UFS + nsp); } I_R(i, j, k, NUM_SPECIES) = (rho_old * e_old + dt * rhoedot_ext // new internal energy - + 0.5 * (umnew * umnew + vmnew * vmnew + wmnew * wmnew) / - rhonew - rhonew*rotenrg // new KE + + + 0.5 * (umnew * umnew + vmnew * vmnew + wmnew * wmnew) / rhonew - + rhonew * rotenrg // new KE - sold_arr(i, j, k, UEDEN)) // old total energy / dt - nonrs_arr(i, j, k, UEDEN); diff --git a/Source/Riemann.H b/Source/Riemann.H index 150203c64..6ff1dc585 100644 --- a/Source/Riemann.H +++ b/Source/Riemann.H @@ -34,10 +34,10 @@ riemann( amrex::Real& qint_iv2, amrex::Real& qint_gdpres, amrex::Real& qint_gdgame, - amrex::Real omegal=0.0, - amrex::Real radl=0.0, - amrex::Real omegar=0.0, - amrex::Real radr=0.0) + amrex::Real omegal = 0.0, + amrex::Real radl = 0.0, + amrex::Real omegar = 0.0, + amrex::Real radr = 0.0) { const amrex::Real wsmall = std::numeric_limits::min(); @@ -131,8 +131,8 @@ riemann( mask = ustar > 0.0; qint_iv1 = mask ? vl : vr; qint_iv2 = mask ? v2l : v2r; - amrex::Real omega = mask ? omegal:omegar; - amrex::Real rad = mask ? radl:radr; + amrex::Real omega = mask ? omegal : omegar; + amrex::Real rad = mask ? radl : radr; mask = (ustar == 0.0); qint_iv1 = mask ? 0.5 * (vl + vr) : qint_iv1; @@ -189,8 +189,9 @@ riemann( uflx_w = uflx_rho * qint_iv2; const amrex::Real rhoetot = regd + - 0.5 * rgd * (qint_iu * qint_iu + qint_iv1 * qint_iv1 + qint_iv2 * qint_iv2) + - -0.5 * rgd * omega*omega*rad*rad; + 0.5 * rgd * + (qint_iu * qint_iu + qint_iv1 * qint_iv1 + qint_iv2 * qint_iv2) + + -0.5 * rgd * omega * omega * rad * rad; uflx_eden = qint_iu * (rhoetot + qint_gdpres); uflx_eint = qint_iu * regd; } @@ -222,10 +223,10 @@ laxfriedrich_flux( amrex::Real& uflx_w, amrex::Real& uflx_eden, amrex::Real& uflx_eint, - amrex::Real omegal=0.0, - amrex::Real radl=0.0, - amrex::Real omegar=0.0, - amrex::Real radr=0.0) + amrex::Real omegal = 0.0, + amrex::Real radl = 0.0, + amrex::Real omegar = 0.0, + amrex::Real radr = 0.0) { const amrex::Real wsmall = std::numeric_limits::min(); @@ -251,8 +252,10 @@ laxfriedrich_flux( eos.RYP2E(rr, mfrac_r, pr, er); // rho e total - amrex::Real r_elt = rl * (el + 0.5 * (ul * ul + vl * vl + v2l * v2l) - 0.5*omegal*omegal*radl*radl); - amrex::Real r_ert = rr * (er + 0.5 * (ur * ur + vr * vr + v2r * v2r) - 0.5*omegar*omegar*radr*radr); + amrex::Real r_elt = rl * (el + 0.5 * (ul * ul + vl * vl + v2l * v2l) - + 0.5 * omegal * omegal * radl * radl); + amrex::Real r_ert = rr * (er + 0.5 * (ur * ur + vr * vr + v2r * v2r) - + 0.5 * omegar * omegar * radr * radr); const amrex::Real wl = amrex::max(wsmall, cl * rl); const amrex::Real wr = amrex::max(wsmall, cr * rr); diff --git a/Source/RotSource.cpp b/Source/RotSource.cpp index b4d0f9dfc..36c7641d9 100644 --- a/Source/RotSource.cpp +++ b/Source/RotSource.cpp @@ -14,10 +14,9 @@ PeleC::construct_old_rot_source(amrex::Real /*time*/, amrex::Real /*dt*/) old_sources[rot_src]->setVal(0.0); - if (do_rf) - { - fill_rot_source(S_old, S_old, *old_sources[rot_src], ng); - old_sources[rot_src]->FillBoundary(geom.periodicity()); + if (do_rf) { + fill_rot_source(S_old, S_old, *old_sources[rot_src], ng); + old_sources[rot_src]->FillBoundary(geom.periodicity()); } } @@ -31,73 +30,72 @@ PeleC::construct_new_rot_source(amrex::Real /*time*/, amrex::Real /*dt*/) new_sources[rot_src]->setVal(0.0); - if (do_rf) - { - fill_rot_source(S_old, S_new, *new_sources[rot_src], ng); + if (do_rf) { + fill_rot_source(S_old, S_new, *new_sources[rot_src], ng); } } void PeleC::fill_rot_source( - const amrex::MultiFab& state_old, - const amrex::MultiFab& state_new, - amrex::MultiFab& rot_src, - int ng) + const amrex::MultiFab& state_old, + const amrex::MultiFab& state_new, + amrex::MultiFab& rot_src, + int ng) { - auto const& fact = + auto const& fact = dynamic_cast(state_old.Factory()); - auto const& flags = fact.getMultiEBCellFlagFab(); - - const auto geomdata=geom.data(); - int rf_on=do_rf; - amrex::Real omega = rf_omega; - amrex::Real axis = rf_axis; - - auto prob_lo = geom.ProbLoArray(); - auto prob_hi = geom.ProbHiArray(); - const auto dx = geom.CellSizeArray(); - - //need a check to prevent mrf in 2 and 1d - //read a vector instead for mrf_axis_x and y - amrex::GpuArray axis_loc={rf_axis_x,rf_axis_y,rf_axis_z}; - - auto const& sarrs = state_new.const_arrays(); - auto const& srcs = rot_src.arrays(); - auto const& flagarrs = flags.const_arrays(); - const amrex::IntVect ngs(ng); - amrex::ParallelFor( - rot_src, ngs, - [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { - - if (!flagarrs[nbx](i, j, k).isCovered()) - { - const auto& sarr = sarrs[nbx]; - const auto& src = srcs[nbx]; - - amrex::RealVect r(0.0,0.0,0.0); - amrex::RealVect w(0.0,0.0,0.0); - amrex::RealVect v(0.0,0.0,0.0); - - r=get_rotaxis_vec(i,j,k,axis_loc,geomdata); - w[axis]=omega; - - if(rf_on) - { - v[0]=sarr(i, j, k, UMX)/sarr(i, j, k, URHO); - v[1]=sarr(i, j, k, UMY)/sarr(i, j, k, URHO); - v[2]=sarr(i, j, k, UMZ)/sarr(i, j, k, URHO); - - //non-inertial frame case - amrex::RealVect w_cross_v = w.crossProduct(v); - amrex::RealVect w_cross_r = w.crossProduct(r); - amrex::RealVect w_cross_w_cross_r=w.crossProduct(w_cross_r); - - src(i, j, k, UMX) = -sarr(i,j,k,URHO)*(2.0*w_cross_v[0]+w_cross_w_cross_r[0]); - src(i, j, k, UMY) = -sarr(i,j,k,URHO)*(2.0*w_cross_v[1]+w_cross_w_cross_r[1]); - src(i, j, k, UMZ) = -sarr(i,j,k,URHO)*(2.0*w_cross_v[2]+w_cross_w_cross_r[2]); - } - } - }); - - amrex::Gpu::synchronize(); + auto const& flags = fact.getMultiEBCellFlagFab(); + + const auto geomdata = geom.data(); + int rf_on = do_rf; + amrex::Real omega = rf_omega; + amrex::Real axis = rf_axis; + + auto prob_lo = geom.ProbLoArray(); + auto prob_hi = geom.ProbHiArray(); + const auto dx = geom.CellSizeArray(); + + // need a check to prevent mrf in 2 and 1d + // read a vector instead for mrf_axis_x and y + amrex::GpuArray axis_loc = { + rf_axis_x, rf_axis_y, rf_axis_z}; + + auto const& sarrs = state_new.const_arrays(); + auto const& srcs = rot_src.arrays(); + auto const& flagarrs = flags.const_arrays(); + const amrex::IntVect ngs(ng); + amrex::ParallelFor( + rot_src, ngs, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { + if (!flagarrs[nbx](i, j, k).isCovered()) { + const auto& sarr = sarrs[nbx]; + const auto& src = srcs[nbx]; + + amrex::RealVect r(0.0, 0.0, 0.0); + amrex::RealVect w(0.0, 0.0, 0.0); + amrex::RealVect v(0.0, 0.0, 0.0); + + r = get_rotaxis_vec(i, j, k, axis_loc, geomdata); + w[axis] = omega; + + if (rf_on) { + v[0] = sarr(i, j, k, UMX) / sarr(i, j, k, URHO); + v[1] = sarr(i, j, k, UMY) / sarr(i, j, k, URHO); + v[2] = sarr(i, j, k, UMZ) / sarr(i, j, k, URHO); + + // non-inertial frame case + amrex::RealVect w_cross_v = w.crossProduct(v); + amrex::RealVect w_cross_r = w.crossProduct(r); + amrex::RealVect w_cross_w_cross_r = w.crossProduct(w_cross_r); + + src(i, j, k, UMX) = + -sarr(i, j, k, URHO) * (2.0 * w_cross_v[0] + w_cross_w_cross_r[0]); + src(i, j, k, UMY) = + -sarr(i, j, k, URHO) * (2.0 * w_cross_v[1] + w_cross_w_cross_r[1]); + src(i, j, k, UMZ) = + -sarr(i, j, k, URHO) * (2.0 * w_cross_v[2] + w_cross_w_cross_r[2]); + } + } + }); + + amrex::Gpu::synchronize(); } diff --git a/Source/Setup.cpp b/Source/Setup.cpp index 53d1fb760..c32e03fcd 100644 --- a/Source/Setup.cpp +++ b/Source/Setup.cpp @@ -724,8 +724,7 @@ PeleC::set_active_sources() } #endif - if(do_rf) - { + if (do_rf) { src_list.push_back(rot_src); } } diff --git a/Source/Soot.cpp b/Source/Soot.cpp index 2de1b0e2d..d69ce81d6 100644 --- a/Source/Soot.cpp +++ b/Source/Soot.cpp @@ -12,9 +12,9 @@ PeleC::setSootIndx() sc.qSpecIndx = QFS; sc.qSootIndx = QFSOOT; sc.rhoIndx = URHO; - //FIXME: Hari S: - //not sure how to handle rotational - //frames here + // FIXME: Hari S: + // not sure how to handle rotational + // frames here sc.engIndx = UEDEN; sc.specIndx = UFS; sc.sootIndx = UFSOOT; diff --git a/Source/Sources.cpp b/Source/Sources.cpp index 229e59c04..4bfbc946f 100644 --- a/Source/Sources.cpp +++ b/Source/Sources.cpp @@ -47,8 +47,8 @@ PeleC::construct_old_source( construct_old_mms_source(time); break; #endif - - case rot_src: + + case rot_src: construct_old_rot_source(time, dt); break; } // end switch @@ -99,7 +99,7 @@ PeleC::construct_new_source( construct_new_mms_source(time); break; #endif - + case rot_src: construct_new_rot_source(time, dt); break; diff --git a/Source/Utilities.H b/Source/Utilities.H index 9c346b145..3ae5188c2 100644 --- a/Source/Utilities.H +++ b/Source/Utilities.H @@ -10,133 +10,146 @@ AMREX_GPU_DEVICE AMREX_FORCE_INLINE -amrex::RealVect get_rotaxis_vec(const int i,const int j,const int k, - amrex::GpuArray axis_loc, - amrex::GeometryData const& geomdata) +amrex::RealVect +get_rotaxis_vec( + const int i, + const int j, + const int k, + amrex::GpuArray axis_loc, + amrex::GeometryData const& geomdata) { - const amrex::Real* prob_lo = - geomdata.ProbLo(); - const amrex::Real* dx = - geomdata.CellSize(); + const amrex::Real* prob_lo = geomdata.ProbLo(); + const amrex::Real* dx = geomdata.CellSize(); - amrex::RealVect r(0.0,0.0,0.0); - amrex::Real x=prob_lo[0]+(i+0.5)*dx[0]; - amrex::Real y=prob_lo[1]+(j+0.5)*dx[1]; - amrex::Real z=prob_lo[2]+(k+0.5)*dx[2]; - r[0]=x-axis_loc[0]; - r[1]=y-axis_loc[1]; - r[2]=z-axis_loc[2]; - return(r); + amrex::RealVect r(0.0, 0.0, 0.0); + amrex::Real x = prob_lo[0] + (i + 0.5) * dx[0]; + amrex::Real y = prob_lo[1] + (j + 0.5) * dx[1]; + amrex::Real z = prob_lo[2] + (k + 0.5) * dx[2]; + r[0] = x - axis_loc[0]; + r[1] = y - axis_loc[1]; + r[2] = z - axis_loc[2]; + return (r); } AMREX_GPU_DEVICE AMREX_FORCE_INLINE -amrex::Real get_rotaxis_dist(const int i,const int j,const int k, - int axis, amrex::GpuArray axis_loc, - amrex::GeometryData const& geomdata) +amrex::Real +get_rotaxis_dist( + const int i, + const int j, + const int k, + int axis, + amrex::GpuArray axis_loc, + amrex::GeometryData const& geomdata) { - amrex::RealVect r=get_rotaxis_vec(i,j,k,axis_loc,geomdata); - amrex::Real rad2=r[0]*r[0]+r[1]*r[1]+r[2]*r[2]; - rad2 -= r[axis]*r[axis]; //only in plane - return(std::sqrt(rad2)); + amrex::RealVect r = get_rotaxis_vec(i, j, k, axis_loc, geomdata); + amrex::Real rad2 = r[0] * r[0] + r[1] * r[1] + r[2] * r[2]; + rad2 -= r[axis] * r[axis]; // only in plane + return (std::sqrt(rad2)); } AMREX_GPU_DEVICE AMREX_FORCE_INLINE -amrex::Real get_rot_energy(const int i,const int j,const int k,amrex::Real omega, - int axis, - amrex::GpuArray axis_loc, - amrex::GeometryData const& geomdata) +amrex::Real +get_rot_energy( + const int i, + const int j, + const int k, + amrex::Real omega, + int axis, + amrex::GpuArray axis_loc, + amrex::GeometryData const& geomdata) { - amrex::Real rad=get_rotaxis_dist(i,j,k,axis,axis_loc,geomdata); - return(0.5*omega*omega*rad*rad); + amrex::Real rad = get_rotaxis_dist(i, j, k, axis, axis_loc, geomdata); + return (0.5 * omega * omega * rad * rad); } AMREX_GPU_DEVICE AMREX_FORCE_INLINE - void +void pc_cmpTemp( - const int i, const int j, const int k, amrex::Array4 const& S) + const int i, const int j, const int k, amrex::Array4 const& S) { - amrex::Real rhoInv = 1.0 / S(i, j, k, URHO); - amrex::Real T = S(i, j, k, UTEMP); - amrex::Real e = S(i, j, k, UEINT) * rhoInv; - amrex::Real massfrac[NUM_SPECIES]; - for (int n = 0; n < NUM_SPECIES; ++n) { - massfrac[n] = S(i, j, k, UFS + n) * rhoInv; - } - amrex::Real rho = S(i, j, k, URHO); - auto eos = pele::physics::PhysicsType::eos(); - eos.REY2T(rho, e, massfrac, T); - S(i, j, k, UTEMP) = T; + amrex::Real rhoInv = 1.0 / S(i, j, k, URHO); + amrex::Real T = S(i, j, k, UTEMP); + amrex::Real e = S(i, j, k, UEINT) * rhoInv; + amrex::Real massfrac[NUM_SPECIES]; + for (int n = 0; n < NUM_SPECIES; ++n) { + massfrac[n] = S(i, j, k, UFS + n) * rhoInv; + } + amrex::Real rho = S(i, j, k, URHO); + auto eos = pele::physics::PhysicsType::eos(); + eos.REY2T(rho, e, massfrac, T); + S(i, j, k, UTEMP) = T; } AMREX_GPU_DEVICE AMREX_FORCE_INLINE - void +void pc_rst_int_e( - const int i, - const int j, - const int k, - amrex::Array4 const& S, - const bool allow_small_energy, - const bool allow_negative_energy, - const bool dual_energy_update_E_from_e, - const amrex::Real dual_energy_eta2, - amrex::Real omega=0.0, - amrex::Real rad=0.0, - const int verbose=0) + const int i, + const int j, + const int k, + amrex::Array4 const& S, + const bool allow_small_energy, + const bool allow_negative_energy, + const bool dual_energy_update_E_from_e, + const amrex::Real dual_energy_eta2, + amrex::Real omega = 0.0, + amrex::Real rad = 0.0, + const int verbose = 0) { - if (std::is_same< - pele::physics::PhysicsType::eos_type, pele::physics::eos::SRK>::value) { - if ((!allow_small_energy) || (!allow_negative_energy)) { - amrex::Error("Small/negative energy must be allowed for nonideal EOS"); - } + if (std::is_same< + pele::physics::PhysicsType::eos_type, pele::physics::eos::SRK>::value) { + if ((!allow_small_energy) || (!allow_negative_energy)) { + amrex::Error("Small/negative energy must be allowed for nonideal EOS"); } - auto eos = pele::physics::PhysicsType::eos(); - if (!allow_small_energy) { - const amrex::Real rhoInv = 1.0 / S(i, j, k, URHO); - const amrex::Real Up = S(i, j, k, UMX) * rhoInv; - const amrex::Real Vp = S(i, j, k, UMY) * rhoInv; - const amrex::Real Wp = S(i, j, k, UMZ) * rhoInv; - const amrex::Real ke = 0.5 * (Up * Up + Vp * Vp + Wp * Wp) - 0.5*omega*omega*rad*rad; - const amrex::Real eden = S(i, j, k, UEDEN) * rhoInv; - const amrex::Real eos_state_T = constants::very_small_num(); - amrex::Real eos_state_massfrac[NUM_SPECIES] = {0.0}; - amrex::Real eos_state_ei[NUM_SPECIES] = {0.0}; - eos.T2Ei(eos_state_T, eos_state_ei); - amrex::Real eos_state_e = 0.0; + } + auto eos = pele::physics::PhysicsType::eos(); + if (!allow_small_energy) { + const amrex::Real rhoInv = 1.0 / S(i, j, k, URHO); + const amrex::Real Up = S(i, j, k, UMX) * rhoInv; + const amrex::Real Vp = S(i, j, k, UMY) * rhoInv; + const amrex::Real Wp = S(i, j, k, UMZ) * rhoInv; + const amrex::Real ke = + 0.5 * (Up * Up + Vp * Vp + Wp * Wp) - 0.5 * omega * omega * rad * rad; + const amrex::Real eden = S(i, j, k, UEDEN) * rhoInv; + const amrex::Real eos_state_T = constants::very_small_num(); + amrex::Real eos_state_massfrac[NUM_SPECIES] = {0.0}; + amrex::Real eos_state_ei[NUM_SPECIES] = {0.0}; + eos.T2Ei(eos_state_T, eos_state_ei); + amrex::Real eos_state_e = 0.0; + for (int sp = 0; sp < NUM_SPECIES; sp++) { + eos_state_massfrac[sp] = S(i, j, k, sp + UFS) * rhoInv; + eos_state_e += eos_state_massfrac[sp] * eos_state_ei[sp]; + } + const amrex::Real small_e = eos_state_e; + if (eden < small_e) { + if (S(i, j, k, UEINT) * rhoInv < small_e) { + const amrex::Real eos_state_T_loc = amrex::max( + S(i, j, k, UTEMP), std::numeric_limits::min()); + eos.T2Ei(eos_state_T_loc, eos_state_ei); + eos_state_e = 0.0; for (int sp = 0; sp < NUM_SPECIES; sp++) { - eos_state_massfrac[sp] = S(i, j, k, sp + UFS) * rhoInv; - eos_state_e += eos_state_massfrac[sp] * eos_state_ei[sp]; + eos_state_e += eos_state_massfrac[sp] * eos_state_ei[sp]; } - const amrex::Real small_e = eos_state_e; - if (eden < small_e) { - if (S(i, j, k, UEINT) * rhoInv < small_e) { - const amrex::Real eos_state_T_loc = amrex::max( - S(i, j, k, UTEMP), std::numeric_limits::min()); - eos.T2Ei(eos_state_T_loc, eos_state_ei); - eos_state_e = 0.0; - for (int sp = 0; sp < NUM_SPECIES; sp++) { - eos_state_e += eos_state_massfrac[sp] * eos_state_ei[sp]; - } - S(i, j, k, UEINT) = S(i, j, k, URHO) * eos_state_e; - } - S(i, j, k, UEDEN) = S(i, j, k, UEINT) + S(i, j, k, URHO) * ke; - } else { - const amrex::Real rho_eint = S(i, j, k, UEDEN) - S(i, j, k, URHO) * ke; - if ( - (rho_eint > - (S(i, j, k, URHO) * std::numeric_limits::min())) && - ((rho_eint - - S(i, j, k, URHO) * std::numeric_limits::min()) / - (S(i, j, k, UEDEN) - - S(i, j, k, URHO) * std::numeric_limits::min())) > - dual_energy_eta2) { - S(i, j, k, UEINT) = rho_eint; - } - if (S(i, j, k, UEINT) * rhoInv < small_e) { - const amrex::Real eos_state_T_loc = amrex::max( + S(i, j, k, UEINT) = S(i, j, k, URHO) * eos_state_e; + } + S(i, j, k, UEDEN) = S(i, j, k, UEINT) + S(i, j, k, URHO) * ke; + } else { + const amrex::Real rho_eint = S(i, j, k, UEDEN) - S(i, j, k, URHO) * ke; + if ( + (rho_eint > + (S(i, j, k, URHO) * std::numeric_limits::min())) && + ((rho_eint - + S(i, j, k, URHO) * std::numeric_limits::min()) / + (S(i, j, k, UEDEN) - + S(i, j, k, URHO) * std::numeric_limits::min())) > + dual_energy_eta2) { + S(i, j, k, UEINT) = rho_eint; + } + if (S(i, j, k, UEINT) * rhoInv < small_e) { + const amrex::Real eos_state_T_loc = amrex::max( S(i, j, k, UTEMP), std::numeric_limits::min()); eos.T2Ei(eos_state_T_loc, eos_state_ei); eos_state_e = 0.0; @@ -156,7 +169,8 @@ pc_rst_int_e( const amrex::Real Up = S(i, j, k, UMX) * rhoInv; const amrex::Real Vp = S(i, j, k, UMY) * rhoInv; const amrex::Real Wp = S(i, j, k, UMZ) * rhoInv; - const amrex::Real ke = 0.5 * (Up * Up + Vp * Vp + Wp * Wp) - 0.5*omega*omega*rad*rad; + const amrex::Real ke = + 0.5 * (Up * Up + Vp * Vp + Wp * Wp) - 0.5 * omega * omega * rad * rad; if ( S(i, j, k, UEDEN) < (S(i, j, k, URHO) * std::numeric_limits::min())) { @@ -217,7 +231,8 @@ pc_rst_int_e( const amrex::Real Up = S(i, j, k, UMX) * rhoInv; const amrex::Real Vp = S(i, j, k, UMY) * rhoInv; const amrex::Real Wp = S(i, j, k, UMZ) * rhoInv; - const amrex::Real ke = 0.5 * (Up * Up + Vp * Vp + Wp * Wp) - 0.5*omega*omega*rad*rad; + const amrex::Real ke = + 0.5 * (Up * Up + Vp * Vp + Wp * Wp) - 0.5 * omega * omega * rad * rad; S(i, j, k, UEINT) = S(i, j, k, UEDEN) - rho * ke; } } @@ -232,7 +247,8 @@ pc_ctoprim( amrex::Array4 const& u, amrex::Array4 const& q, amrex::Array4 const& qa, - amrex::Real omega=0.0, amrex::Real rad=0.0) + amrex::Real omega = 0.0, + amrex::Real rad = 0.0) { auto eos = pele::physics::PhysicsType::eos(); const amrex::Real rho = u(i, j, k, URHO); @@ -240,8 +256,8 @@ pc_ctoprim( const amrex::Real vx = u(i, j, k, UMX) * rhoinv; const amrex::Real vy = u(i, j, k, UMY) * rhoinv; const amrex::Real vz = u(i, j, k, UMZ) * rhoinv; - const amrex::Real kineng = 0.5 * rho * (vx * vx + vy * vy + vz * vz) - - 0.5*rho*omega*omega*rad*rad; + const amrex::Real kineng = 0.5 * rho * (vx * vx + vy * vy + vz * vz) - + 0.5 * rho * omega * omega * rad * rad; q(i, j, k, QRHO) = rho; q(i, j, k, QU) = vx; q(i, j, k, QV) = vy; From 18212cd79cb80211c95446a088bf155a61f907a9 Mon Sep 17 00:00:00 2001 From: Bruce Perry Date: Tue, 25 Jun 2024 18:30:20 -0600 Subject: [PATCH 10/46] derive inertial frame velocity for rotating frame stuff --- Source/Derive.H | 33 +++++++++++++++++++++++++++++++++ Source/Derive.cpp | 35 +++++++++++++++++++++++++++++++++++ Source/PeleC.H | 21 +++++++++++++++++++++ Source/Setup.cpp | 25 +++++++++++++++++++++++++ 4 files changed, 114 insertions(+) diff --git a/Source/Derive.H b/Source/Derive.H index 53060989b..1906043e5 100644 --- a/Source/Derive.H +++ b/Source/Derive.H @@ -9,6 +9,7 @@ using namespace MASA; #endif #include "EB.H" +#include "Utilities.H" AMREX_GPU_DEVICE AMREX_FORCE_INLINE @@ -87,6 +88,38 @@ void pc_dervelz( const int* bcrec, const int level); +template +void +PeleC::pc_dervel_if( + const amrex::Box& bx, + amrex::FArrayBox& derfab, + int /*dcomp*/, + int /*ncomp*/, + const amrex::FArrayBox& datfab, + const amrex::Geometry& geomdata, + amrex::Real /*time*/, + const int* /*bcrec*/, + const int /*level*/) +{ + auto const dat = datfab.const_array(); + auto vel = derfab.array(); + + int axis = rf_axis; + amrex::Real omega = rf_omega; + amrex::GpuArray axis_loc = { + rf_axis_x, rf_axis_y, rf_axis_z}; + auto const gdata = geomdata.data(); + + amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + amrex::RealVect r = get_rotaxis_vec(i, j, k, axis_loc, gdata); + amrex::RealVect w(0.0, 0.0, 0.0); + w[axis] = omega; + amrex::RealVect w_cross_r = w.crossProduct(r); + vel(i, j, k) = + dat(i, j, k, UMX + dir) / dat(i, j, k, URHO) + w_cross_r[dir]; + }); +} + void pc_dermagvel( const amrex::Box& bx, amrex::FArrayBox& derfab, diff --git a/Source/Derive.cpp b/Source/Derive.cpp index 081fef428..a5802fd96 100644 --- a/Source/Derive.cpp +++ b/Source/Derive.cpp @@ -89,6 +89,41 @@ pc_dermagvel( }); } +void +PeleC::pc_dermagvel_if( + const amrex::Box& bx, + amrex::FArrayBox& derfab, + int /*dcomp*/, + int /*ncomp*/, + const amrex::FArrayBox& datfab, + const amrex::Geometry& geomdata, + amrex::Real /*time*/, + const int* /*bcrec*/, + const int /*level*/) +{ + auto const dat = datfab.const_array(); + auto magvel = derfab.array(); + + int axis = rf_axis; + amrex::Real omega = rf_omega; + amrex::GpuArray axis_loc = { + rf_axis_x, rf_axis_y, rf_axis_z}; + auto const gdata = geomdata.data(); + + amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + amrex::RealVect r = get_rotaxis_vec(i, j, k, axis_loc, gdata); + amrex::RealVect w(0.0, 0.0, 0.0); + w[axis] = omega; + amrex::RealVect w_cross_r = w.crossProduct(r); + + const amrex::Real datinv = 1.0 / dat(i, j, k, URHO); + const amrex::Real dat1 = dat(i, j, k, UMX) * datinv + w_cross_r[0]; + const amrex::Real dat2 = dat(i, j, k, UMY) * datinv + w_cross_r[1]; + const amrex::Real dat3 = dat(i, j, k, UMZ) * datinv + w_cross_r[2]; + magvel(i, j, k) = sqrt((dat1 * dat1) + (dat2 * dat2) + (dat3 * dat3)); + }); +} + void pc_dermagmom( const amrex::Box& bx, diff --git a/Source/PeleC.H b/Source/PeleC.H index 8f25d97f7..d3bd1ab60 100644 --- a/Source/PeleC.H +++ b/Source/PeleC.H @@ -569,6 +569,27 @@ public: amrex::Real time, const int* bcrec, const int level); + template + static void pc_dervel_if( + const amrex::Box& bx, + amrex::FArrayBox& derfab, + int dcomp, + int ncomp, + const amrex::FArrayBox& datfab, + const amrex::Geometry& geomdata, + amrex::Real time, + const int* bcrec, + const int level); + static void pc_dermagvel_if( + const amrex::Box& bx, + amrex::FArrayBox& derfab, + int dcomp, + int ncomp, + const amrex::FArrayBox& datfab, + const amrex::Geometry& geomdata, + amrex::Real time, + const int* bcrec, + const int level); static int Density, Xmom, Ymom, Zmom, Eden, Eint, Temp; diff --git a/Source/Setup.cpp b/Source/Setup.cpp index c32e03fcd..071f2fdad 100644 --- a/Source/Setup.cpp +++ b/Source/Setup.cpp @@ -541,6 +541,31 @@ PeleC::variableSetUp() amrex::DeriveRec::TheSameBox); derive_lst.addComponent("magmom", desc_lst, State_Type, Density, NVAR); + // Velocities in stationary frame + if (do_rf) { + derive_lst.add( + "x_velocity_if", amrex::IndexType::TheCellType(), 1, pc_dervel_if<0>, + amrex::DeriveRec::TheSameBox); + derive_lst.addComponent( + "x_velocity_if", desc_lst, State_Type, Density, NVAR); + + derive_lst.add( + "y_velocity_if", amrex::IndexType::TheCellType(), 1, pc_dervel_if<1>, + amrex::DeriveRec::TheSameBox); + derive_lst.addComponent( + "y_velocity_if", desc_lst, State_Type, Density, NVAR); + + derive_lst.add( + "z_velocity_if", amrex::IndexType::TheCellType(), 1, pc_dervel_if<2>, + amrex::DeriveRec::TheSameBox); + derive_lst.addComponent( + "z_velocity_if", desc_lst, State_Type, Density, NVAR); + + derive_lst.add( + "magvel_if", amrex::IndexType::TheCellType(), 1, pc_dermagvel_if, + amrex::DeriveRec::TheSameBox); + derive_lst.addComponent("magvel_if", desc_lst, State_Type, Density, NVAR); + } #ifdef PELE_USE_SOOT if (add_soot_src) { addSootDerivePlotVars(derive_lst, desc_lst); From a0d558f4257a7702a864878132c2963c3e660d47 Mon Sep 17 00:00:00 2001 From: hsitaram Date: Thu, 27 Jun 2024 21:00:33 -0600 Subject: [PATCH 11/46] some refactoring in hyp flux --- Exec/RegTests/taylorCouette/inputs | 10 +++++----- Exec/RegTests/taylorCouette/prob.H | 21 ++++++++++++++++++--- Source/Diffusion.cpp | 2 +- Source/MOL.H | 3 +-- Source/MOL.cpp | 21 +++++++-------------- Source/Riemann.H | 21 +++++++++++++++------ 6 files changed, 47 insertions(+), 31 deletions(-) diff --git a/Exec/RegTests/taylorCouette/inputs b/Exec/RegTests/taylorCouette/inputs index af17af6a8..256fbdd06 100644 --- a/Exec/RegTests/taylorCouette/inputs +++ b/Exec/RegTests/taylorCouette/inputs @@ -5,9 +5,9 @@ stop_time = 1.2 # PROBLEM SIZE & GEOMETRY geometry.is_periodic = 1 1 1 geometry.coord_sys = 0 # 0 => cart -geometry.prob_lo = -50.0 -50.0 -25.0 -geometry.prob_hi = 50.0 50.0 25.0 -amr.n_cell = 32 32 16 +geometry.prob_lo = -50.0 -50.0 -12.5 +geometry.prob_hi = 50.0 50.0 12.5 +amr.n_cell = 64 64 16 # >>>>>>>>>>>>> BC KEYWORDS <<<<<<<<<<<<<<<<<<<<<< # Interior, UserBC, Symmetry, SlipWall, NoSlipWall @@ -57,7 +57,7 @@ amr.check_int = -1 # number of timesteps between checkpoints # PLOTFILES amr.plot_files_output = 1 amr.plot_file = plt -amr.plot_int = 1000 +amr.plot_int = 5000 amr.derive_plot_vars=ALL eb2.geom_type = "conc_cylinders" @@ -68,7 +68,7 @@ pelec.eb_isothermal = 0 pelec.eb_noslip = 1 pelec.do_rf=1 -pelec.rf_omega=1.0 +pelec.rf_omega=1000.0 pelec.rf_axis=2 pelec.rf_axis_x=0.0 pelec.rf_axis_y=0.0 diff --git a/Exec/RegTests/taylorCouette/prob.H b/Exec/RegTests/taylorCouette/prob.H index 517a28ad2..dc94eb2e1 100644 --- a/Exec/RegTests/taylorCouette/prob.H +++ b/Exec/RegTests/taylorCouette/prob.H @@ -7,6 +7,7 @@ #include #include #include +#include #include "mechanism.H" @@ -48,15 +49,29 @@ pc_initdata( const amrex::Real* prob_lo = geomdata.ProbLo(); const amrex::Real* dx = geomdata.CellSize(); - const amrex::Real u = 0.0; - const amrex::Real v = 0.0; - const amrex::Real w = 0.0; + amrex::Real u = 0.0; + amrex::Real v = 0.0; + amrex::Real w = 0.0; const amrex::Real p = prob_parm.p0; const amrex::Real T = prob_parm.T0; amrex::Real massfrac[NUM_SPECIES] = {1.0}; amrex::Real rho, eint; auto eos = pele::physics::PhysicsType::eos(); eos.PYT2RE(p, massfrac, T, rho, eint); + + if (prob_parm.do_rf) + { + amrex::GpuArray axis_loc = { + prob_parm.rf_axis_x, prob_parm.rf_axis_y, prob_parm.rf_axis_z}; + amrex::RealVect r = get_rotaxis_vec( + i, j, k, axis_loc, geomdata); + amrex::RealVect omgavec(0.0, 0.0, 0.0); + omgavec[prob_parm.rf_axis] = prob_parm.rf_omega; + amrex::RealVect w_cross_r = omgavec.crossProduct(r); + u=-w_cross_r[0]; + v=-w_cross_r[1]; + w=-w_cross_r[2]; + } state(i, j, k, URHO) = rho; state(i, j, k, UMX) = rho * u; diff --git a/Source/Diffusion.cpp b/Source/Diffusion.cpp index 8daaae58b..1ee9336ec 100644 --- a/Source/Diffusion.cpp +++ b/Source/Diffusion.cpp @@ -344,7 +344,7 @@ PeleC::getMOLSrcTerm( BL_PROFILE("PeleC::pc_hyp_mol_flux()"); pc_compute_hyp_mol_flux( cbox, qar, qauxar, flx, area_arr, plm_iorder, use_laxf_flux, - flags.array(mfi), prob_lo, dx, axis_loc, omega, axis, using_rf); + flags.array(mfi), geom, axis_loc, omega, axis, using_rf); } // Filter hydro fluxes diff --git a/Source/MOL.H b/Source/MOL.H index 5b47edc90..ca93b02be 100644 --- a/Source/MOL.H +++ b/Source/MOL.H @@ -128,8 +128,7 @@ void pc_compute_hyp_mol_flux( const int mol_iorder, const bool use_laxf_flux, const amrex::Array4& flags, - const amrex::GpuArray plo, - const amrex::GpuArray dx, + const amrex::Geometry& geom, const amrex::GpuArray axis_loc, amrex::Real omega, int axisdir, diff --git a/Source/MOL.cpp b/Source/MOL.cpp index 29a5444ed..73ec19815 100644 --- a/Source/MOL.cpp +++ b/Source/MOL.cpp @@ -12,8 +12,7 @@ pc_compute_hyp_mol_flux( const int mol_iorder, const bool use_laxf_flux, const amrex::Array4& flags, - const amrex::GpuArray plo, - const amrex::GpuArray dx, + const amrex::Geometry& geom, const amrex::GpuArray axis_loc, amrex::Real omega, int axisdir, @@ -29,6 +28,7 @@ pc_compute_hyp_mol_flux( const int R_NUM = 5 + NUM_SPECIES + NUM_ADV + NUM_LIN + NUM_AUX; const int bc_test_val = 1; int using_rotframe = do_rf; // local capture + const auto geomdata=geom.data(); int axisdir_captured = axisdir; amrex::Real omega_captured = omega; amrex::GpuArray axisloc_captured = { @@ -145,19 +145,12 @@ pc_compute_hyp_mol_flux( amrex::RealVect r(0.0, 0.0, 0.0); amrex::Real radl, radr, rad; if (using_rotframe) { - r[0] = plo[0] + (iv[0] + 0.5) * dx[0] - axisloc_captured[0]; - r[1] = plo[1] + (iv[1] + 0.5) * dx[1] - axisloc_captured[1]; - r[2] = plo[2] + (iv[2] + 0.5) * dx[2] - axisloc_captured[2]; - rad = r[0] * r[0] + r[1] * r[1] + r[2] * r[2]; - rad -= r[axisdir_captured] * r[axisdir_captured]; - radr = std::sqrt(rad); - r[0] = plo[0] + (ivm[0] + 0.5) * dx[0] - axisloc_captured[0]; - r[1] = plo[1] + (ivm[1] + 0.5) * dx[1] - axisloc_captured[1]; - r[2] = plo[2] + (ivm[2] + 0.5) * dx[2] - axisloc_captured[2]; - rad = r[0] * r[0] + r[1] * r[1] + r[2] * r[2]; - rad -= r[axisdir_captured] * r[axisdir_captured]; - radl = std::sqrt(rad); + radr=get_rotaxis_dist(iv[0],iv[1],iv[2],axisdir_captured, + axisloc_captured,geomdata); + + radl=get_rotaxis_dist(ivm[0],ivm[1],ivm[2],axisdir_captured, + axisloc_captured,geomdata); } if (!use_laxf_flux) { diff --git a/Source/Riemann.H b/Source/Riemann.H index 6ff1dc585..69d248f6b 100644 --- a/Source/Riemann.H +++ b/Source/Riemann.H @@ -187,11 +187,15 @@ riemann( uflx_u = uflx_rho * qint_iu + qint_gdpres; uflx_v = uflx_rho * qint_iv1; uflx_w = uflx_rho * qint_iv2; + // Hari S: see Blazek's textbook, + // Computational fluid dynamics: principles and applications + // Appendix A3, Navier-Stokes in rotating frame of reference const amrex::Real rhoetot = regd + 0.5 * rgd * - (qint_iu * qint_iu + qint_iv1 * qint_iv1 + qint_iv2 * qint_iv2) + - -0.5 * rgd * omega * omega * rad * rad; + (qint_iu * qint_iu + qint_iv1 * qint_iv1 + qint_iv2 * qint_iv2) + //rotational frame energy + - 0.5 * rgd * omega * omega * rad * rad; uflx_eden = qint_iu * (rhoetot + qint_gdpres); uflx_eint = qint_iu * regd; } @@ -252,10 +256,15 @@ laxfriedrich_flux( eos.RYP2E(rr, mfrac_r, pr, er); // rho e total - amrex::Real r_elt = rl * (el + 0.5 * (ul * ul + vl * vl + v2l * v2l) - - 0.5 * omegal * omegal * radl * radl); - amrex::Real r_ert = rr * (er + 0.5 * (ur * ur + vr * vr + v2r * v2r) - - 0.5 * omegar * omegar * radr * radr); + // Hari S: see Blazek's textbook, + // Computational fluid dynamics: principles and applications + // Appendix A3, Navier-Stokes in rotating frame of reference + amrex::Real r_elt = rl * (el + 0.5 * (ul * ul + vl * vl + v2l * v2l) + //rotational frame energy + - 0.5 * omegal * omegal * radl * radl); + amrex::Real r_ert = rr * (er + 0.5 * (ur * ur + vr * vr + v2r * v2r) + //rotational frame energy + - 0.5 * omegar * omegar * radr * radr); const amrex::Real wl = amrex::max(wsmall, cl * rl); const amrex::Real wr = amrex::max(wsmall, cr * rr); From ed60922e1f15f73977ba37b07190b9884f68a00d Mon Sep 17 00:00:00 2001 From: Hariswaran Sitaraman Date: Thu, 27 Jun 2024 22:44:33 -0600 Subject: [PATCH 12/46] input changes for taylor couette: 1) higher rotation speed 2) higher viscosity --- Exec/RegTests/taylorCouette/inputs | 18 ++++++++++-------- Exec/RegTests/taylorCouette/prob.H | 5 ++--- Submodules/PelePhysics | 2 +- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/Exec/RegTests/taylorCouette/inputs b/Exec/RegTests/taylorCouette/inputs index 256fbdd06..f89b85f82 100644 --- a/Exec/RegTests/taylorCouette/inputs +++ b/Exec/RegTests/taylorCouette/inputs @@ -1,13 +1,13 @@ # ------------------ INPUTS TO MAIN PROGRAM ------------------- -max_step = 100000 -stop_time = 1.2 +max_step = 1000000 +stop_time = 0.06 # PROBLEM SIZE & GEOMETRY geometry.is_periodic = 1 1 1 geometry.coord_sys = 0 # 0 => cart geometry.prob_lo = -50.0 -50.0 -12.5 geometry.prob_hi = 50.0 50.0 12.5 -amr.n_cell = 64 64 16 +amr.n_cell = 128 128 32 # >>>>>>>>>>>>> BC KEYWORDS <<<<<<<<<<<<<<<<<<<<<< # Interior, UserBC, Symmetry, SlipWall, NoSlipWall @@ -16,8 +16,6 @@ amr.n_cell = 64 64 16 pelec.lo_bc = "Interior" "Interior" "Interior" pelec.hi_bc = "Interior" "Interior" "Interior" -# Problem setup -pelec.eb_isothermal = 0 # WHICH PHYSICS pelec.do_hydro = 1 @@ -47,7 +45,7 @@ amr.max_level = 0 # maximum level number allowed #amr.ref_ratio = 2 2 2 2 # refinement ratio #amr.regrid_int = 2 # how often to regrid amr.blocking_factor = 8 # block factor in grid generation -amr.max_grid_size = 32 +amr.max_grid_size = 16 # CHECKPOINT FILES amr.checkpoint_files_output = 0 @@ -57,7 +55,7 @@ amr.check_int = -1 # number of timesteps between checkpoints # PLOTFILES amr.plot_files_output = 1 amr.plot_file = plt -amr.plot_int = 5000 +amr.plot_int = 1000 amr.derive_plot_vars=ALL eb2.geom_type = "conc_cylinders" @@ -68,9 +66,13 @@ pelec.eb_isothermal = 0 pelec.eb_noslip = 1 pelec.do_rf=1 -pelec.rf_omega=1000.0 +pelec.rf_omega=500.0 pelec.rf_axis=2 pelec.rf_axis_x=0.0 pelec.rf_axis_y=0.0 pelec.rf_axis_z=0.0 pelec.rf_rad=20.0 + +prob.viscosity=20.0 +prob.d_inner=40.0 +prob.d_outer=75.0 diff --git a/Exec/RegTests/taylorCouette/prob.H b/Exec/RegTests/taylorCouette/prob.H index dc94eb2e1..42c848821 100644 --- a/Exec/RegTests/taylorCouette/prob.H +++ b/Exec/RegTests/taylorCouette/prob.H @@ -7,7 +7,6 @@ #include #include #include -#include #include "mechanism.H" @@ -58,8 +57,8 @@ pc_initdata( amrex::Real rho, eint; auto eos = pele::physics::PhysicsType::eos(); eos.PYT2RE(p, massfrac, T, rho, eint); - - if (prob_parm.do_rf) + + if (prob_parm.do_rf) { amrex::GpuArray axis_loc = { prob_parm.rf_axis_x, prob_parm.rf_axis_y, prob_parm.rf_axis_z}; diff --git a/Submodules/PelePhysics b/Submodules/PelePhysics index 1bea1bfe0..0aee17a36 160000 --- a/Submodules/PelePhysics +++ b/Submodules/PelePhysics @@ -1 +1 @@ -Subproject commit 1bea1bfe0b0ae24ef8c86148af3ca7cc04c0815c +Subproject commit 0aee17a3645293ed352ef2f15b728ad3318a32fa From 27e8a7f946cb0d5fe8f4c057847d01a918e4af7e Mon Sep 17 00:00:00 2001 From: Bruce Perry Date: Wed, 10 Jul 2024 15:52:22 -0600 Subject: [PATCH 13/46] update taylor couette for pelephysics changes --- Exec/RegTests/taylorCouette/prob.H | 9 +++------ Exec/RegTests/taylorCouette/prob.cpp | 2 +- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/Exec/RegTests/taylorCouette/prob.H b/Exec/RegTests/taylorCouette/prob.H index 42c848821..7e65e6043 100644 --- a/Exec/RegTests/taylorCouette/prob.H +++ b/Exec/RegTests/taylorCouette/prob.H @@ -17,7 +17,7 @@ #include "EOS.H" #include "Tagging.H" -#include "ProblemDerive.H" +#include "ProblemSpecificFunctions.H" #include "prob_parm.H" #include "EB.H" #include @@ -110,8 +110,7 @@ bcnormal( void pc_prob_close(); -using ProblemTags = EmptyProbTagStruct; -using ProblemDerives = EmptyProbDeriveStruct; +using ProblemSpecificFunctions = DefaultProblemSpecificFunctions; /*using ProblemTags = EmptyProbTagStruct; @@ -169,8 +168,6 @@ prob_parm->alpha * std::exp( arr(i, j, k, 0) = dat(i, j, k, URHO) - rho_exact; }); } -}; - -using ProblemDerives = MyProbDeriveStruct;*/ +}; */ #endif diff --git a/Exec/RegTests/taylorCouette/prob.cpp b/Exec/RegTests/taylorCouette/prob.cpp index 6b8c9fb34..0c4101e42 100644 --- a/Exec/RegTests/taylorCouette/prob.cpp +++ b/Exec/RegTests/taylorCouette/prob.cpp @@ -32,7 +32,7 @@ amrex_probinit( pp_pelec.query("rf_axis_y", PeleC::h_prob_parm_device->rf_axis_y); pp_pelec.query("rf_axis_z", PeleC::h_prob_parm_device->rf_axis_z); - auto& trans_parm = PeleC::trans_parms.host_trans_parm(); + auto& trans_parm = PeleC::trans_parms.host_parm(); trans_parm.const_bulk_viscosity = 0.0; trans_parm.const_diffusivity = 0.0; trans_parm.const_viscosity = PeleC::h_prob_parm_device->mu; From 28dde9f70eec962f31e517118eccb6b09bc9ba74 Mon Sep 17 00:00:00 2001 From: hsitaram Date: Mon, 15 Jul 2024 14:59:45 -0600 Subject: [PATCH 14/46] adding 4 bladed rotor case --- Exec/RegTests/Rotor4Blade/GNUmakefile | 38 ++++++ Exec/RegTests/Rotor4Blade/Make.package | 3 + Exec/RegTests/Rotor4Blade/clean.sh | 1 + Exec/RegTests/Rotor4Blade/inputs | 78 +++++++++++ Exec/RegTests/Rotor4Blade/prob.H | 173 +++++++++++++++++++++++++ Exec/RegTests/Rotor4Blade/prob.cpp | 121 +++++++++++++++++ Exec/RegTests/Rotor4Blade/prob_parm.H | 30 +++++ 7 files changed, 444 insertions(+) create mode 100644 Exec/RegTests/Rotor4Blade/GNUmakefile create mode 100644 Exec/RegTests/Rotor4Blade/Make.package create mode 100644 Exec/RegTests/Rotor4Blade/clean.sh create mode 100644 Exec/RegTests/Rotor4Blade/inputs create mode 100644 Exec/RegTests/Rotor4Blade/prob.H create mode 100644 Exec/RegTests/Rotor4Blade/prob.cpp create mode 100644 Exec/RegTests/Rotor4Blade/prob_parm.H diff --git a/Exec/RegTests/Rotor4Blade/GNUmakefile b/Exec/RegTests/Rotor4Blade/GNUmakefile new file mode 100644 index 000000000..759882215 --- /dev/null +++ b/Exec/RegTests/Rotor4Blade/GNUmakefile @@ -0,0 +1,38 @@ +# AMReX +DIM = 3 +COMP = gnu +PRECISION = DOUBLE + +# Profiling +PROFILE = FALSE +TINY_PROFILE = FALSE +COMM_PROFILE = FALSE +TRACE_PROFILE = FALSE +MEM_PROFILE = FALSE +USE_GPROF = FALSE + +# Performance +USE_MPI = FALSE +USE_OMP = FALSE +USE_CUDA = FALSE +USE_HIP = FALSE +USE_SYCL = FALSE + +# Debugging +DEBUG = FALSE +FSANITIZER = FALSE +THREAD_SANITIZER = FALSE + +# PeleC +PELE_CVODE_FORCE_YCORDER = FALSE +PELE_USE_MAGMA = FALSE +PELE_COMPILE_AJACOBIAN = FALSE +Eos_Model := GammaLaw +Chemistry_Model := Null +Transport_Model := Constant + +# GNU Make +Bpack := ./Make.package +Blocs := . +PELE_HOME := ../../.. +include $(PELE_HOME)/Exec/Make.PeleC diff --git a/Exec/RegTests/Rotor4Blade/Make.package b/Exec/RegTests/Rotor4Blade/Make.package new file mode 100644 index 000000000..bdc32b025 --- /dev/null +++ b/Exec/RegTests/Rotor4Blade/Make.package @@ -0,0 +1,3 @@ +CEXE_headers += prob.H +CEXE_headers += prob_parm.H +CEXE_sources += prob.cpp diff --git a/Exec/RegTests/Rotor4Blade/clean.sh b/Exec/RegTests/Rotor4Blade/clean.sh new file mode 100644 index 000000000..4a08fa157 --- /dev/null +++ b/Exec/RegTests/Rotor4Blade/clean.sh @@ -0,0 +1 @@ +rm -rf plt* resnorms.* Backtrace.* chk* core.* diff --git a/Exec/RegTests/Rotor4Blade/inputs b/Exec/RegTests/Rotor4Blade/inputs new file mode 100644 index 000000000..e9990570e --- /dev/null +++ b/Exec/RegTests/Rotor4Blade/inputs @@ -0,0 +1,78 @@ +# ------------------ INPUTS TO MAIN PROGRAM ------------------- +max_step = 1000000 +stop_time = 0.06 + +# PROBLEM SIZE & GEOMETRY +geometry.is_periodic = 1 1 1 +geometry.coord_sys = 0 # 0 => cart +geometry.prob_lo = -50.0 -50.0 -12.5 +geometry.prob_hi = 50.0 50.0 12.5 +amr.n_cell = 128 128 32 + +# >>>>>>>>>>>>> BC KEYWORDS <<<<<<<<<<<<<<<<<<<<<< +# Interior, UserBC, Symmetry, SlipWall, NoSlipWall +# >>>>>>>>>>>>> BC KEYWORDS <<<<<<<<<<<<<<<<<<<<<< + +pelec.lo_bc = "Interior" "Interior" "Interior" +pelec.hi_bc = "Interior" "Interior" "Interior" + + +# WHICH PHYSICS +pelec.do_hydro = 1 +pelec.do_mol = 1 +pelec.do_react = 0 +pelec.allow_negative_energy = 0 +pelec.diffuse_temp = 1 +pelec.diffuse_vel = 1 +pelec.diffuse_spec = 0 +pelec.diffuse_enth = 0 + +# TIME STEP CONTROL +pelec.dt_cutoff = 5.e-20 # level 0 timestep below which we halt +pelec.cfl = 0.2 # cfl number for hyperbolic system +pelec.init_shrink = 1.0 # scale back initial timestep +pelec.change_max = 1.05 # maximum increase in dt over successive steps + +# DIAGNOSTICS & VERBOSITY +pelec.sum_interval = 1 # timesteps between computing mass +pelec.v = 1 # verbosity in PeleC cpp files +amr.v = 1 # verbosity in Amr.cpp +#amr.grid_log = grdlog # name of grid logging file +amr.data_log = datlog + +# REFINEMENT / REGRIDDING +amr.max_level = 0 # maximum level number allowed +#amr.ref_ratio = 2 2 2 2 # refinement ratio +#amr.regrid_int = 2 # how often to regrid +amr.blocking_factor = 8 # block factor in grid generation +amr.max_grid_size = 16 + +# CHECKPOINT FILES +amr.checkpoint_files_output = 0 +amr.check_file = chk # root name of checkpoint file +amr.check_int = -1 # number of timesteps between checkpoints + +# PLOTFILES +amr.plot_files_output = 1 +amr.plot_file = plt +amr.plot_int = 1000 +amr.derive_plot_vars=ALL + +eb2.geom_type = "conc_cylinders" +eb2.small_volfrac=1.e-6 +ebd.boundary_grad_stencil_type = 0 +pelec.eb_boundary_T = 300. +pelec.eb_isothermal = 0 +pelec.eb_noslip = 1 + +pelec.do_rf=1 +pelec.rf_omega=500.0 +pelec.rf_axis=2 +pelec.rf_axis_x=0.0 +pelec.rf_axis_y=0.0 +pelec.rf_axis_z=0.0 +pelec.rf_rad=20.0 + +prob.viscosity=20.0 +prob.d_inner=20.0 +prob.d_outer=75.0 diff --git a/Exec/RegTests/Rotor4Blade/prob.H b/Exec/RegTests/Rotor4Blade/prob.H new file mode 100644 index 000000000..7e65e6043 --- /dev/null +++ b/Exec/RegTests/Rotor4Blade/prob.H @@ -0,0 +1,173 @@ +#ifndef PROB_H +#define PROB_H + +#include +#include +#include +#include +#include +#include + +#include "mechanism.H" + +#include "PeleC.H" +#include "IndexDefines.H" +#include "Constants.H" +#include "PelePhysics.H" +#include "EOS.H" + +#include "Tagging.H" +#include "ProblemSpecificFunctions.H" +#include "prob_parm.H" +#include "EB.H" +#include +#include "Utilities.H" +#include "Geometry.H" + +class EBConcCylinders : public pele::pelec::Geometry::Register +{ +public: + static std::string identifier() { return "conc_cylinders"; } + + void + build(const amrex::Geometry& geom, const int max_coarsening_level) override; +}; + +AMREX_GPU_DEVICE +AMREX_FORCE_INLINE +void +pc_initdata( + int i, + int j, + int k, + amrex::Array4 const& state, + amrex::GeometryData const& geomdata, + ProbParmDevice const& prob_parm) +{ + // Geometry + const amrex::Real* prob_lo = geomdata.ProbLo(); + const amrex::Real* dx = geomdata.CellSize(); + + amrex::Real u = 0.0; + amrex::Real v = 0.0; + amrex::Real w = 0.0; + const amrex::Real p = prob_parm.p0; + const amrex::Real T = prob_parm.T0; + amrex::Real massfrac[NUM_SPECIES] = {1.0}; + amrex::Real rho, eint; + auto eos = pele::physics::PhysicsType::eos(); + eos.PYT2RE(p, massfrac, T, rho, eint); + + if (prob_parm.do_rf) + { + amrex::GpuArray axis_loc = { + prob_parm.rf_axis_x, prob_parm.rf_axis_y, prob_parm.rf_axis_z}; + amrex::RealVect r = get_rotaxis_vec( + i, j, k, axis_loc, geomdata); + amrex::RealVect omgavec(0.0, 0.0, 0.0); + omgavec[prob_parm.rf_axis] = prob_parm.rf_omega; + amrex::RealVect w_cross_r = omgavec.crossProduct(r); + u=-w_cross_r[0]; + v=-w_cross_r[1]; + w=-w_cross_r[2]; + } + + state(i, j, k, URHO) = rho; + state(i, j, k, UMX) = rho * u; + state(i, j, k, UMY) = rho * v; + state(i, j, k, UMZ) = rho * w; + state(i, j, k, UEINT) = rho * eint; + state(i, j, k, UEDEN) = rho * (eint + 0.5 * (u * u + v * v + w * w)); + state(i, j, k, UTEMP) = T; + for (int n = 0; n < NUM_SPECIES; n++) { + state(i, j, k, UFS + n) = rho * massfrac[n]; + } + + if (prob_parm.do_rf) { + amrex::GpuArray axis_loc = { + prob_parm.rf_axis_x, prob_parm.rf_axis_y, prob_parm.rf_axis_z}; + amrex::Real rotenrg = get_rot_energy( + i, j, k, prob_parm.rf_omega, prob_parm.rf_axis, axis_loc, geomdata); + state(i, j, k, UEDEN) -= rho * rotenrg; + } +} + +AMREX_GPU_DEVICE +AMREX_FORCE_INLINE +void +bcnormal( + const amrex::Real* /*x[AMREX_SPACEDIM]*/, + const amrex::Real* /*s_int[NVAR]*/, + amrex::Real* /*s_ext[NVAR]*/, + const int /*idir*/, + const int /*sgn*/, + const amrex::Real /*time*/, + amrex::GeometryData const& /*geomdata*/, + ProbParmDevice const& /*prob_parm*/, + const amrex::GpuArray& /*turb_fluc*/) +{ +} + +void pc_prob_close(); + +using ProblemSpecificFunctions = DefaultProblemSpecificFunctions; + +/*using ProblemTags = EmptyProbTagStruct; + + struct MyProbDeriveStruct + { + static amrex::Box the_same_box(const amrex::Box& b) { return b; } + + static void + add(amrex::DeriveList& derive_lst, const amrex::DescriptorList& desc_lst) + { +// Add derives as follows and define the derive function below: +derive_lst.add( +"velx_if", amrex::IndexType::TheCellType(), 1, pc_velx_if, +the_same_box); +derive_lst.addComponent("velx_if", desc_lst, State_Type, 0, NVAR); + +derive_lst.add( +"vely_if", amrex::IndexType::TheCellType(), 1, pc_vely_if, +the_same_box); +derive_lst.addComponent("vely_if", desc_lst, State_Type, 0, NVAR); + +derive_lst.add( +"velz_if", amrex::IndexType::TheCellType(), 1, pc_velz_if, +the_same_box); +derive_lst.addComponent("velz_if", desc_lst, State_Type, 0, NVAR); +} + +static void pc_rhoerror( +const amrex::Box& bx, +amrex::FArrayBox& derfab, +int dcomp, +int ncomp, +const amrex::FArrayBox& datfab, +const amrex::Geometry& geomdata, +amrex::Real time, +const int* bcrec, +int level) +{ +auto const dat = datfab.array(); +auto arr = derfab.array(); +const amrex::GpuArray prob_lo = +geomdata.ProbLoArray(); +const amrex::GpuArray dx = +geomdata.CellSizeArray(); + +ProbParmDevice const* prob_parm = PeleC::d_prob_parm_device; + +amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { +const amrex::Real x = prob_lo[0] + (i + 0.5) * dx[0]; +const amrex::Real rho_exact = +prob_parm->rho + +prob_parm->alpha * std::exp( +-((x - prob_parm->cs * time) / prob_parm->sigma) * +((x - prob_parm->cs * time) / prob_parm->sigma)); +arr(i, j, k, 0) = dat(i, j, k, URHO) - rho_exact; +}); +} +}; */ + +#endif diff --git a/Exec/RegTests/Rotor4Blade/prob.cpp b/Exec/RegTests/Rotor4Blade/prob.cpp new file mode 100644 index 000000000..71e1e29a8 --- /dev/null +++ b/Exec/RegTests/Rotor4Blade/prob.cpp @@ -0,0 +1,121 @@ +#include "prob.H" + +void +pc_prob_close() +{ +} + +extern "C" { +void +amrex_probinit( + const int* /*init*/, + const int* /*name*/, + const int* /*namelen*/, + const amrex::Real* problo, + const amrex::Real* probhi) +{ + // Parse params + amrex::ParmParse pp("prob"); + pp.query("p0", PeleC::h_prob_parm_device->p0); + pp.query("T0", PeleC::h_prob_parm_device->T0); + pp.query("d_inner", PeleC::h_prob_parm_device->d_inner); + pp.query("d_outer", PeleC::h_prob_parm_device->d_outer); + pp.query("viscosity", PeleC::h_prob_parm_device->mu); + pp.query("thermal_conductivity", PeleC::h_prob_parm_device->kappa); + + // check for rotational frame + amrex::ParmParse pp_pelec("pelec"); + pp_pelec.query("do_rf", PeleC::h_prob_parm_device->do_rf); + pp_pelec.query("rf_omega", PeleC::h_prob_parm_device->rf_omega); + pp_pelec.query("rf_axis", PeleC::h_prob_parm_device->rf_axis); + pp_pelec.query("rf_axis_x", PeleC::h_prob_parm_device->rf_axis_x); + pp_pelec.query("rf_axis_y", PeleC::h_prob_parm_device->rf_axis_y); + pp_pelec.query("rf_axis_z", PeleC::h_prob_parm_device->rf_axis_z); + + auto& trans_parm = PeleC::trans_parms.host_parm(); + trans_parm.const_bulk_viscosity = 0.0; + trans_parm.const_diffusivity = 0.0; + trans_parm.const_viscosity = PeleC::h_prob_parm_device->mu; + trans_parm.const_conductivity = PeleC::h_prob_parm_device->kappa; + PeleC::trans_parms.sync_to_device(); +} +} + +void +PeleC::problem_post_timestep() +{ +} + +void +PeleC::problem_post_init() +{ +} + +void +PeleC::problem_post_restart() +{ +} + +void +EBConcCylinders::build( + const amrex::Geometry& geom, const int max_coarsening_level) +{ + auto plo = geom.ProbLoArray(); + auto phi = geom.ProbHiArray(); + amrex::ParmParse ppprob("prob"); + ppprob.query("d_inner", PeleC::h_prob_parm_device->d_inner); + ppprob.query("d_outer", PeleC::h_prob_parm_device->d_outer); + + ProbParmDevice const* pp = PeleC::h_prob_parm_device; + + amrex::Real r_in=0.5*pp->d_inner; + amrex::Real bladelen=1.5*r_in; + amrex::Real bladethick=0.4*r_in; + amrex::Real zlen=phi[2]-plo[2]; + + // infinite cylinders + amrex::EB2::CylinderIF inner( + r_in, 2, {AMREX_D_DECL(0.0, 0, 0)}, false); + + amrex::RealArray lo,hi; + + lo[0]=0.5*r_in; + hi[0]=lo[0]+bladelen; + lo[1]=-0.5*bladethick; + hi[1]=0.5*bladethick; + lo[2]=plo[2]-2.0*zlen; + hi[2]=phi[2]+2.0*zlen; + amrex::EB2::BoxIF bf1(lo, hi, false); + + hi[0]=-0.5*r_in; + lo[0]=hi[0]-bladelen; + lo[1]=-0.5*bladethick; + hi[1]=0.5*bladethick; + lo[2]=plo[2]-2.0*zlen; + hi[2]=phi[2]+2.0*zlen; + amrex::EB2::BoxIF bf2(lo, hi, false); + + lo[1]=0.5*r_in; + hi[1]=lo[1]+bladelen; + lo[0]=-0.5*bladethick; + hi[0]=0.5*bladethick; + lo[2]=plo[2]-2.0*zlen; + hi[2]=phi[2]+2.0*zlen; + amrex::EB2::BoxIF bf3(lo, hi, false); + + hi[1]=-0.5*r_in; + lo[1]=hi[1]-bladelen; + lo[0]=-0.5*bladethick; + hi[0]=0.5*bladethick; + lo[2]=plo[2]-2.0*zlen; + hi[2]=phi[2]+2.0*zlen; + amrex::EB2::BoxIF bf4(lo, hi, false); + + amrex::EB2::CylinderIF outer( + 0.5 * pp->d_outer, 2, {AMREX_D_DECL(0.0, 0, 0)}, true); + + auto conc_cyl = amrex::EB2::makeUnion(inner, bf1, bf2, bf3, bf4, outer); + auto gshop = amrex::EB2::makeShop(conc_cyl); + amrex::EB2::Build( + gshop, geom, max_coarsening_level, max_coarsening_level, 4, false); +} diff --git a/Exec/RegTests/Rotor4Blade/prob_parm.H b/Exec/RegTests/Rotor4Blade/prob_parm.H new file mode 100644 index 000000000..1572c8a77 --- /dev/null +++ b/Exec/RegTests/Rotor4Blade/prob_parm.H @@ -0,0 +1,30 @@ +#ifndef PROB_PARM_H +#define PROB_PARM_H + +#include +#include +#include + +struct ProbParmDevice +{ + amrex::Real d_inner = 25.0; + amrex::Real d_outer = 75.0; + amrex::Real p0 = 1e6; + amrex::Real T0 = 300.0; + amrex::Real mu = 0.1; + amrex::Real kappa = 1.0; + amrex::GpuArray massfrac = {1.0}; + int do_rf = 0; + amrex::Real rf_omega = 0; + amrex::Real rf_axis = 2; + amrex::Real rf_axis_x = 0.0; + amrex::Real rf_axis_y = 0.0; + amrex::Real rf_axis_z = 0.0; +}; + +struct ProbParmHost +{ + ProbParmHost() = default; +}; + +#endif From d81ae73dde5fbd77f45a6dbbd2289e5bcc378e81 Mon Sep 17 00:00:00 2001 From: Hariswaran Sitaraman Date: Tue, 24 Sep 2024 16:42:46 -0600 Subject: [PATCH 15/46] fix gpu capture issue --- Source/PeleC.cpp | 2 +- Submodules/PelePhysics | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/PeleC.cpp b/Source/PeleC.cpp index f1f4f9012..b2eea836a 100644 --- a/Source/PeleC.cpp +++ b/Source/PeleC.cpp @@ -1555,7 +1555,7 @@ PeleC::enforce_consistent_e(amrex::MultiFab& S) auto sarr = sarrs[nbx]; amrex::Real rotenrg = - get_rot_energy(i, j, k, omega, rf_axis, axis_loc, geomdata); + get_rot_energy(i, j, k, omega, axis, axis_loc, geomdata); sarr(i, j, k, UEDEN) = sarr(i, j, k, UEINT) - sarr(i, j, k, URHO) * rotenrg; }); diff --git a/Submodules/PelePhysics b/Submodules/PelePhysics index 29401b659..19ccf8557 160000 --- a/Submodules/PelePhysics +++ b/Submodules/PelePhysics @@ -1 +1 @@ -Subproject commit 29401b659829900c652a3a75daf8e09045fb9a16 +Subproject commit 19ccf8557a69d18cec8354ddde4af8e97d384cef From 01d6d500532be8a4e7a73b24fb82d76f58c11f46 Mon Sep 17 00:00:00 2001 From: Hariswaran Sitaraman Date: Wed, 25 Sep 2024 16:35:55 -0600 Subject: [PATCH 16/46] matching submodules --- Submodules/PelePhysics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Submodules/PelePhysics b/Submodules/PelePhysics index 19ccf8557..060a7aeb9 160000 --- a/Submodules/PelePhysics +++ b/Submodules/PelePhysics @@ -1 +1 @@ -Subproject commit 19ccf8557a69d18cec8354ddde4af8e97d384cef +Subproject commit 060a7aeb97e6bfd3703646c479c9ed10b2bbe152 From 9c9bb26a45e46cd53392049a7b07ac08496f64a2 Mon Sep 17 00:00:00 2001 From: Hariswaran Sitaraman Date: Thu, 26 Sep 2024 17:45:57 -0600 Subject: [PATCH 17/46] some filename changes --- .../{Rotor4Blade => EB_Rotor4Blade}/GNUmakefile | 0 .../{Rotor4Blade => EB_Rotor4Blade}/Make.package | 0 Exec/RegTests/{Rotor4Blade => EB_Rotor4Blade}/prob.H | 0 Exec/RegTests/{Rotor4Blade => EB_Rotor4Blade}/prob.cpp | 0 .../{Rotor4Blade => EB_Rotor4Blade}/prob_parm.H | 0 .../{Rotor4Blade/inputs => EB_Rotor4Blade/rotor.inp} | 10 +++++----- .../{taylorCouette => EB_TaylorCouette}/GNUmakefile | 0 .../{taylorCouette => EB_TaylorCouette}/Make.package | 0 .../{taylorCouette => EB_TaylorCouette}/prob.H | 0 .../{taylorCouette => EB_TaylorCouette}/prob.cpp | 0 .../{taylorCouette => EB_TaylorCouette}/prob_parm.H | 0 .../{taylorCouette/inputs => EB_TaylorCouette/tc.inp} | 0 Exec/RegTests/Rotor4Blade/clean.sh | 1 - 13 files changed, 5 insertions(+), 6 deletions(-) rename Exec/RegTests/{Rotor4Blade => EB_Rotor4Blade}/GNUmakefile (100%) rename Exec/RegTests/{Rotor4Blade => EB_Rotor4Blade}/Make.package (100%) rename Exec/RegTests/{Rotor4Blade => EB_Rotor4Blade}/prob.H (100%) rename Exec/RegTests/{Rotor4Blade => EB_Rotor4Blade}/prob.cpp (100%) rename Exec/RegTests/{Rotor4Blade => EB_Rotor4Blade}/prob_parm.H (100%) rename Exec/RegTests/{Rotor4Blade/inputs => EB_Rotor4Blade/rotor.inp} (90%) rename Exec/RegTests/{taylorCouette => EB_TaylorCouette}/GNUmakefile (100%) rename Exec/RegTests/{taylorCouette => EB_TaylorCouette}/Make.package (100%) rename Exec/RegTests/{taylorCouette => EB_TaylorCouette}/prob.H (100%) rename Exec/RegTests/{taylorCouette => EB_TaylorCouette}/prob.cpp (100%) rename Exec/RegTests/{taylorCouette => EB_TaylorCouette}/prob_parm.H (100%) rename Exec/RegTests/{taylorCouette/inputs => EB_TaylorCouette/tc.inp} (100%) delete mode 100644 Exec/RegTests/Rotor4Blade/clean.sh diff --git a/Exec/RegTests/Rotor4Blade/GNUmakefile b/Exec/RegTests/EB_Rotor4Blade/GNUmakefile similarity index 100% rename from Exec/RegTests/Rotor4Blade/GNUmakefile rename to Exec/RegTests/EB_Rotor4Blade/GNUmakefile diff --git a/Exec/RegTests/Rotor4Blade/Make.package b/Exec/RegTests/EB_Rotor4Blade/Make.package similarity index 100% rename from Exec/RegTests/Rotor4Blade/Make.package rename to Exec/RegTests/EB_Rotor4Blade/Make.package diff --git a/Exec/RegTests/Rotor4Blade/prob.H b/Exec/RegTests/EB_Rotor4Blade/prob.H similarity index 100% rename from Exec/RegTests/Rotor4Blade/prob.H rename to Exec/RegTests/EB_Rotor4Blade/prob.H diff --git a/Exec/RegTests/Rotor4Blade/prob.cpp b/Exec/RegTests/EB_Rotor4Blade/prob.cpp similarity index 100% rename from Exec/RegTests/Rotor4Blade/prob.cpp rename to Exec/RegTests/EB_Rotor4Blade/prob.cpp diff --git a/Exec/RegTests/Rotor4Blade/prob_parm.H b/Exec/RegTests/EB_Rotor4Blade/prob_parm.H similarity index 100% rename from Exec/RegTests/Rotor4Blade/prob_parm.H rename to Exec/RegTests/EB_Rotor4Blade/prob_parm.H diff --git a/Exec/RegTests/Rotor4Blade/inputs b/Exec/RegTests/EB_Rotor4Blade/rotor.inp similarity index 90% rename from Exec/RegTests/Rotor4Blade/inputs rename to Exec/RegTests/EB_Rotor4Blade/rotor.inp index e9990570e..f384aa8ba 100644 --- a/Exec/RegTests/Rotor4Blade/inputs +++ b/Exec/RegTests/EB_Rotor4Blade/rotor.inp @@ -5,9 +5,9 @@ stop_time = 0.06 # PROBLEM SIZE & GEOMETRY geometry.is_periodic = 1 1 1 geometry.coord_sys = 0 # 0 => cart -geometry.prob_lo = -50.0 -50.0 -12.5 -geometry.prob_hi = 50.0 50.0 12.5 -amr.n_cell = 128 128 32 +geometry.prob_lo = -50.0 -50.0 -6.25 +geometry.prob_hi = 50.0 50.0 6.25 +amr.n_cell = 256 256 32 # >>>>>>>>>>>>> BC KEYWORDS <<<<<<<<<<<<<<<<<<<<<< # Interior, UserBC, Symmetry, SlipWall, NoSlipWall @@ -50,12 +50,12 @@ amr.max_grid_size = 16 # CHECKPOINT FILES amr.checkpoint_files_output = 0 amr.check_file = chk # root name of checkpoint file -amr.check_int = -1 # number of timesteps between checkpoints +amr.check_int = 10000 # number of timesteps between checkpoints # PLOTFILES amr.plot_files_output = 1 amr.plot_file = plt -amr.plot_int = 1000 +amr.plot_int = 5000 amr.derive_plot_vars=ALL eb2.geom_type = "conc_cylinders" diff --git a/Exec/RegTests/taylorCouette/GNUmakefile b/Exec/RegTests/EB_TaylorCouette/GNUmakefile similarity index 100% rename from Exec/RegTests/taylorCouette/GNUmakefile rename to Exec/RegTests/EB_TaylorCouette/GNUmakefile diff --git a/Exec/RegTests/taylorCouette/Make.package b/Exec/RegTests/EB_TaylorCouette/Make.package similarity index 100% rename from Exec/RegTests/taylorCouette/Make.package rename to Exec/RegTests/EB_TaylorCouette/Make.package diff --git a/Exec/RegTests/taylorCouette/prob.H b/Exec/RegTests/EB_TaylorCouette/prob.H similarity index 100% rename from Exec/RegTests/taylorCouette/prob.H rename to Exec/RegTests/EB_TaylorCouette/prob.H diff --git a/Exec/RegTests/taylorCouette/prob.cpp b/Exec/RegTests/EB_TaylorCouette/prob.cpp similarity index 100% rename from Exec/RegTests/taylorCouette/prob.cpp rename to Exec/RegTests/EB_TaylorCouette/prob.cpp diff --git a/Exec/RegTests/taylorCouette/prob_parm.H b/Exec/RegTests/EB_TaylorCouette/prob_parm.H similarity index 100% rename from Exec/RegTests/taylorCouette/prob_parm.H rename to Exec/RegTests/EB_TaylorCouette/prob_parm.H diff --git a/Exec/RegTests/taylorCouette/inputs b/Exec/RegTests/EB_TaylorCouette/tc.inp similarity index 100% rename from Exec/RegTests/taylorCouette/inputs rename to Exec/RegTests/EB_TaylorCouette/tc.inp diff --git a/Exec/RegTests/Rotor4Blade/clean.sh b/Exec/RegTests/Rotor4Blade/clean.sh deleted file mode 100644 index 4a08fa157..000000000 --- a/Exec/RegTests/Rotor4Blade/clean.sh +++ /dev/null @@ -1 +0,0 @@ -rm -rf plt* resnorms.* Backtrace.* chk* core.* From c66c6fdb2ba8324b64eaac4bea3d28bae38d72ec Mon Sep 17 00:00:00 2001 From: Hariswaran Sitaraman Date: Thu, 26 Sep 2024 21:22:57 -0600 Subject: [PATCH 18/46] adding documentation --- Docs/sphinx/geometry/EB.rst | 89 ++++++++++++++++++++++++- Docs/sphinx/geometry/rotframetests.png | Bin 0 -> 1161376 bytes 2 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 Docs/sphinx/geometry/rotframetests.png diff --git a/Docs/sphinx/geometry/EB.rst b/Docs/sphinx/geometry/EB.rst index d7b3b43fc..ebe03c181 100644 --- a/Docs/sphinx/geometry/EB.rst +++ b/Docs/sphinx/geometry/EB.rst @@ -127,7 +127,7 @@ the end of each time step. The re-redistribution is performed every time the ref presented in `Pember et al. `_. A forthcoming paper will describe the methodology for this procedure when using state redistribution. -Date Structures and utility functions +Data Structures and utility functions ------------------------------------- Several structures exist to store geometry dependent information. These are populated on creation of a new AMRLevel and stored in the PeleC object so that they are available for computation. These facilitate accessing the EB data. The datatypes are: @@ -205,3 +205,90 @@ Problem specific inflow conditions on an EB It is possible for the user to define problem specific conditions on an EB surface. This is done by defining an ``problem_eb_state`` function and then including `pelec.eb_problem_state = 1` in the input file. An example of this is found in the ``EB-InflowBC`` case. .. warning:: This is a beta feature. Currently this will only affect the calculation of the hydrodynamic fluxes so this works best for advection dominated EB conditions. + +Rotational frames +------------------------------ + +.. warning:: PeleC has limited support for simulations using rotating frames using the single-reference-frame (SRF) + method and needs the MOL scheme when using this feature. + + +Single-reference-frame implementation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +PeleC currently supports a non-inertial frame based implementation +for rotating bodies, which are relevant for turbomachinery applications. +The source terms for momentum and energy equations +are applied in the non-inertial reference frame for cylindrically symmetric +embedded boundaries. The total energy in the non-inertial frame is +modified with the inclusion of rotatational kinetic energy: + +.. math:: + E = e + \frac{u^2+v^2+w^2}{2} - \frac{\omega^2 r^2}{2} + +where E is the total specific energy, e is specific internal energy, +u,v,w are the velocity components, :math:`\omega` is the angular velocity, and +r is the distance from the rotational axis. +The momentum equation includes additional source terms for +Coriolis, centrifugal, and rotational acceleration: + +.. math:: + + \frac{\partial}{\partial t} (\rho \mathbf{v})+ \mathbf{\nabla} \cdot (\rho V V)=-\mathbf{\nabla}P + \mathbf{\nabla} \cdot \bar{\bar{\tau}} + -\rho (2 \mathbf{\omega} \times \mathbf{V} + \mathbf{\omega} \times (\mathbf{\omega} \times r) + \dot{\mathbf{\omega}} \times r) + +For further details, refer to Appendix A.3 +*Navier-Stokes Equations in Rotating Frame of Reference* +in textbook *Computational fluid dynamics: principles and applications* by J. Blazek. + +Single-reference-frame usage +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Most often in turbomachinery applications, there is rotor and +a stator, which will be represented in PeleC as embedded boundaries. +The rotor will most often include blades and other components that are +not rotational symmetric like a cylindrical stator surface. This capability +will solve the governing equations in the non inertial frame where the +rotor boundary would then be a no-slip wall while the stator, which is rotationally +symmetric, will be a slip wall. Therefore, the user in this case +has to differentiate where the stator is using ``pelec.rf_rad`` parameter that +says anything beyond this radius will be a stator. +The rotational frame capability can be turned on by using these inputs: + +:: + + pelec.do_rf=1 #turn on rotational frames + pelec.rf_omega=500.0 #rotational speed (rad/s) + pelec.rf_axis=2 #axis of rotation (0-x,1-y,2-z) + pelec.rf_axis_x=0.0 #x location of axis + pelec.rf_axis_y=0.0 #y location of axis + pelec.rf_axis_z=0.0 #z location of axis + pelec.rf_rad=20.0 #non-zero EB velocity beyond this radius + pelec.do_mol = 1 #rotational frames only implemented with MOL + +The velocities in the plot files will be in the rotating frame. +But, one can turn on ``amr.derive_plot_vars`` to add new variables +that transform velocity back to inertial frame. These variable names +include ``x_velocity_if``, ``y_velocity_if`` , ``z_velocity_if`` and +``magvel_if``. + +Some example test cases +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +We have tested this SRF implementation using a Taylor-Couette example (see ``Exec/EB_TaylorCouette``) +for which we obtain solutions matching the analytic solution as shown in +Figure :ref:`rotational-frame-verification ` (a). + +We have also done a comparison with the incompressible SRF solver in OpenFOAM for a +4 bladed rotor case (see ``Exec/EB_Rotor4Blade``). +The solutions agree reasonably well, as shown in Figure :ref:`rotational-frame-verification ` (b) +with minor differences due to the compressible formulation in PeleC. + +.. _rotframe: + +.. figure:: rotframetests.png + :alt: EB Cell + :width: 400 + + \(a) solution to Taylor-Couette flow compared to analytic solution and (b) + comparison of velocity magntiude for a 4 blade rotor case with incompressible + SRF solver from OpenFOAM. diff --git a/Docs/sphinx/geometry/rotframetests.png b/Docs/sphinx/geometry/rotframetests.png new file mode 100644 index 0000000000000000000000000000000000000000..fd49348a304b78d914e81a7c8844fb79dd254817 GIT binary patch literal 1161376 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�poc%x^WqowhdiFR6Pg^|Z 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%0A?b_gYrsb>Cc?TmbNW z#CG#rU-FT_S$Q{-wlVlwl@n_ix!HEJMVd_oXJq7=c9aqD6P-(|X-mV*x8DX((KZw9 zOLVE@U*~3)Ik6!p@LV$y2%qz0@i&LcnEDaDEX+JHJP{Xk;jAOUxD8oe@KA1^YY|ZKZBXgmL zu=R{`EnrkGqLiS4DSPLZc$6(DWq_BM(6JNHZqS>kPr=PB4IW~PUxaR8#4iH#n=pBZ zS}SE*{TM8q%L(5?ZW+K?_@YuhreTca0~q5>@_m0r12r8QHw4C-#WT}(11Y)KX4;lj zaF@X%IYARUljAIkLK)vDGeQqTWjbAKka|vO`~U>e{7$1|Q38s?izwzT;zqQ-qJcPV z(q1c<7MD5AXb*0v%}`y@lbu2l|H11AV(jZ)&ph&gc3L@fZ5W z*Yz8>1%K%I99!4(ZLgpI;urqD*9+R&AUYv zufF!$bWID0SFT*1KKS5+>G$vbZhG%`znebPTXi?IJ>r9F*QcX;u<>JUgUF)U*)u1n z6WZy61+Wu(c=Y(Oqth|Zza`mDvvwK4?7Ow$A=Rn3K;&BDpZNzQ%Bu`+wzHMOd45v> zM2p5{f<=t5&H=ps(%(8$sF7++H>Y6yW2S9)!bno9(Cj0^FrB(x2-oe#)e^zw1&Hwj z^h%o7ASKCQKe$p*f>LIeE_lPaU*RLkQ=x+;A32V|3Kw4?w{$eJjIeI(CU4oIn{@|X zQcHf>XMTa^5FJ(I8M-ymsVVFQZ*r-ri0IQB(2P8XMH6*dc|kCk?(6wb3L{- zy{!kpA8M?F3`mfckX&VksPPoyaiM8DeiEL?$=u z5#!qH*Y9b-bweErKN#{9l5RE{pt&QI2w(OVQF4g*Es1;5V*;e+r`IE0u`|PI=|l@S zGr|>DP;0@Y&B6k+k!cC$W^x|3x>aDRSg0rC=w8R$ymAx9?2D31kAYU4IOA%mc9# zO|mskeMaAWRwV^qmblIrm<1IqX`MZJkpzTzz!hoOoOYN&TUJH5hKxvzkU5`po)l!@ zoa>E2-$T9Ol_v(Z2RzrJbQ0gy8%Q^Fv%jXN)p+9NtR_Skwe`gh_2l0VfAogl{(3>? z>4Ux!?X4NCBKEa!1(FRuFQ>=5Z=romDn57&(IMz3;XjCmVy%jT>o;{lP=Tr-7^D+z z_^7r*JgWt;v(KM%{<0=byk&Pue!p?+j`2s2pO~IGslJi@^pU~gMK1}_e&z^t)2M{o zGu7+s18w6WW`t<6#XQM_eq>l4ZAodM?l8${(T zsQ65yblXgRw#%9ML{aP}TiDhR53*+JN`Pw8fpP$?IYd9VwVCli>VX%Ufv%FVEN9or znrh&$QkYbfs$-IrIsF=SLiu$fHdghoKJp%0H{ZCc^$(@@Id;m+{e;)-sc-QTKwX;e^2)=I>EV%BSEi8oZc~MWtsE!eX{!2mfLqY z@`eeYFejqiKv5tERH0|NfJz5(4g!)05O&$*O4>O1YRMU5}0OaCw|JA251 zY}awk{j#tHo}=fUYA20%EJG?!nW6LCkTDlN;Lx~;@uA-Y!@`0)&pfhWMnO-4Lnj#( zh|bB@+%IJ_ZJ$hE-s*Iiivj`Q0T!Jxq$@vy!L{?o*gP9J!{j~Dxvg1`geeY8*HFvQ z_4Lr`EO6yV{3Y$Ty)DT`}z440Q>Oc zPxNr~N+#*KAz*D=0~}-p zBT5+v<2V^nF|=qRKr0+u`J1NbR))~8n7HD)8Fl>%=i20`E7X zj(I6BNBJGJ^XQ7gE-7>kvn4@0*(ZvTwvX{kFsWrPuvN-@k=|mF(CHN|@Itgc_n!^i zB>qZyDZq~_1CqgQt9C{Gi7;>{!vj{NTf@G(OY-%0D23DjP^fTxg=3G%S(}j~BDD@YR!&XY}FM zmg(3FTw>~p4RNJ&b7tZrdy&Oh#`bU{%i+Ntcy4Hh#YU6a7=bJ9QewCM9g3|oKy~0h zpO6WP6D33vNMRXN#;Fi20Wyv`f?k{h%t>UxUospGT(i!?&vd5INe#mTFUq@9^ejkwda(+Dfz7^-w&#?C-|L$B&;mrk8*uS2FJD4ToF$A%kyFJ=6l% z3$MH~{a8-|{^X}W^|lVrX|ZO0WxUWRS9)BpVa|MZ8HwIl3wOIryY@rR_f z_q6JXWtV5XV5LD=+347Vc(qkupfmubYjKQgNnBX$g-;f~Jm@!-;It$EcmN+rxTOgL zm2xp`sM?2N0#~78KXmjSgq)oeEHZ=@y)im9MQo~E$rD3Zb#CAITArax!gi4@n_^q+ z@BkJZWtSjJRc!H;wS-4DmZa>SP*OPYxlDk=gf!`*25Le?MfN1BzpaKQ+2eAHFYJG^Ug=y00p>xu6_54cs{Ob-K_gWg**`(Nz|?PKw4L zB)~f=!1t6hJZ=k+0HaU!+mgKbb$_~c?WT?!+QRucZ)Zxm@(-_$mP@t+uraS}lR>he zwh%(F3p)?&Jh1b?x8#BOMfXxz}N>MeVDM^EVy5C%T+($Z~E&bZJq zhxG8vY)TuSpQL%H@{u2`#F&<&c4P)abTXqeU01PRGK8W8ikzTWPLrP#DJx|QF-#B= zH(lZ2bBHgX>pB1ox%~t`hw~DpWae_F5S<5_rty5u4aXNu_{^_7V|C%oAL*8ZEar5% z$n>C`<_hfIv3FmKUbnL7@`b)V^`&<4xTJ0Qu4>G}Vi?;u^Bo)LPo6ra?bu(Q{>y*) zuhTDo`H$M_@DL41k{~=9v+SncJky&eHP$#e+mHK-rl>ThrPel1C84DP!E#6|KW$zr=NeOMXqP2XV2(+ zYWn{3OE0o`rf+CpI5#~f*eShTcSJjWq+Mtthz38Th^E%a+yM;Nnd+XvJW%Z*_Rt@N z*5z;-TCPJ$hNVP-%0U7_72L687Bj+;XEMud;_^euiXik2B1hRqU@5W+(GinWmkpxy zE>&2HD3AzYg`ReA;-(Xr-Rg=CAH{cy39{W=KYARG=Ge&n#=o7IC@?o@`ZVeB^(sB_ zw>&OldOL!3D7L!{F%-<4GwGZS--0Yk^l*qcJ}LPoRJt!1o=r1 zw+!p_X~fQ5X%oj9RLi<<8wc3Z1}@i-cx2$%WFjwT%GfLb9=F5>6~Q<0xY6+{mjNJmc+%ak9&s3H`?Zd1#I4If2iva{#lOvkh!9ua|Hy8 zjq`62ZTP;pZ7)QOOD1OR^@fsf5UL-RO6CKe4OTPJXGt#-_mrN`x5~Y+@reKt<1JF4Sz5UQw#Vdlq zU8aSrh-WDSbJ5GmZVM(UIwBuSow>rGg-s{lFS`;AY@Q)zCJaqYep-eHz4N38ni6Vy z4GK*kUIuSHNn(PeLavNOorI*@Sfsx`kvP-`koix_cNL(^iMi zKBui4j?3u9*C_4Mq5Yc-TdM7wRR0)VTow zp}tFNFBadB2JH)!1aLUyKVVFr{3e)zq4PaKwCej%2Ul(rC=(~wjR2XHQWs2Av09XK z9l#ZT;jZ9GZ4bfZ98Oyp0WPy}L14L(2g};7p`fspFPv1iq zlt*U2kJ8r?a9P)@sS4dxDKB<<$#N95k&ag~p%Y4evuvoicR664WEpY9Klom~dR<#M z-|$m`j~<-?8&``a^=_7plZ}q^HZV)JbrMJKg4?Bb9@u$c=Yem@1MZr*W9dODeF&a6 zVDIUTuLo=k+ufE;Q>MEvBe;L2e}uPDODTXfG%;PRL&udR0+$2i7J{Pfv5t8Tr3*vL zE%q%Dx~ib1Huq?Oxwn_mEvI7yZMAX+A~Tr=ZN|ueWT6a)br{(aDg$|$8quBUII>20 z3ujW;;8BATbK12}E#`2=bI-&w=6#HnsB_ml(uEu5gQn5AHj7!%>Stu~T0CX$=W&wa z%mbm*K|lr{-LxK^O9yjBv^cb0s}I!UKLE`@GQW_*0qHt&dgi2b3Sse3XKtm)ta=U6 z#yO6$e}ZXe5$o_u1DMKNR?@bm=W9)?*gv)tTdFK+SkD0pZm(+&=Wls|tMuO9?dc1> z)%E!o+S>5a<>|7^IYkCm!wO3wNlhO8)s-LuvEPyd4X5q%ok(1k#>YR(5 z%Ytc!gYv@n_q{;)+7yl^X8H&js;J~OzvC`3ID+&aQl~94LW{>yr(2Fhd3+D$04p$U z&T|0No6bhtc$bMn*fe4aPMpKt4>?&n9`H^C0zRp z+C0JP7ZSA>7QXJ>)mZ1gnvdi_GY7Yo5g?2StWB9wN5f|BEr|_TTPSv*uipc^#jmg5 zr++gN$4i_-JFgRcTK5H4u3Vcw`Q&r`V02ga>vX>1(@jN$zU(2UL$M6f{&)V+lla`p zS=phKD!QFYW<9&{)P=wehH;Zg2nt0v)l$2oENLl(~%Fa6J7)he-^of z_oNw^(q8y#9zZRtV(^9qXW15y5+|(2Ndt1iR+~|=p>{$_5vs?W-554#X2&ja7)&6V zHZj+_@>z6P_ZTO*`ZML~lP^+kt2!$}95$f_Gi))}@#;Y&k z(wRF9aFmtnNCl)X@{^ZV5H0bNSVYzjKRi0h#0fcE8;c5P^7uBo3jvTtOX|unhzPMQ z-b*@AY=~}?+5T1%Osu73YdUh+4;35$Nn^w(HWj?oN0OH zjnVeyTK|5@4WXaSwbbQm3=$T7V3!;;PZzm z9HnvXUn6E5RO`^XItJT3Ysy`2=YgFEb{_b~JiwTx?xox+^&76gclh7|<4o>E+-sKp z9H;{*1-|3UR&CrnJwA3C3@{D|O9x>0d+PgY3}uM2^uJ@+$i_wyAae{@w(g5ZZ0KRh z(KbcKrmUum1f=#IIAycxgZMTDX`NotP)55@K8woo^&q5@v;UljSS3@G)XY9(Nn{KK z5mW@c0i2XV@snJFG0LWFaCR++i*crod3ecCEZHM^$^UqB;fBcTNKzvr;0L!+CN7Npyho&OoY1gy| z=Kj=4T83@VrQ!>ehT}ycG5LA`%WpPf@cd9&(p--Yl7TP<%kjzC1tvYrCIZ+X5U{T) zFx_5?7(kLbXP&qM%{UUF)LA^fZl%)Q3mDnB`rQNuOyV%T5;YGFU3g4DxgkXXCzqY_ zlLn_VGKLR+bg;V5M_g+A6OLyb^Xu2Ks}8t4?TF!#1*F=PFtInerCH z%nTs+#Ziy|xb+OIbAAg?>s<6=IH8FXb8g6HKZ!p$X1w`Zj^JBuUQ@TmKxd1^ z8~)S)I)XDDDpvK>M#dm`JZZ7-A@(w*BxtbEMmr|IhQXHsn&29E^#lbvZ}U}?nM{Cs zA|xHA&E%%}6UQdxpb`^i8P_U*q_nIl8@4!s5|L8qKWWP8i7ZFdU6(f>RQ5!N2q%N{ba4$q}z*XiR&*<<3gpw z+dy!gJEyY(vZU(~PsUZ&K-!sc4RnD7N-Ss)wkf$tl^w9g0ay_^O|m6!H7VE@0)rOo z$kM90Yal#}5u_8Al=3uwE>o0L#y`qnB;^*=*RiiLWr!gq^yJdKI?3luL~~uFoE8Ay zl@e(&OKIu^6h!pJ%Fk~eA>VLCm@*4Ws`E%Rf#Z_Df;lsvTpeL5-7{*)r-XAk7m~k1 zs*KqpIlciwe-{F~(Z1NvFw)20&1(;rfK5L1r>^2Xq?9r+WnTNuG3`Yi?4B0Cc$)f( z-ekY2kH`0f*iA3$C>;5x&vFfFK)i%8d9;y4Rxnqctvw|rXPw6UfI=fV?dMauD9bx zk7KWf9Txi`BM4Bq3TptlhHS>LQ6AgEJ%WtK08KeCLo@^^Oto2%fo7c)A@wncUgMLC z8qR$*RWO}f#X{MhVo?#4&sYXInL|>~9LjIX#x8iwM-m>!rI5=nj!Bas4s9i^J3I^C zxROiS!Td!7m;OC2Y`kMif`S0CwvsEVRc3==BP&@OkU2|Y&PXeRid;YNpxc4Aq47Io zQE$uUF{$v(p*=2tW_kc$(J-gGuW=~fo#K1Vj8FKEFkA2Oa3kLtK5<%$GOxU|9m>H_)Bel$U}{vfA*;#Z2Z$7|1f?0(FfCI!5^y59;!pV z^W|mjuJYOR`RkXpD0yN!^6Z)E7;Ql9gX_X?oank>nTBb-t3iA{!cDu8C1p_HZ5eW^ zjkUEiN(`jobD#}!EiSo2C@P|jYYf@*b!uWU>%T=>JSUEQp@1T8`tFy5sjIQtBt*6i z;+AJdGWbey3le0p4S32!7vN-Y*Mt$gWWH6$J9oE8xc!qvh5X})Z{B1T;iB5 zV*XtZMeDkuSc^TT#rgVQ3M^=ZBnF2Z7lM8^^lT%0`@uVPI9Quhtb@7UsaIu-fJ-yD&-tbJ0PM>*pdh4B^Oz-~e=hMm4 zr_?^U9Z<49Fm^M5OQ2XOT=L6#p;=%DrH}%Bq#Z={oq!)$tVVQP*3NCTJVpI%3A|-@ z;ljn~x#ympj;XF6J-k1C`r%zaHF#9--JcNtC~ZJnSI$q~N)^($q|~5w==!A%NT(Nr zM88@96A9+{|UeC*Nouq_XNDwg~ziXax|xBpBf$7Oi=J8l_Y7 zi`H%th$3eKMkauEgW=)_js^#(MTb6vDos?d#g^s^H@Sq8)iUR}&=uK^mb*rUV=-w1 z`?xHOZOh|m8-Fm*C~0oT)R|Z|`+8u6_DItM8RdjZXRBRfnkS-ip1GUUZCe>B(Q?hIqw1e(Eu=Bvq15e=rcfO(Lr5*jI zt{>Xj_D~}X#txeu6a5rN_n)vDMjuKVgnDhs?LHimIRNAzS_SUu+e3)J&VBY4Lhk>e zu~_Sc%xX47$EGz97y=j*wNY);KD`@dj-&uvj$uJm$+&|RpzYt11>^&9g>SNsn;p9{ zc4)}#|=G*b6H!afAZPqeyiw?=5|N4RsGpBCnvtw%+3<; zXpZ;Oci)|Urg`3v-grY>t)CqV%UoW2d#NP0ixhgO7dxj&mtqv)D@KU@&WD4HT%16v zsq878PU}I%Gq1fmy{?0B=kC4f!w>(g?>fIX{pNqXJpKOn7pC|B^rz{{rAyPTn>VLB zdpGq>wyV>h^~N63Ueb5Ko;!PXI;jUCkIj>m%uU?TxCTg|u-XjQl>==DoDHLGLnc_! zf_2*w0Foj|Y=NQ|Ep)3ub^w{T3DDX41q*M8-PJdpaglG3g%n-UxNjjXaC8hxo#Z5p z3kF4T=mPO~v3);6fCBSbZcmmp%yV7#_-65&5QOEZa2X}WwOpzCcL6mLtuV)>-K$(clfrc7NYgrOY275)_^?1 zV+ljHJAb<#*e!m2yZ--PYVSc(dXTXQ>44q+sso@iy1jQ#KN{WEkM5^)^Bu|OG`ExL zwBeiKe|ci=-~Mt@B_U-bv-n|Cc*;V5yFDCcRZX4G=;xw2w&J(}J&LkZA{!Y~jFo3ro=q z^P^cs1fDSS7Gd#qyXlEcWWj?K&}!l{FK{XCeB!(v#(#L9 zc7gp3q~;=bqGOd^_2cV;dTQSZ4MkJgqdE~E)mDhSfp=1q*JIkEb3jR zn#`WIEEdM@>stv_xt6yq_ox;vSwI8F-txTFwORn9p%yLe!`f|AU8A7OBHEvzSs?Q@ ztW4p-#conda618DJzX+g+Y8BKQ)z1w;l73#c?U=kc%CHSW0Be(`WAVGU{(QnPSSYM zf%UZ_IxilRHx^qFnuG4k^5{pAr|T;HoA7M2p??SrQ<+(0H8qeI*g0vsz z5UQzZU8MU8$+Zxh;@3_`>+Zbsz|I3Z4}4!dz$b(D^h3~{yZRo6wl4RrmQI;}AG&M# z)?58;fI_NQoYT7B=|1W1c%x7DEpmpH(8o9@Juc!U7aa<|7YzBwh}efl&Un9=`*)j! z{pd)sbl$?>96{Nvp*Urwkj=|IpEN{k-sSFM$1W_z+hvYJCBp2;LEfe;fu1zD&O8dV zn6ge7^nd;L|I>4}>)L_kUw`x4>7$Q6nqJqpzux`nPxKwI7pLQT z81)G4fH|G75tOMVsA6bSY7RDqHiI2pGqe=0r@T!`o)$=eukhkUj;{kyUBRSHS`AGlnHlI3f|h~Oy>V0gHKmbL2R)&(vEA)s8OymTS2+76O!QM0HIv16@fC7rguEBI#D>C5 zifhQI!YjjVjL(AH)m)GJ6Z!OgZec~gVYq1Y?+|$#_+9op<$>Me*LSKqzHi2)v)Htn zj)D$p@3wwyzol;r=|`gnBF&HV3w3u|>yCo1X|n@cc-*^`+U?p0T9WiehY@bU*X{8M zm{G76zeSvVu`Xly_MhP%!pd%Ng$K?J!1#2=GtMZ%e0Q&o8j;GI%`(JW&d+TC+;AWo zRig1k1lmfQuhPC*Yp~U@j{RdWJjQ{~pv-p=!TiIa8%gnM!ed$J6g+YjR~k`Wbm}H) zfC)~CC=GE~VftM5C{+T*dR`U}o8*lcx=8c&V~1 za1EDSeo$9FlOocYATbd$9V1`{gB(ipeFYZ20^{wkV;c7I#@9369^NNY)&9NUI8E>L@2$zo_y$J<~lf{o0R(LWj0hUjlB zi*@Z2lq&CmYpibH0rKS_ha09-DDeF=(L)j&an3WWi6s*`_Yubh0HQHEOw# zLLxDQiUJF0hFSNDstEQ)P)3r^I$6g)-qyBHzy{z+={DGuU2NWuTSG$GR|uY_EoYLr zP#UJf7>-%6l@c#d&e=h;k|s6i@nzvhB0W^CCjs^5?4Gs&7`c+yc8JEd z9I65%I1VL3(k|>gu=Bvq1K*4X+&3<&?%dN>U3VYoK}Pz!{;^(tmb)*V^xr+0@5Rp0 zD-v=JZS{6dY%KS`0briPPtf}ZLMsbx#yV?0q;A5wtuJhc=rtkoL{nr$eQyTiuuTLo z9kVaW1;sJwpG6A>(I{+8H|G#<$XxR_9Y&C*(1Gn^Gh%^us%tMbR#1F0S7fCPD;>h+ zA<4v<+ldYukA*6BzS7JUYre?5&-GRG5iP@&@Z1p=>)$Ar;9ZO=W^@7sfFLTPW6Z5E z)01D-0lXYd3BHa2w9pJl^TEqex{Yp{#;GNHE*Ecmv}hiU7Zv-uV9~4Qd;A#7BG;Ff zE>9nQ@~IwX{8HQ4-_m#lImfi4$5}tz_;-K*%juu~>DT_|*J$dP_Sgx(QD+nk)0|Hl zGjJDy^g8SVtkK(Yu#~)Q=A3iAy|7%?7g?*V3XN3!X+W*f@X z_kkHCn#}2Dh?D?CmtZrvg^eKa5U74t?`gkHhm54%0+{bV(svS{IqruJ{QC+jtSCx2 zH@8t=`SkTk`pPE!4KnT)zy1a*{p%_6w#yz^eiY&dqRW>jz22>xx86kHcUf*U^yle1 zoISu4IJUc=$jw71{SNMbo-{Paw%)Sc;Z4v^!&Ko z2R>_@WBnLhxcTic;Chmjn-VCWltyl315|({slW|rNFff3uo;8#4sLO(5|&)JpqgaX zSq#O_Ac^*wrvbS^=P2fm5YG?Z9M+3&d6`2$u+KcEgCsa&{rg(+5Anvsiw~edCV9oW zD|;|3Tf84Uc4?bKo)To+Lty&NV!EU44zFq3uIJBRnEvyB{;$*PKl+ik$7oZjst#$l zQK54gLVb`6p}mC-b09tDXT(z{z8)!0t@f)i*x0tX;_{{E`2u+nWhGq%d_=?T2d{s9K+&&S-CV_VRzm9|)HWv9f>sJ>CXW8$Y5q z{@gB*-{#Q#d~wl!6uj`|gz|#WWSB$1V1fYLO9*5!nC$Ckpfh>52QrRZ(FQJ7 z&A>7e%Oy+neDg-XGih8iP1>bYi_xO>bpcPe`GKvH2S?!>40#&ngT?MJI}hwUu=BuQ z;DNsN@w+>3d)>Ubr|-nxo$lOws3E)hL~p0fQ_||gbR1Ft$gOZ3@6fxYZ&NQVnmi8D z_vz|7MKRwSxPj*;ZqCP@xQoH-AIXZCbo3VdPPnDhw_ssr5i4R?Tnfd=<7T)mfQvrp=bRG~$W5`) zN|4N(Cz)r`F8Y28KgJkuT2Z_0lnTq_giK@?9zLbB@D-RK4#b@{!042veJtix=?q8q z?3l<}oh1}HWb;sAhoqMFWw`0U=+K<3`N#uxQJ_H%<4wh$0~!lVxTAtGUXfW{6TJE3 z9SVxi3(n%Xqle+HT)*LOeBHc#N6$E(&|HBxG9UV_uNPl@dHUg-Z)z8b*Y!;=4N|Z{ zf~|ie?Zp+(mYiq2(={3n8wZ+q%+ry<*y+L)4f2f;oa1q%vG1*ax$O<=zw8 zR3&9sS+G-dP~$cJeN=+1)hR)F*(--LIX1nsH=4k00*(%2x?zXJHec3YAZh=t>8)xF z+LA->lTmJA{wsj6g=4!v8oN@wVSZX&fV8<(Gxax?w3*PO8WnPWz_he`!B}>5Gl>8i z2!d#Jv}w{P(KXd}+jJI}_1oFQqv})jyPAGVVQQ}~+JTk?Iax(ZX$2^f5bn<3X%Flc zzrNGe^W8Jfor%rjvhM?cI;g(#1>U>;aQgi7TbeNGap@!av6dfYyKA76pwnr3*ekfh zQ+h#Fib#hCmR7V-H1F3H(*Z}%A`z8y`3l^0M$GmtJWknR>Mk?poeMS(Mpr`1hgDAa zBUTQjqpnb@3cJ8T2WQJxJjLqBqE>9mU?(ug87O#A0kB}i3?jJEJmSZ7ZX$*AV2C?J z9sahE254FA5}n{ZdC9_8^1!ma1-cOzeZ)zZO*YOXp);|IGoP?m+^c{;2*9aRWE$3f zZvs;taI#a25I*E2Du-95aH)iXF@91qzY2)YzYdJJftN`TvK7zUU(j&o2@{QoAM-;O zJIL!`1g#$<{JkdSANInR7QJri=`xVdYb&I*oklK|q_Q z)9l#rKR6L7)u+KSqC^eJ)|rMf|1q?KBfGK2`}eNsMhq2hsl()-qM(n*lo7$gzS)j?NzEns1}sO7k$b$V<-nWgzXau<}VA2-oH%FVccu8H*E&n zRuH>JB2Hxw?+6#f&Mge}slPjS9_T6EyLymdPainv+ZtV)U>7M3JwJL_-^y&1w-+wm!f4}`=`nTVGHhuB=6>a^h9|YYe%0|Ycm|EQ! zKcT1p+vwNmPu-`|_lkzGE|ey-1m*s+;PJ?Yh^Li2${5oYYlEx2UEq{LXd_E|r(L)W zi^wuIz%t2FlppW}E6PHd4jRj5oDpZ0rrdGDvz()ud|=$uEw5xdLKcC@1kN3BTFS6U z9ZA7w9OWt|hfKzyo&#$0>3&$tKiUW9haPMGHx(W_?BVBTZ}$ejjg)4wS+4MorDwZ6 zg}?@a3U9YTJcP)I|I48Rwvys$HrH1w3+s#kW-T_vCovXBWoa$3B!Ip?fN?N>bQ!CX zjOXHGd@6j#j@YR~^SoR7R@A4Te?DEkcHM7)u|3zb&zVN>=fCjc z*AcxvUImpU$-KPQ_1pS|~dw&b|3J*&Ni zw{###(2JB}X7p)d=KudNPciZILX?JjAx8rOAP6+j-p=~1wRcw5x#xD@1_5+~@8rEz znYn%LN?Tc{ir3%k-kIwH5)^2+tR2a^4XbwOI{Ava{?PXdNhFkQF_!uxxE7P{w`qsa zA%{TSawc`dq)L)Ars+)Fr#-+uAgF0;$THgXijT(*rpr!hmu3 ztpET(07*naRNG|;BK=iwZXe+ufKurEq#S?g7-TM3a%r=xdXui%=PE^sx(pp}3>*ZV z;F?o(Q9H4r-eiU!R1dPLh>Q+sLxv7+rVz@XfE-exOmxB6{fE)S1(`8ciD@Ls6}+bnrHPB?M|gC%(289&O_$Q^}u2C>&x}$U$r#) zpxrPgp*;{)JHDycbbau?evW_rw#MrG3Wbq~KE@=(%5-|jExZR0cSyoWHsYQJZk`_0h)=1=(6akJn-V> z^--p&_>m?n*#J{)mB>Lga`@+@BiMpLcr-wk$=-_dK&S%Z52TE;LIQx$z#{}f51MkS z>oDnYOfrzwaBi5B-o(OpUby}R*vi8qgv|)}G=cNR7c)DK(1$j80YwYF`21@xZqo9a zL%o_ykF2mTx~HFhox5;pdGAL*Uf$Efh;#>vT&^~#%}4HVHp$^6lO0aO1LdcYuf&ee zx~laefNR|SOFy;5B~Q>bRV8DC^3Aut?fP(9-vIl~zx=a4!g^cZ1iPT)v|eSdo`U+J z3+O&W8`8|}_yF)Dtp@x{B%$4&5G?qq-s}SI29wy^Gp(PPHs}?UA~wl@xqUPdcmX!B z$`>gV+W_%4^!P#CY1;+aTro)-bW}#e@#m0XpiW-pV6zVTCX$q$P@>|qmaCYuvjBpA zkjckvD1!5^w#u=LVcv1XT+wsXj5?k|2G@t4OtJ92(FJtSMwM`A6j*VAY;vcAt#bik zLH@pRV?#f&l{>d+$|8ux4uxgVmh!1{L)?itn|fGtBCeBB?^30FzGPCHr#)TyrBi?+ zr*83g`?j9Y{p{9q?b?myjW;f6^Xr^#!{U&}_DDUE*$1M72M!)Mc;NZ+Ky_&RBIMux z?fvDy{lmX5|M=@aEFXM$N5B3$r8f%XVJmt)_l@fC7&6^UGFMgFJ)t^Q# z(+XGV)5Ct5ZWvmhT4>6|s7lD#>NS_gfqmjaIhE9WE9KS}#&^p_-i%V(`Gyr;0d?(#y7%jTu+RcKM69=^XByM9YhLTM+)g!`2ri4 zljH%U8~`|NE(k!t#*WxG<0n|;PSRVBFuV)!R~~nHRrq5AIOx_|vR>aXxn9eM_>t@LEq!|6r$7C;@Qw%4*j zAcK=*(gYB@A+Yrv28!Kf24}lM6akPquY`RB13>bP3#rMPwrm*eA$ji4qaGYeB;#zfL_PDeauSm$x4$77G5hN4;(hXzFdF)RZE-ul@wH+1q+?g znqe@bs8V|CXs%oAeszJq1e;-M@K}@0X}gjqt8T1PUk(+-1#)zo#s*FCkgwL zXv;pukaU!gf!BXKD7gid(Y=E!4u4E$E4Q z+fbRp8V6{EDx32ZR=5FD-cziaNN_F83%{MAJRsrov|Vvlg!9Zp3=5~)xFT(s&(`h} zFsm!N&&h8J-MW=rviZrOrBF_P!@dnUik@YVX?OaKPDP7 zA49XEklK>rd^+w`&KFCyX1FJ}m9Vy@`?l3OTdk8Rii|qUHS|Jel!;$~Nn9&ZY+k&p zUw~6gb&Zr)o*021=W{n%L^iWBBF)Owu z$W(n(+vD0X(KndQGB2$#4|&B46ZCy- zsUMRw4|;RVlxVhGTSU%~vTLS%inR4@>0M6X)({Od1Brd!UX(UFjW5A;K5t^~aP!<}`m&_8p zhx1w&+Aq+cNimvRd;2s!`I-}FiAFlFxIsr&y-fNUY|%V`9o;Q zY){x1(6PQG~v`X^&^V4TF_tZS(?%g}uB>7Bpkz3}we1(VP z-qafJ-Q_#q{hr7TX6`&^$3`BcB|yX{vSX1%6OVPyC(ZPixSnX!1SiFB3G|(kk7b_= zh^Hct`enId_Z9cGZdrAL|^Pg{vkYX z9yn}%J#Sa!8)Hv*7#K{tj%xF_^b3WLKKiqM`E^U32D3TgA*oKNG60SZCU3T5sU(q( z6!}jG(7215NSm+YjR*$K9l4g#{2f=>l1WWG>G#(W^DIA+X zryk_W8@`pMJNV`yZZ_i}#c!Ai#xd!J2~c=q4&O8WSU}rQ{uIy@IB^h-MDc=K zVNQ`Zj9jG+BWsFM*EnUFNts+H7Bi;PgwuSo!g=6qfMsE0n!-b8n#zOgO|S4!5@={& z8lMie({PoLBGqh5GXuRMI$PXj`SPdB0K9C~&_`?9aW>a!ifuPnP` z>sO}d%M(0XJp5Naw}&}_aD6T6hLstH3dUnA2EN z9JYIqNQKG;uK6LO?W+&6a%^XE?Di*G<-HN;vLY9L{6c4ia^V$w(dK?g8Etxiq2thr?lq~zCpp8@ zd`-^?Xw?mvV-Yi!x87a;U0E~hnnrqS=y=7hGE=6`x9ln=C0?0EYKD=HeDjiZA~T1k zgrd_!%ud2I6OpCr#FWRO;&oPHic&9R%|!}YOxO_!d`vpH#<_7#USv!rrh_$~@mb^v zr#V)qHTUvOcjjQM1&h!1hB+0y*eQ5$8C{(&i$(+u8J%1-WGMkObGbnoc@k{82~2Xp z5H>P}u`#3-!1b{v3MK@!#&^16fE!$d<)KHlE#sOdu^-A5oNs^e4QJ--_wPT@1C4s9 zQJW*T^?>6Ut?yoc{f*_@-~I0Lwth|Y;>#~DX9aVxV~!+uQ8pJKp2EC>BUlxC*x0ie=Z0eBH}V&O=ooGuTF8)rN;cW9zgs(Ei=0gQ<0B1kyifT*6+8%36)}8?0KJ zvDRgM8=nX$!t_nhLzKfF#3l}RIfW}fc#WWRsfo3a?1bVn)HVsg^%|rj5zUbpp!-0W zoNdC!VH#=4QrslzhXpQjlXPaXtwehvg;58=7= zz+v<2xx6gj1f#0eZ#oRwO{bzB;*KV0pM1*GNxDJg8}8k)KvNwMoeBL#*fxcx!`yV5 zsGCGIaR!6VsmtP~Z^>MtQ)IYyuiI_&34ujr

U1=J>gd-9Kc#uC(WabWHA}wsWEQEljf-} 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 z z>j<+nYK@fQOh09R`_`s!fswP$exc*KK8dGKRtuPYtgaVq`Mjm5c!g%i=XCdoG=na8k^O$_uDY-+nj4nd%!Ywi9dwxD=1&47m;nS z)3JyH=A3Y(>_Svs!=`Op1`%a;tL#3S*!%>b53Bi2ZT?1+)b0~-OEQ-SX_#9}%go~w zw$f8BA=lgNC<;)V)Zj!1);#{XG1a}VCSE=sS^O#)?@yOOLQA*@DOZ@u@$?3%*y$$+ z1rC|om`MSNQp;+LRPRxo<17rGipOT7p{`l&F(DulCQikN8|tl(Qj`aRk|#T&J0dzq zigEEydIHi>agEkioxbuX_tZCbft<2$aa0kJ`&awg^iLW3p*3Xz=~oUuv`8+bv-XR~ z0pI~_)#ZdYs9(O&ha2&O_#3C|Bp!e8PzbQL z_dON(;^U33p-Z{zzR&Vpl^g?jeGp@k?*(LUedSUE-b0;JbXJL`m(wz+&C{()o!BICeAvN5Ta+lG;~!<0$Y(-F3I?zZ z1|Zx)7-dNF0jC@e8&RxdystLc4hm(rScgl3YQfIHU2bs3YVW(_pe3?rF{?3RKN2a# zXvsD5DxY0@vE943=^I~Hx0^T0oe6fXPnApF1E+^ymwbT#9GmAwu2#C+`r8_BKYy}4 zfBw<-&p-co`{I|MY%jjhO%t0gHo#si1ui_*yva_>O1Nv}>sPVZPlLXgm~GI7V_>N& zv6%Wg=UTwN2$bFzbd{~q37uuaH+7h&jx~9qOLM`OK`yAA@z2&mQ4A6+*_1>UlOVYU zc7i~6naNtG4F58ze_*Jb*jEuLuX{(D4wwRkVcm(kQDgUuS0#N_e zNGL6~tSWBH*2GU1d+@zDWbSWH~5ac5k$`>T#TeqvU@N4H| zzN8Zm?7O|I7@2(cgc#$~@s!Semz&8nPM9Pb z2NHYmeZYlX19hwGDth=!=T8Lk;H!W75d7Cnt4X&pP!QjdJt&>7~4&SeMITnjfirTC{CRWF(OtmPD3 zXU&g>UjHh|qff->x1^eaqf`9 z)4+P2NC7)%3|jL%#;61KT0vr+N50qgSrI)X!kNrJp=}ce``@ zroW}YXeEV_sc=fC9ys;DsRzC*J<#j)uDz^-W08#}YqH){lJ17yOuBb>(5 z%lvxtS!W$w?{ux?0SIQC*kAhF{}E)bfT9oN`-K-@;F7qO2@O1~C9e#5Lt8ZLr{WN{ z`WV+6``FXt)3&q*)IZVD+w;>4ZFk>EQZ!J7;MDr^pnhfUazyD>P z>K~h1pt*xRG`im~V=I+Aq!`*y7oAJl5n|%lea}KWRA-txm4hCefQ1o&GFXyf;T*DP zzUJ8uzPgS5$Hwz$ShkGzB*+eR#0>-?N6$a79ImscWkgyAFyo>^aNRG?MQD3vDyILr z$HNh0T=v{w>F}?5aDU~1ApE)s-hIMDODWH!(YD|EK&8sQXX>2xVyN6&)j0`=8RB+DqK{1v6s_T0!%WR8{ zVk&HNlS^p-F2hUxHAm}54rk-LBcO426*pzLr5`?3sveb+gieyObG`>e*RnP5a)@-6 zV8|*M*GFIj$$NkJ-Ay4?91AGyimNeZ0W&z8u7H@#VwBW%VCyv?(&OhcCgZx=#{i#i z#(94u@X?Z(n;T+BV%d&P!Lcssb2$1*`%U+GI__wd5~#v*JKT`&m{dl1r^4mxfz!jU z%Qc>V#;su~%A&_b&+Ch_+ggdO$}yw2OeY{Z zwMZH#-&o0T*cy{XItcevq07dkD*M5NsNFY(lLMNN&~$OIYXI{?;RjffB%0z>0Br5* zw)9+_jTW6a`K%s{Yz|}Z209RKXb6J;!~~L5xf`k~n@2823eY#iaH-UrB|5}^E6N>N z_M*re{uMb~(0Wfg+XvbWC!=hbPBkc)M6OcVny0|Y5`7^@2Hh?dEi&ec$8!hx>Xk#= z!+Mw;or|<1{Y%@cRj4VZh03H+T*j%~Khk9G>GeRJpXDf{r>KFX# z;n#TJrMl;+=BbhNU8o#)%V>k|gOs}$iCzEwYC`9_bOE^@ThrvU*p9YiM=JYW8UEJe ztjlE*v!!y#W3r1+S@WQsZT6VUq;RW>jY!vT~Lk1JA5*6l|l4lb|9bR)> zW?re_gPWe{WfWQ4!s|InE*s>-h8uk9tac?I57COydX@XZS7E{1mb?xJfsgg@O1f|v zOPlIYA!99!Uno&@mpU$Nygo+9S_vbmdF;fLGZJGVUS#F{*vV|$%#w6&9_L8BEkwrx9&ZQHh;#*MAUwr$%s zS8T30dApxu@An_v_m_FhYmRe_!Qp6-K=9g=5qXmI?;`l$V|X7Q(;C#uXaRoFv~X#L zu%u{u#rj}f=LP2G+Tr}v&adlh{Pt{Yr`pPV>Q&*3ze4fRM2Wtl189w%dmX=o;AW^R z7FGM4^#A<1vS)K?=dUPKjdH}_{@d9W>?D*e`qr0@3?OcZSC~6EHfETDL?1JhTB#x~ zp)~EUpYhGQ9WyYVGbFS^)9C7{NOVvgf}E>?ILSh zP@7YjuOy7j--QB(w^W&DRFgd+3v*PmNqc9=DljI;-C?$!=W_XBC2`Rrz4JV!p~e?_ z38Sl_E?*z5Kbz|QNhbEM%0+T)Q^#?lKHU0u_?&$2?FSI=m+Uh%XB@>BO=C1_YGfbr z2j{QLDMCrN=&${bi789(h5E|k|=l5m&%MY|H;uyTBa()|i!OP%k5|H1|m=+Ygxj;D(# zpj(zP(np4n7)8x!%}mYfe#N``?vC3fSMcgFP-nC|wKyLRS1Utw_{EubyJC7yG3)bg z42An;6%6nu_O_<1g%a{HETTSN{St(7$c}0NO9y1_9`5o7DzDVlI33||5+3ZjkW}Zp z4v;&u;v%gJraNsIM#8J=;Zzdr&B&sfK7o7LCCu{3V@;1HC{sK-%tF#@|B)NPM17TT zD|cS3ayKyz!?L`A-`H=WYp}cPME(C;I zZ^MaTRH7Y?dkdZhf|q&44%p#T0URA63l@+raG*>#LUfn(DBkyl+1nDFwfeq=j-Z7$ z=DnxYdxYgE?=3?7r%E4Qf!Bms<*UmrFFH>cEUQ!(nz#Gu_57QcuJpPj)#SQ@v(zdoAWP#wMGTjb-YN!?dWTy)%#{R-gv`B8krxc0RAnmL~ zitK|JVb~E3FYbBL%##L8Y$eW?pLL!|B=*oLnpkVU6orZ$lB)(DpZt(vn5_;2` zLPYxWR? z`%@MKo-rTE`Lltqyp3ezcqE=CgV)LZs+G6ynK)Etc+$(Ny^#TrgFL2h%(P26^$o6u zzWU2L3qB4A_{+b1!_v!+W;h zzNl$1c?e8`6Y-H6h7=8dj1@?Df4;T#eLLR+U3tege?7^6wST+)YMLf)W0CFhDbCZQ}-umFZ0_}c?|CO z#7uuj$NA;$g9RpDMn#wUq}$bs8&@??%1B-l^_(9LNGl4f*f@q`(}G(Y44naAHD8({ z2{7Gt{2pH)p-F~@gCzApCrzLY)~M9v`UkD<*+SrBcI-oONw)&Z?sbS9h?=eqhWLgj zgEoTC05SwFF330C*4);2@znWz=Z5#W2lD6sLIKV=s)NzX7fiNvA!#05BQ3=o%wXZ%=v#%pfcwwcBCDJ3`KTCQSXCm!<+Pho*zTD4fJ7xSk3x2R<|bm`=dp zh})lTyrkCu#9orRpgkxKK=0k`Sl_z!I$8#b4-g)m;~Hi_dTaL(HPDJEYY2gWLlStz zLnkjF^iO%Q^MhmHa;7)d#MGjGsjb2h98ngsgP+2f7g>cm;J?90hAVo)CD;eUKH|jY zVAP%EM6113W|4*`G0t&5jH>Z?J1TY#!p0gPVlLK;3;IXQ3tf8Mn|?Bh!rQWZg5fzGO7jA5DZ!bd)j!{|>;IQ`Os$3PggR?K=v*K9J8sG-X>G(X zhN8FB^zio+w8B?a5sSaIJiy@Fq2^7s@w9FOylBu=yswdL?ZiBB?ffvg#FN{2`L&HZ zj$v_40d{SiYS4!l*LLO$E+(~oAJ?JeI}1+iEcLKWlcakPSx^Ln!>B(()*^YTTTHdp zw@awp)vScBLGB2``5jj{VnNXHr;z$b+8cj$WRW{hFWDcBRy0!_)y$s+h^82b28+__ z{JN-6j-n>r7Zu~hFgKy;J*Nzs-H!QfLEDmETE_f7Wmej-Nv?zOHXT)Wu#4^eZ0Pjk zQqybDi25QGE(Yhm+r40feQ@n-ad^^8In4rrbg)NjbF6~}2CFAdA;`)POUvUY!MEJC zQJ{aqFl@44_RmZ)HFRKz8pBrI3Vj_?uq*n<0HPYJnsYB zvLD#cV|&K$3jf~8$8$}3Q_vwU+I$|=4#gSPf=H>=lHz;48vp&=Ji@@rFQ&SL(8ppO zicsNH?CcJoWic#d?kj{KQKYw+(7g>Zu9UZ26%!b{UZeDzKGF2bVC7x}b4!@ZXn&WH zp_$5@zWlaY56Us&{Z%j{fpy8q~{Vq!IC5TNEmV%jH4RtFW1xmtuuxrFtc>IoW4 zy{$ITEXJ5P3wvtEe0s-14G)W-6U{!AwnS-6=g4~O??Mb?<$R8ryLzMN2`% zq>(?1E}u#(Ue8YHKKS1o%-vhAyS`lBdi=lUKok1DZ6EIiGfiKk+7Ws2Okb|ghT*Wr zEG><8wB6e#qv|hP#%&%U0A&}w1ZTA4b+s}Ky`aC;dzeHqQf;2;u7jhUYYY7wnXP0+ z_~PgYT=7Wy?KByX@UXj>${=|NAtK#0BXd8wta0>;;gGHw1exjOxJaRbUoXE>yu+J! zp+%Zef)AJibk&i+CNqptmI(j@EIExeoOlw%lHYBExVYW-cfArkbFf#q&W8Oih^q7xgOaMgB?=BK?Lj3pMF!6=<6O z`ml%l6ealiun+z%lN6kfrrYJ2C>(po$6M%7kLh8(Kq@{$#K%MuNsFULT8D6i- zUZJ@mWnEriR69+1`HfW1NDN(=AG)#o061;RxUI=pi=UDM@ALlC$z@JPgJY1`L5!Z` zwr9A|Ph%_D5Y_IM=Z^sWgD~LmLVA!sA<{us{dHh|1|Kv-Wu^508RS03^So6 zkK}R5zx;>KoCRD<0Tz{J$YS%==MswGS_36Zly$3I!@J8l((O*KDfo9jLH7Q+92tIH z9|HpKW^XJ0FB<+6n!|Cb{V@k@Yv-(JoUWHa$~T(=X#T*FrXT|pg=%l3zlE4wdCoZF zAB@M?(OjIz-0|w;O>}`ba5H*Qt3Gr@^KK|48}LylJ_LoEF&3748{y6-+`XIw6sCE} zFZ}Z%m;uGvlBGgl^R7_3@O>wH0IhkV_&S-*N5l(K3kI3U*Vds>3Lp5BQM` zqKOve%#sB>T`6D+Jjrp>lXg3w66SrC@vI4X>t&#SVEBEhHrKw%}5kNBy* zI3zQvITQbgjlTLJ!(uZ~?~+(skM(ZK16C)t9^SGYp6-9V;JM}*zKM_rEA8A*p~>CE zJOtJ)loysi+W90c>NQgY`-hL!odK`wO`={Rf`IHP&|zZrUr|9tC;Phnj=E#4>XT?t zS7!CE=Fu0FcWQB;IPPuLi|1W4{98tA+)a1ba79Pgtr`W@cWcsd2t_?kfjA+1aqbNT zS2(G^;|{wkW!un97$TqY(Ju-_X)K^(JHKNCF0=KO;?9wsN~mPpF535o z@2kGvFtMA@9RQW;x~~Y{(V2+W>C05}@v4M49KG^Kb&Ul}<^^omwLMD;*nT_I*R|dY z0nczx;{3h4J4YDW`z_33c+M0FH&b_*JTQSwO!zfeVBEX3{B@-+S4{tL5G8O_8l%Fw zwK+26RkQ5!X5)u!_1d%8-`w?W_HKRQwc7yYdP=7rL8e0kzs3G(dHS7Md#0Tpf9WTW zrxt>*leK>ocvlObuM-2VC=kZ<0@-P(B!CNzUjIK5yqoC**!YL-*ua;Q7{ww!u*56w z`En^N_UfbrkYjh}>VMthWJk(nC8Ayh`9I5xs z-R^ZDsu~o^2;)JKm^6x7_d^0VHKg@Sj|SnC45d{4-a7l~#zWBT-9gC6IKHFzPG8 zZQgSM9}NfNscwinno#B6m!RpEw!WJ{nC7{RLW0Bw<<3;(QXLye5Jb>f7lI$M) zaQ^DU2tR6Uk8;I>D0}pX4`L2oQ=-AIKL_Q6{6KLaCj|<6dG2J%WX%#-z~!AK{|#g< zo-+Wef4+>jxoh<8^Fi^g9Fn)Q&q>vN%{kXMDGt7k zDmitvemF5vN4>2ETz3TK&-r9kIgWT6psmbl$09kezS-L53>aE&zYL`gOq$^8yRhja-t&w#~ZzbV3D{t>5my?NL##bnnUMN4Z?blYx~L0(U<0kKu) zP~`S0v%#Pu=g|im4O&MTVAV0!EIOX>%gVyI9!QjS_&gRXnrsTq_CCHG+35K?2R!a& zylt>uhJO4d2gSE{@$AiJ!~QR@{m*$2rK%7zVEwOb9P#$%eEKqDBaDD|<;<&@&+A>= z7xjXmCD!j#*|zMVC3D6usSDk#^&xiAT%%Qui=m7mrk%BB%=;Y^a)zya-p~gW#4|!~ zXMC&7y!J8;*)3_@e1!clOlp-IqbfB>{s5KvyimOD26zhu7s$cQHKycPmu6M}2B$wp zh&H>4D7dtzaX~f!7^-IHfBQKmJ;#Jt2}?&(icfPdX|Aub>8)|e6u$af(nMpwIPF(_ zmIx5kOYQ;WhlqkajDy`39TxTW8Aaie0y$ljQxnb0w|keEZs64&pj7AEc}$Fg!+R$4 zh0ju9L2$KK7nGXxP~)uhkH?N75*D0+C-yOA#6V{m>#mdOnjr#7+f==fNK4Cl&u=Kp z|1h$>{%gNlTB0mV&2zf0qbsdjY#C+lQ8?S4eo~7{G-8ak5f7xaOunOoQ+gE+4v)! zdG8VY9EZcsPClD=e#gbn|1G1(&-`t#$GelyGc!zI(EGJ*<^Vi`sL)3$wf;XK@v!zY z9(yRi(Z=MA*<%-1VY!eW@LN5-()Q_UYkk{KTY&Fjy5Mr|>t$uV@*p9(1uAHQ3_`fZ zN$=R}mU=E`8=wP2WT?^^2^8y~3rT$445A-(4Vb`*q8&6C05)87#q~osmafx{-~JnC zDcdX8;Qg&G`=ewut_ROdi-^{V>&#$EG2LJ%oPpYvBVC1-p{e*?%#9@;7qb0P-_6S< z`S7u=oa5`p%&`4+N|!x4HE(5M?Rnkii-#~OHcL5Slh`jbRG`(KnCqt2G7!-!LJhwK zWy>aPD5n29CFKuEy8L5c2?G^QX0n%e@tl9=;gQe}0U| z$zSoCn1S}^2ab~8l|McVzuN8(OdSuRzdw=u2_Y~RZHb>Oz{QEFE>QniN=1oN7LDBm zOnUedl8u3LWObddK#}`WK=`s;EG09z#*X)i4IvLrrZh5L;`Xng{mI+vMqFthp0B~( zBt31F+GZZfy8V^ZSFrH2f+@~0XY#dK)Kr&hElRVH@B!MGly+C$shpueA0&9rnq+%E)O}X6y`YleEG) zQ5~DHlCWqKtqU>c(y((XI0&3zU*{u@jCFJ#5&>F>O*~RxUU2m+40iM!N&=u+-D^@0*K5tMHE4cxxeVggA_yRacJU(pl%5{@NoXmmb z$nu#5z3gBcv08;~Q02T7(rc6ztXLLsU)@?(I!|M@%!bzCz_^BeXl8EZEVCJ}Ek~dT z#aUBT;-FWSGzfGLy&>;+*L6Af!GrGYVaw*r1T7IfYmV{%9fYav&>GOk(D@z+K)%MptPcr@*p8@=iAE%%U{hrOwbN?3tEhl{&_3DtB3Jy`SYXRkl`7XbV zkrm$Mn|@ID#tQ!B)bjavq=R=Ie#;BoiROVR*T~+2Rw*$0M0c#K8)?o2I?mG@=#f@G zYldU%Qkl9VnYT$&Tqe{6rey-2p?U1*Y3OBsQj=|gr>0lBepLL!3;(W)HqOM;*OAahX_yX{#(XYdjjiqT14Va1KY_q9O zy(XJB`I!#1Np%(+2gA>s&ORORUCH)S%X)m3n)i~VBHq0qTMZD{^%aX7iV$;bBe|mo zen{FbZ!;0pqUAEpN3~6ECxAOiZ8xE$P|wGp<_*Nz9^D}NDp*z+@w&? zNPI~w2j$sCDIdz6i3^Cp4>H;`h?XDCOTQ0jKtFNYF(7g!Z6aalL_bk;pFgW(nI2%A z&JN6UP6)gWwE%|tSFHh@Z}K{LC`VTqS6^ovhR;^s4~6|Dvzss(6=2ilHUmp4x1OI@ zFzQbCA<53SDhq8RgsP7^Yu^|l2qaf3*z4=6<;EB>9V2L5xUC%>HEktKDC2Q)w}$&o z5q7(XFUE(-ZByOSombK6*n!>f^0!;oB1goaHv2P;*{8Ys?454^f+9!E%we8Pyu?Lf zj$j?g)UdB|lBoRJG6o}FP4!yE7M=dl5_ElukDABif-}!awi(AEu!22k?JxCV8Yj|0 zeix_wuJ|HBvaU?;?%hdqw*pX!!l2H921!IT+|l=0=9awutDAUN72OD0k^xHX8s!PT zPZ-}C3L3wu<0ZI{kGYNwZFz!!(y6|Uz)QtbOOMCbu$#JntV>ii?DL-<2~;-4?0M76 z|DO9l=v z1C37k-bm#rpOpqK751~d%lWhmc6~C}1`~tl$I*5qXQJ0$lidybm*5xyMz6@hYA{__h-( zkj+cVPC2V@0|VpN#eR6dl2V8V>?UAv_o)GCW31a3^qeLtWv4?pyO)9rJAJWAm~+;a zPJ*WWbKCVePsjxAhLt9hx#9p^IrS7c6g^(-IxSgddO5Q{56L8}!mNYfs(*+JQTcya z0Ig6Vg;%_XP{Hnvs;U){0C>kCQ=7>=Bdw~2AwK90g_mhLPIs@?%KY0wb5tkC(e$_P zPK)@6MD1VNh^eN(u}iU_bI#s@vSx3M-8a!ggLpAHHcFRK9ED`!=3T}GRK`itcW5m8 zU6fVa`)48qNMVR0eK^>9-X}y&!e5Cf70@s^KTcB?fBjLu<2Mr1bvw$-%x6mb2@s{& za2NHw#~bWeH|<{Yb|lr-;)HRu=c1sN!teMQoBeiVL5X1$%U6edjBRYJ#eP;>Xr%Wr zOjuFBB;Cf8lGBquODk6r1TPpCoFWv+mxB! zHChF69E2%-#X&cV5&Q4}%Qzihf-ZZ&pV4?ut{1I{TWB`yUokGH>O)4>QYe>Lc%)6MoA;37D_X;OKv94Q~m9FY7pID;l$ z(~*?KHEBnD&>rth=*8aY+0396@*uS83kPnqVqadYW~Cqe1+MNlHD71d3Ss;`G+Q z)@L6Q`G$6i5~mXyzD%gsL(>3Chf&1WbGYoVY(QGY|Nni z;4@((iNqAlNx1NbNKDCR(#CIZqwqX~>x6WDvwC;~;0{$O!bZ%Ey6EZ%WApSsMRN^2 zM&sfxsw$ZgDR*t%?KrfJ@_11|d{#g*Ot`2u;W0~CMJv`n|Q?Aa?KfeMhwE<>ZhbTUUz?r++d;v$5&>2`EO2 zZlx7OZ_6qjeZSa4P=|o5GBE#=-J+el;v;5~5lID6J|EBhq$!@5)EReqj4KmtbA7hJ zJ50CIS)5L%Hfv!}>jr2OL9&0fmnL=Q4Y^Ev5+k+(&u}eMDGAiu9HV4>;$&5&;yoO*VLeI;&QfEEpx#;`%1-NC%1G0~>$7wR1{R9S@=_S>ieE zyRp=sn6*OQLUc&G8nIaW7$SF+_J8)%1)v#G{-z4H|A&d13acvyiVl~3YsdQ}B(#bd1Ow~WELispMpDY38iH9zLjXO{8D^b2Cg@rVb$ar1kSs^flu z(K5|3Od?p?4oiy1iU&)4zt@~n62LvNHBMrD6a-Ji|Ee@kf!CBUUTfV7>H~EhSVrW_ zQf~DVZ<|Aw*-7ZD#9jnIv&D9pbSXA!#q8lQf5S3SjibGdz6lh+3`*3S41FsscZxW2 zHaz)wwH5d@!_?3lFg4bGmV!cVhwK1~ng80NO~&(?>;@fsjXmS&cURT4U*g0@zgXBi zmfqh9(sa{`lh5D-!sq-gGlNN~Dp#mtonT{qhQQg_yT@6XVW<@=sZfp1$Qpc&lS}kM zAj5|2rlmMgZ6om~Bb065GoI<2jJ@L7C%uSStwT#yra8yt{db8|VD8tWlgAAVmf8nk zb~^oRy$f@+{O+EoK{xdHzo#FF?Og`SJJ-Y{t(BqpO|M@|9ww32T;}Q%m4Z1J52apSBOu@Lh#e}s%89`sM4xgQ z#?3vUQ>J|LCp@H5*(b>)&z8?~P&|qJK3+eGirU*Wr-zF)%O`!Fz%kY_2I$)`#u zQ6ERxvuO@!6Vo|B|AcK{0*>$%U$a;eKt~w#=M8I%^jK7Dl+?qDjP|(VVICq+9$0Vh z36^Iok?8%n$j`^ORuQ^udsJCwemvq)`L|w1r8`D+z+y4ONkdDPQ3y1T(!@4xmO}Tw zs(2L^zBS-)bJhCYFgfq6iWlBdR}0Te@Ck z&W=Py+0bjTOG-Qa@%>vOWy$J2`_jS-%2V&@-U=E1 zrhw{#mu&i{rY?0;{T*%9+&W=YX-wHwg*H#IEZO`YWxmG-@?93{$d9o3c z+ZsmVk!X9IG)AWl($gFU_jYhKhdNLD_H3})a+=X`68E>BQw_1{;2$yH;3z|1W0klJ zaWIGtY35Ok;3^l+R^qs^NR(bDJLGUR!iq6*eUc+**>Wrf78RW~>%-IFB+e6o(GN;@ z>(iq!Sg*@&GpJZPowC|>Sj(JaHWeBAd=IrWB6g_VZ;s>`bY%G1r{7XQN+UHWx5Wp} zW)O3AWyxj_0VWS@2ANzb{mIS(m5lfj>v{8qadc)^rF|LH`=mtNgh4djcXRjUbJHCN z!wlFndr%n#OY?`;B4j z?1!SKYlUfNHKx#c@_7rJjkZq;50o#Ru7G!I2bQD4s>Iq`mmp>Y!+U`-JP$fePgCL= zA10pgk+e^?Gs_X=uVlB$#6|5)&s=P0=vp*ruFLto7jiJV<}Xl?Z7NazCSd-7X`5h9fT+`yX@U^-tq+un!F1$jv-#2#^2lwEING@debd`3XE6brb? z{m|=TCX3rjYk+@}O^@aIZZd7iVI!^?5)qQX1O=J(tWbIdwwI5|$DT!N?#Y)Af$CYH zpTnZ;Etc3b&3>DC90Y;Rz%nRm9^I_=?l(~6&4r82CGh3r@C5<|0d|)3fMc~Na0pne zwQ^ri`J*V9zG`gDcoYP+L(tIfOEe%-7KF>l!t0Ha@#?}&O4YOY| zH#NnVW}M)eTh>9Im>R+G0ii$CJb2+ZfMT4PP@0l8wxu*yslE~5SjUS>;8FA-mMvxf1c=Dc(O8YK(r?()tnd)9CnT9% zuD_QUZzbxAHr`Kpy-L-b8MwaxQN&Z~V3(70l&beOX2)zhvzny5N_wwX)wXy29TO;} zF{RbPNn!asdO5{A36z4fk5tpguOY#V%|T!li~BXL48a}K#p3yxdVi%bF>Bq(tN42D zHJ07I@-=H%v*r>K%W6GRBcdJgAkL2LhW}Ebcstvuo1{wv%pNhoQB}O_Uh?mAS&g0 z_K`ze-?qiBbN(OE&?f}wW38Z`e!yRfhe>DkDfZ&l@BWWY^f7)Fw^C$y9@(k`(`)ss z?bY}}U4ei>MIZC@cys=8PqEQ)&A;Y%J7?db|MA+QwORd&Ktr!X+uOXy5n(j~Y-;Eq z8_4pwa)mcPq(5gO8c-ecArDU*l?{vhF|l6bg}zLAV<-?!#{WI0=|WXpZLg(Vi@xnP zBmh8LH`Ys?wV45u<-!!S#esvcg{F2C6v>x8G5!u64j1BoRkklG=6HDDq?@o=m>bE) zDAf>}{2tK@;3>TKa3E68Jyq3Q`yCx)lC&jf7g0#uX_O@Pja`uPXBjXeipkh|fy2Ge zXp>MH?5)T8OT?*gsts?1YbSiiNqATSzOquz=?%&WNX0wpUW5Xh{uAfIdAWDM* zkAL?USOlds<(`GGZ0j6`amc8YxW8OKhTxF6)eRGsC~@A)q-SA|bSCM1v&)|3y3j1p zNF0si2t7KA^?4Gm^8;h|fr~-7J(R%8J10`nbefo*35u}K6=E*I{6zQ(NE^ zvAoH0(+=e@MM3j#i@LFwhWqtMQlg5vp9af|mucdMnR+0Fw3-QsDxrz_;Ih6_m$qXG zoh08=EpDRXwoi5SpRwA?;87QyG1(z1;m;YY4H`ek!C0J zPtm>AS2UUCJ9A13bHli=Nt_E%STJ-*fY?<{83bzWN zeo3_IlneV&>-_z1n6V1K9IwZb&`3lM_YWHlLsZlFDW6>)$2Pm~cy@kl?R+GHWc4N7 z`QY#?$Rn|(Gdb8Q!*mqdZsJP-K3TjcF}q-m&R~@eS-UZ$@8#I*&;8Uvks&P~vZ4L? z!mGtRgmokN%mTu_M!gCOx2oJZP^UA6CXO|u0fI%S)wrqc#GT;)tZ??WU<6+^%J-k7 z%vi=b94$l(L&caU-U47iD>34QzGIqa*{?tQBlZdvd8(*#+A=RkvC^o}{Kp(sH_&L@ z#K2z~qay^&%K+oozHf4b3e4O7J}vl4fV#;GpTM~TgCW%$Tj+0QPDF-{?fV>pjP-os_c}jckTS zYM4#RbN8Y~+T8iaad*N*1AWpO+>Acs8w>qzbyF_CZ4L+Ra)uk@FSiNq zS%WWg(xWPmC7f=ho2v)B0S#(%ghmp%#h~+4@NLo`|dH z|H2j@@lV*|{Z3r#?y2^as`XQsaO7V>sh_jMQyKbqIAD+Xt(>a_R)(PZ>Y>f^s+yLi zp2WLoyy-{du40qRBkJBq*&|#B^>S&+e0OJfi${9-s0-nLDcdWVA$DOqs<~`EQ4Nww zge&iq`y5kH%FE-%WQ0q`oYZKvIPEy`d_RAn!tk2tu z24h3@kiZDUmLkwdO3+MSOsR;F@VbY$B3e4gCF zf8mqx;&}r059-H>d8AzDTCUf`ANi5_-}wXn7B??#uvU6)$)hfD(e&PZxH+$nxyb3%rKPjhI@8iYtYOeW*Z6&PO2M4X z-&JPszcnv!b`x6C9dlI_!4^J3tku}5bS!JtaHdUZe5<8v<*ChJQfX~e6ShQvm==Jm7fqc)dZ7CD0qqu~5ClNAs7WLOpq7#Rw@J~qm|0et%nnI$UQ zfqOp0NV_@>GvvTlLW?JOW$z09s1UGlVvGp#o5#fk?5D*(ig~7240yh$(iCX%ZBOc=>R*$HnOkio7$&)tAO#cZ+`uwumu^A>~bw%@!k@p77{&|h@ z_rMZ^n1LJLw7b7+4b8OkeqFd4+@Skl+w&ETjGs}D#6yiG)&Zt;Hf!l|@9@Jx&@0V= zo-aZF`*T_bXIH$gmg>awPW#l7_y2X9xHmz&o!9ULs3!i4l|()rr@Te@SIoQJ#j_Ee zkz?EQM(gcgovydgQzgWCSEPNnt7+m;#t<3H}t}ce@Y=J-6o))(Z8n*GLMRfXu z7;gu*#d%8Kam*UeE%I%-^+3LO*Gc|k@;BCg$Pk7efeOV;<9vIwG;8>2uSK65?0m1$w2x3Ut~&a!H>FzpQQ>tOn@p-Is$+S* zAfk(^g-haA2k0 zx)9uugc~C%P)E65bfr~xQlM^Mox`qcil>38oeS@)$`>s&oGohNG%Zls>@694pvco- z5zgu+uuVXCt?;?m+2QOd5O{DsUY@#Kcde$I|B=1ojI7eCm@=ShHgxK;=Jnqci$2Lw z^^U0`?1nc{G)6XhT$UPi3%aA58ifW-H&e*hydackaLhDg_!0a~L}%ENt!p;JGtJ9q zKG}TL>aOqA)WtAzU^dxn=n6Lp1UFpeE}^}6S&krE1=AKZh>O4T2D*`B5oXF7q-@Y%8t1kU=sTMkGxIVg- z@<`{LrrJ9a#}ca5HMrFNKJKyPJ;}FBCp}3l=bdCerJP*P+@jn`s)ydm+xy@$juVE( zGF)Xl`($X$Nec}AK0SFjCf@akDjXi1E~{I?eItsQvqzWKa6>QHioPKd6Bys#Xc5=4CfE zzi=+={~z&;`Qjd%Ru1%#c?5Q_`tEPeUqLr}d> zO_<^^x9$I(e?z%%kRuWHbfj!b+1Q#Mx|QM@DDuV6MN0T1kJB+w0kNWnG>7K!W7?4f zebm;H-y|8T7;^kHQf^zmT;C^}j%bAurBwk161oFs>|79?mK(*FQd4zfDxyw?qE9Fs zExD~O3pQD;hiYV%Ak=vP2eoAC+M%iEZpWTQCoH!Xo)9P~W0wE- zK&*`H;t=v?lvNC7hL7Yl$TB4jeDQ+{)6r9%FjF{a!}O2iC{ff$>j6JC6}&#*9@qdJ z%H;(_DJlYH5GL^cr)7zwox@&j1%MMpU>=^%X=xMW)s;eUT@f;YubF1WiS+>*C(u#5 z(w`I5A6aJ%_sa>c07?$7b2`_&Dt*4~V(`7UWHC|i`1$wescILUcpm6DLYR^#jm-j3 zW-3J%(qbaHuN_-oFureE|Fs1h5B$O?0Xg9>0?oCfAw)X4dFjhtr_+WRy8D6Z@yFlH zl#f-In_mZ!@*$#;%JJzR} zm!VPkbxNU(!&-yOl6-gh_}tr&9>PC_My&JN{i47!f6P`O8r|SC)_KH*rzgdIAqju~(J*;xcW@(k)M-^5%ad2snjF-f-itO;P0R71}LIyh2 z>b_L|HiNf2G-oKgVTI0K1^>Z0LMM~Nia)LgD?Qyrct3)_ML}8ps(rlD(&7Ff3X8Wg z^M`h9AXcEGV8sk%G+d!v^fS>FNhkpqj{~wuxWf5HBdbEtpdBX+ryE`74TcN zzG}SeY|~HdtMCb%$+>buLB8%ik8`PEG=nR1ZI0g7vSbUkjuS@r>eiCfTuc9bS^Aie z3)$pO{qu~eAkNE9NyYSyP{XEGBX1^jmIG5K)rZVjZx?QSu*VN}3U6C70M%J%>Ata#H`IFkx+nA1tsN zsTI&I9xBdAXD|+f_c<+ad{G;j*xkyar2aSt3QXxBDPhg+Sigz@j1FCw>}4hrq6rF!V{sg z&&yLJwq=t4$J04DR04KeKR4N$tjSZ8ZQHJso0)8TvhA8|PPT2G>SWi+c3J-65%ep|#um%cIvD9L6k^JfpW(?(a_ z{QY$6Ech4pLkl14SW}D-WNv2bDu|q zYPa0Y`75(EWb+8BzBuD8EdUhWxO|MOrqcg@epBn41&;vAbCGGGaWh zwOW%3xjVH#3S|}cxcl&64~>xN$T4F^F6F}Usqg$&$q5u8@|B=VrBk}ZaY6OWSqe}K z1jH}waW2Hev8wm}-{CCkYOVd3{~^S>oC8O$LMz{N{)jrJx2W|b^*kzjO&^DcafUh! z?7Q!b-pnFm_3b&-mhLoNx|B58$rCZzSPv#-@^ywU++gZFP4HK7;x?HhMMf;5B7Nd_ zJ`nN_al?LOF|m^beoMw9@QVl!oJ5}c#^RUpcv_QtA(^dV4b+T#P=rmd!( zJ_k8j7%fzKUOh|v3g4Ju2BaDN84U4M)Z7g*7rh^II0Cgn)9%^4f!A_t>wi&;ob2(z zX*JzNBqql=N#jRH1}6iAr%C%8W3twTp>7*B$;P9#55`kTb=#Kq6;Y>UK!}zx8rIE7 z1)(IzfHHzD-(sz8@Kr%MH-{eq>VwC=QO{WT^%3hqc<*ln{-`2&Ah0T2!jsbld25Fu z4MXnBjwHRN^f3HaLVDi0udl@@Q7Eh%!)Ctt;*zT8U4_f642~vKXgmsB8y1i=w_@#$ zF`eX>TXa5nyEoI4=zJ&J9ku&4n~|*(YjLOHwlO-2wc(*qvPR!}tB7Z@ z-HFEAMGYUwszzYd(C@9_%q_R0+vj>E6_h;wdQs!PtH#af^b{VY1a&#A+2v05wLLsJb3eb087v7P;uw`yye1yNk9;kQ@6VX&O zx+2clqm>Ow+h6;Q;UT2U3V;qSu-OVa8zfDTkxFl>Ty2aBc|O{ps9_o7b?7nYv}0*; zP|=v0N9CmM5J3?4?m*HZL=lIZM<7CvPsZ`972RS11(O=NX)N#>xqDpZCpprn_-%2@7!)tU9+;L0VM&%B$-XBLILzqqz znd>LrD1LZ4!Cbh-{k*o_XiP?8($$W2D{P2W)K6aUg! z={=H0YDG*rIue!V`S-zsl%QqFg@?<;XLk{;bqmbeN@_ORMEcVO6>z&f8Rd^f_*qg` zQop*}{bhbFv;azrN9@=tiKVH+g@&j~%dnq>(dCj_3K(ie%TJ7=9EA(BHjllW;m^y| zbXBxMOZmZG*4v-Y6fFmvD+AW$GEYK1)hLqat#JHnt2Z>ldwX7iuy-et1#wL#Z$3O_ za)FDSIlfA?#^2f0d2??C0@-yIzlqz1q|sAWWjBtUnbP2Y8}6%vj}fpx4KPJBBhGn? zySu)<9lAfMV73!_d8%oC@O#R;2fW4_b@^+0E;*%G6Po*tl&^!X>UQ9it)6aKN~rE{1I7lymqBZIIHT$YS22|=>*wL& zQZKaT634b*yY?Waws>WETy$NSkdPV=cFR}7Rl&SUb`+^8o5g{q8Mt{#BrKPMj6ob- zO~Xm+%KUB0G?(NdpDXeH0T+I{x=~#(r|!B;LQFbyf4Ubz9874-d&47VcYdRp_z%3l ztn|pqm0A`#GXYFCdz~NpZ;l`Nq?>9z25;zdSyv}!q$bv?2)hLlfqiCLjl8)2wAbafsXTy2@cP+scAAF_kVVUSm!2C$6un&YZ) zk+ixb$JTET)jWv0hA=%S@A-DBhIV^zN$np|Ua-1uRW_dutQOD|+#*(^?Mm#n6-Zua z)jDFoH@4PQ&$qGCqa@ffx+8%aZ1PJi&WE(oV`x>+@4lSJtGh;tNej^)?5wUJZy3SB z;|@{g{!&(qmxVwAUc%vaFCKshret@EsT!=ZueXv#QsIlu$#1MJa_~!fUh|D#x3}NE z;*C9*k+>Qx0lc$MYNjrZ^agCfKKsvmQ2|h5+xN4nI~ah;qaAJwyjJ*_PbSs%kuS*R zCYeZ8lc0uubFE*yrQ!1Oz`Ur=R>oQ3gZk+`s2!AP*WK26_kPjr_wvNtOat)AyRhyg zZ`SHCGM3@)0GzWD>LOep5bITsy!ln^C7M@h%B+~yQGHg~yML!GMQ~b=O2xB$j228% z2xa894yxP4K!!kl1y8Er=vdoWDC}f-m&p}92445sIUe64`I*gGK^|5h#lJA=h$p0@ zSttLS0ViSwF5Q30r*MI<#1rr_4vTtY$lwYZpGx&fXa{38hp#{oFVS3?$;!DtUsZOF`+;BN>C2N zOkO9aaSV~S7mYoiN}~0A&d7flJo9d%T}<6ae({D?yISosS9QCQr+>mHeYvLVN_E0_ zB4I0kscV_U8ZlWh{hI~(grznOIaEI%*XX~tYv3{3%fpy?B5oKtG}gQJMVtrr02>{*|s`FG40+)_1#j-EWJNii_g6iEq%Pw z{8>n4GFTpxdg&IH)8kU(-bgz$I@#)$H?#fg1Pdjh<1d4h?5C{M=x+q>N+@`J$7Dob zTxz4i{MSnkon+tR;;xid*`~jBf#)3oCSQn#4Ld5r74A?gZ|GJ6Dgrl`iGPPP!N*u> zQrj}R_Yda!)A@2K)RzE`typqwn{7WcP%qmc5Srg*(?=iCeN0%+WruJ*XM`ll{Qs%r zYdlFQcr>uh>9A>O&8<22{r2PNMgrjetFzE2_hGhj#nAsBvyqJ@+P(laQ2WghZwIGtXRvF?SYdLSVNAz~E8L3E3}SUz6Ty-$#Sx|~v6U4K5p8Lo2-Dv-syls#zDP zw*C;$U2^g-&3pP#GdNC=P6y_6JEMfcs78bT6eA3TA~*a;AgE&5Y<$vLcjB=kkirhv>Ls z__KbR0Bzz2hSW#|6VoCe5f)h7&kC|qY|J#DuwxEvTdngsQr|)vOn$EArnvbTt=sge zn8>_jtk^OTS&&h_tAG4srdUd=6nn)vPqb|1s|H za_{1!ds%e$$y5D#)%MTl5j5S{^zT>vF)*WPwHAgsz!!XN-S`1Dkrhz$-OU&zRH8rO z$Tp8;kGm(%q@+Wvfd6kv&aBrA4#Wxw(&MlnHBn9~7NS9x8=G$ae3>G8)KQNt6R|%t`a7tL8${Z~bZyZ~ zJaZq@^ESo(GSo+?1|MX;^NpD=!oK7KOUQS7Dp@U633l)28IhizaT?U!caw+(8jYWs zDqpa3TV*-<#=?5Sh;Fn|cEaPN^@+BQ7~h8A0tWx({O%qRPeeJkU&VGRo zixHgOAzLroiT}rcv1&Gs$9vaykad-^NI;J?2EPmb!JIW%|M}cwvDKQJIwoJGDqUm< zo8^2~`!l+LD$N5UZEleDR~{QL>QCJtr1-n8RB4%?i(Q zvazg`XJva^=&HH!+<}+RWihClgr3Ik0I~}dbnVB4pz%_9Uome{F$rGuJ9i^SgRLt`~|`tbr0UmnFB=85(8|HxPI3{^Lus31|q-4zxOWYPr(cOOg!S} z8_px$M>HWbug?O=_`8}rD+C5BV(mOUjbvf!XIjIE)RI4^hmX4d&X+`9TQBR-mZ_3d zIx0?6tIu=UiD&RaE!_g1&iRenXx*;}o!*EbKS<8%x7Kg76~>rySag=TiB<@GvR$a~ zz?r-RhYLI1B_1Hf1r%#NM>!ez7b3H5lCG~uT)Fc~;vpM$`T0N$y`b4=6#a@XutAC;*orz70ZK0zi?c@P zT?;nM0WQ2+w}Z5R-&TUo^zjbbFrB=10CHv@d6>j#V(M=VT|%lk3-9fQf=8CqG#d!T zYleXjz-vlQ4~ecnKQa}5c-eE$eU{4|yvIfE`miC0G&fIxy}SNTvC-|~nl*fSS$qN-bzg%+fI5CL7CQLIc2WlD zA~~J;q=X+dzNU9P14H~?$H#?0I(+!MJG>SIdPrRZK5Z!0anB*@n>wOiO%lk8NP^I_8w5AzD9v_cHU$s_KXUkVP+)wUGe3-gZ z>huAPKWq8QKDV2;d!pT&V^#T*#!SUImlx^fw(!zCd}& z<2CoVqTaAG{P*G5efC3;TuZzDgc5x7Olz~jJJ;$EN)uJz8-8}7GG zAZ}}Fwguq3TGo8l<*V=$3x08K*w@O|x}R{0&NMYcc5OJ+>LLAk3UHju``(veqQ^bN z&O0^ui@=c>rvIXcyynjYyc1;sy1s2~hp#j#!E)PGV4v$udti?zuF>T@=S{5V!}zLC zFB5;?pdo8|NOQ}6KffW@Sg2VgRTO83p!1FkcDf@`>RkO?|HeEds>N3pctpv1jE2uc z2zLpQu3mtBy*z$O^+dr$(NZECpo(hl;2zvsJR5wbX6kXx$!Cj@Vj#66KHMgyuMyPtJ(0atWoPKs_EaF z4~P)W?lx?1pA?veJN`eN^;&=q1)sFZ3bhm7(>BdFE8Y2ZZ?qJL0<>HJCE(buzW1`O z-XN<}bDuj#JAX%oYu~uwb?gdzB9PF}|*cM^@J8fNH1%#?T8lRhE3Q>~D6sf6U~DNdXf!N2UoI zLES#?#d3Q~-aTs7S(Q|w_`!QT%8S%l4!ZVK_*n!_H$#LrLV(v8-2xtGHJRr6poMwtgFOiq|dC`HHW&VU}F;~P#) z;G=8jDnGVETp07ug0QZrcgfO^L)Ced&F95XrTlhGoN+?Wt073bv)E#4B6uyF>jekx z%br0JVLg$V2aT(G{e76scy%FWknI%j})P#iDTS!?qiiobVjz`Yf0k zs_5Ml&z;gTcFi||jqtrSm5*PNC?fqFdRR$oD*E?*ZyMXy5x!m`!`&a661Jm(gvlo> zGsQLlC#>?cWS^d6AZ zMHAjEMK9TL(aMEBXPGOsJ6wtzKfK7tXcvf7L*V|%0T`RDu#TK){T}4x$3vrdVw8-{ z&U?aRv4Zkd5Z~$;(Qdw;E2dtxMRlmV1ci9M2_oq>GH95Ud5_>aA z*Pk3*+I#4TgToJR#;;n`diUiIB&+sr0>eZOM>jFi=l7zC5n=W%*Vh5xloH= zzRz%3m&_>@5Y0U`iLWKHYT~=V9=v-0;dWpf%4_8#-mN|vHy`Ncje>9<9A}{#0t!g$d zUMNhtCu{j^a`=V4f0vk*gGv;C;X&4onou6~hE@5{eGA$~5YdfOFy)LQPzFrkV{bx0 z+6vzCE*Gku2B^(8Yrt%4_hB7sE`>v2r|uMoV)7G6s^%4MIhwhWZ-gOQVq>PCn)vfx z>&Kz6pX-!}GXIvj#0xg1s9eB%svVI(E}w*8sAdmkh2hni(N9nz4N_@IF|S3$I$itZ zg74LgqEFcrDY-c9@C1I$`VU}2=YG5<(pEUo4`{VJf3U&%6olkBzTqpu*iTGcecRiK z^z{3l*{PgYI$e9G&+<(;*UDENh^NUx*jN=UCffhCgExV((yKAgKAE(JO9O6YFvffW zs3~le;Hc>`O)@Tr&}Ea-!mmJuCTR7!pBd5;eAL&{8%Yl71n--!$vfOkeub@nW837> z2JkX>cj>?bctQ1s9BBJZHTuNR9|Rr_peE}uD546aHy$*@)C9^N8vNv!%eABk&x2ov z!vdSNjrs#l>kwFm>AVtnr_No6qJmw5{eSDJgO~{pAI1N=tGN}u7Dss(50Qs=x?m_R zv&qeG+${Jaoi_EA0n7C*_zVAKUHEP`@ii+oac#Ow0J`sD-l0xYP^?PBzqxSpkwiM@ z`^pcKaNqaT!FQz!^oTy9;Po<=99QY8-q~f{b#p1+NiJlcy*&th#`#~Jgl?a80aB=0 z?T~;9hy4PXuDlEPDmEa@6?<}7E8KUeIAQOqFz-{Rh<)p&A9QXr!NU3rVV!oLSJRyr zqH)Mnk-NHP)}+qnm?fb5cuG9JZ>#4h*6R;jH4P?4r3z;8cK-qLPTSk(jGvU*NA#3D z$0$I3}=J zUgPR7B++QW#Q+QBBAyq&TGdrNcW3r$5VAu(BfbvTiqkBv*soHkzi)`SCgA9*L8c#hg z%Xzi>CjWTz-bC=p=B)^ZvC_4^%n$DEo5=bYYKD$s7#FCOEBA7lMy15@Z;z#Tawp-* z*MEck5oKB(%AQUQb#_SSr6K=X&BsM)g?h9}(a=1uu?;5pE= zNt$-%1$$IdI%^2#v=yuG9}vxuo6fOzW*}ov`%q%7Pr2qP1^Yt3>nD;zKmXadl$&b0 z3a>hQ@nKp_plHsa;2r^*g>{_m!4U>?hX&L!Rvu2)R(Nzcx)IC=SZz;uRUW#qyuaK9 z)J?iXSg%%hu$@pZ!Fpn3+>F|7qQKn={LDa?-nR?$~k4r$-AJyM0>|9R+dOinxzWA!!bqE@T z8XT$EwzA-}uR11|G=Np_Gs4s&GS0fM(a4NAs0=;Ic#1q9LXkkyn%vhxJW*6*>$vD2 zxyTa$Ke|IW2@z4?=z_u1()GW}bKa*1G48?Yz#X!0j+ew5gTTd@QS@xr?5H`E7#EPZ zdWyQP%3xk8j3*EGsxi>7>pIOH==${w1Dx z`hQiC^b^{QAf|3qlk8#J61~o{cl#b-O#iJ!gC@ zR=jmFKTU%TgRezr+0V()br&8`S_oXEGt(l8fwucAT2y~AOIWM1G^p7^@%QH+C^4Vj zB{{6KMbCI`8kb$g&IHryk_?)~G&XBe@YUS2$`d$UoRs1GJH~$+5avhSTT|W@LaHP? zlG>Vb$$wv~X=vQ}6><=MK_Ic|^{4JkBS@};Lp8jg_1;W6$iW#^F(*5e&I{TMYtzm% z)(c|?TZ9BZsSbg>q;~97h4oqyW*{eszdlW)2wHSs(Waf+4sYGq;nVFv^sT6JYz_!H z=~Pi{mhz?OE{Ql}Q6i=i9Hv^qcev!cY`%OXC7+I;Jng+{&jj?8K_El&$1 z%RzXhjDS&S@08l#sE?VbI#Ljg7hv~YSNS#S;SlpyJ?Zk*hwP@&+CWt}CDGpR=(!a}n$; zDa=f}_WR*zhcOdRq%AJT&+VOhAR5QaRdIA`K4}FbmoK&E7_u5uwkmlKJk1r(7>G2F>!?Dq>Qv)13$Y+n1wY z&L{r&pd^}G~k{*uP@0@1GH2205s}M>~`yrTrNezmD>B44W*u_qdTIogI9CR_0dEJ8ROw*(9NPqY)A?y8aL@ zb+>{`(sKVXcsVT}WP&X!?H)1sA+G_L?G0*w9ZYq6e@OL0BlJ&}jL%7q!C%j%e{_Se zw%?kS7g&N=;wVn4V=M6#hbcf?c)&Fsrj`Cx?a1ozjne=_c!%76og}cX?4?E8ohk1( zfAUh|@ZX=MsS_SmaJZ0+27`z=6eQxUss8FF#AsRvDlZ7b3jq#%scRojJstL9+U}DA ztMRZFDQrq|h7SF5xsJ6{31M~SF*Z zUk>m*z3K5}P7EYBgrG|0)q0%nnK`j-D*9%iN4{=L8w{EBlpY%t?GdFZOo)DDlaTgi-D00{2ldiaMhUfn0YIGrn=02z)Hrh$1Spak_lXLo3LA{XrgU;`@ zfU9XfldCEBA9dz@615-VX7m? z>y+(^VI-=&;NLrP@g1^<+>`q=wQEOdqvLuAx?{j(Wt zrMg=2mC$@saX|z0*3-yf^O}K_wu=;dk-Q}?JJKhx?<>QlX$#BR@R}h8dxy8`NIA~p zXsN6xFuo(jcgco+$quBlM9GzJfMy&5mH3sKxm$nLxg>3452lWfT#{doG zG?L?S^fCA!PC|N1Gq4Hzu@=tr?>AlF@D@1}v$+ig%@{8?m^*E2G z+2JhKM%k%ShWUo({mg%Iiw;&#OxH0RuGK@kPa z?!*sSj96eQ)LiRuc&GVge5h~?TjHdbvs8qUr24L;oEz3YUA}{Gi>MR(9rIp%&?f^giS}$O%|b`(X1Xc2MTAhX$$|8q+x1-*sx`)= z>!uSt2T_7YkJk(j4b$#6FQk4iC-=Y$fzQTB@cI4Lw#~`{BfoVi)BJ~h+*E+JFTX+M ze?RluyH9wwD3KDlQ5Stb@;t*T(YpLwZi`aoNx<5-r;Oh{)lgVa_~GJgY} z%fiQsuk2|8WsE3}4rp(Q;m{JC!4{0zY~g^IT?tFNl@?_#MVcFOr%fY*tlT#I!6`~) z2{Y;Jq&k@(_ttVZQxJq@XL{Vk`=Uqq;8=bT4Y_z++ZAfw&QU#dqQ*w=tojos?7LD=>ZwkBQr|$C>_oBwO6cBK6YI8tL>;e_%)> zSi{w;qUO2R*3O@J%U&jL$F}3uOktUWIys~w1^572%-dAgc zMUz*}qp=8D0Ehkv8}GUr(OWXd!nHlJSm$C-NPNKfK;Ii0^}8}BU9LNT0kw4X*1zSm z#k83(&z6(}+jg4%stIT-+s>T5nMJ>x~CQyOFuZA7a-q*W^C+Z#WZVyqnM#HVsNf-KY=IY~eprm|d|6K}|Sn z-o?W;hMf)BIfg6eo9)}XQ`z3mrmO-5Fr%c=?*vU!SO24{9~WN!I9UaWc!Sla8fqD; zBCY!U!gueVS)fL6Nn7eJIK1gB*YBAb6x#hJt0z@m(UG13u6VfVYbG8lW=k!6HqRY! zF+NRg!L6(}mgkl;r|Xm9pg}CQ=g`vditao7CEtFjkYg4QAvP1y>80|RA_g=T8elDV zCyv@O`ULYmR;sPMSl@r0J>4x-8na1{Pp{#tLqU?XZ_-(V39MN@IG6T06Nqhil?~Oe zg24TYRJ!s7YVL;_u^mFKNTrncTfkEI1qhx4ln3N1$z zGiMhGB$@~;Y!G)D4$WeHT7%$4{zpy&SrN}ca~8k+E~n(>ueW4V5aQpqX$^G0n!(L| z+^t31pG=%P*Vi2l8P0wmWVkwnCvj0abbD{_uv)y$K>gb_hT1t-5;5~O;qKOu0@o1| z>t3op!~c(tbuJ>>j0b+92BW_{cf9u3+y|TE{7z~1N_8nyrgmVOAfh(DUW>J)1_LSU zN>h1|u-3hYPhn1D!1s|3sDB%o0TOs1eY_nse#LyQ7{|aH9?w;)B$wpI= zOnPE|x#?r%suQ!}R;QI4F*iN;CW6HKaIUHLX0d+Ear@%htB0``P|wXFj%R)35TvrL(fEViG5pcFZDDLO!(R z=78Ut+cB>?(RH+7WV!=rTjk@w)5h+|oB^ zK&fo~2Aql%ccuOy8fFug175wehz&ctZv&$KcMFN%!|NX`KeLWW%h2R`t6op**Ka z(kLO!9>`mER4N3rpmn)#?YT?+6%E-uV;mO}(tCGrve&e$dY)@XX4k0M!P#kLf~*HynuVy zeZFgYQD&`aoK;ZD$%=VQ`ObATy2$W+IWc*5#ekM|v#(1<+ZM`nG_NQf9K^Ae_CMxK zZ-A#!^N40a>Y#&0E|7Z8=~&-b>vkH?ZhddL>A}xK4j}Pz=Xw_*I8oXOy}8xn0(3*- zOt{)PH)7-EcRV{vVwK#vIdGwd-~wx={^6dLucAYRNzfR}+)y`})%&v~#AnCs0x*q8 z87wb2t9oXW+5eM=9{1Xd&~y_XXVRL;g^p8Vr^1 z!yq0S?7oKD(cS#LdY~ROW4g_$r(x5RpX^TX0Kf=U>R88@eoFk|)t6#`+qecDsDv)P zE!L+$dbjQkCv(Cbn0JTarvJ-g6>`StaD*aNBD~B?5Z5iRbUoHoiy-uOg~A^sXKX53 z1dn7Ss&3bH$)%c?%2#T*ok3he4ZiDQace__G%m^?sL?grRVh&mf~ubgsfxo{s{$~* zQ4$jA+WRZfBFW>#*DFq>)*%h2knS&|A_k6cfu|4tN2yKnd>N*BY8dDl5)3iM1hz&a zFk?g!%%CLWVg}b~IW+*A#Fn|Zy-FMgT7CX$hmLDaJWO2AR~FIup63kkQ8YpDQ7^WV z_i>}DD}IZViuBTh+Git$J}3bQIpzAcE$$v=wK>`=oUO8Z_uaz6 z%THqw<*UoHN5?)n<_6)==!5?A`D-85S}2K7JYO?QT@$}e97S!hy&y{!R$Yx2v02`_ zes+)3Ub27E?19VV`!?EhME^MG)1_fsBhb|-;BMbfX{?uLzwP*vza)E{09Ot>{2F-Q zbF~eGC0@QL)~Un>@6-Z#?l~xqG>VG5!grbg#6@%B7mdT-{&+@HXY^7<^O7iMJLCSP zB$i5OF{nn4{$?>{B@3rCOYNmNoYV3xoSMkiscmmtku`@CsRm8%(F&>e;TT2| z&lzf$jTNe<3p?ei4z`i`We$zjq?vXs4!Pol&`DW~IXZ43 zSLwD9KecOB(N2H%p}V`G^JNO$M$i^{<%A`l4VUdr?XnSO>iZv``lpX5|E{MEvFj&j z%z`n#U~50a3h5=bqRs3Y_TCN9*0kR4B?i9PKbu$Tp4*7Es&>VFH;S@W(9)txJ=_?Y z=<+XBxAnI_+x|L3&+X__fC7Of2KFKq%kC_@@H^3sk*GHRvj}9l9=S@yHXM$$Lk(2P zCnCisS2iF$XqY^SnSjy9|1)$9GGAUcLmau%p5v0d_o zNe?!9Bw+_*`u;>RMLvHdldB39+O(9E=OIS}-30EqNtuByHd_FW)W>NjC@f4~MmA$z zAl_>@;Rce%&mBd1yCL+(*U-gH+$pXfOt#1M4JT8*Nh>z*u&d{hw@!+RKa>_l$#V!E z8fmxN_hbX6)RBXofb|Y<;JsR^afFm8iC?sV_6^)xx_ZRUw<&?ch+lNBhi4CqBKj7B zW31{DpgyZ7OT!S;wfR$t5>*&e_uO5rL@8+73hho<^g+WnI=vw(#X3xb>=VH>_Tlc) zM2&1BQW$av@V_FL`xu8Z`)2m8VxfuYB0B*M6K)zFlE11WW@*q5^yEETe(= zvpd)ZWVs&$t@#$AB6v9oh7chhyXKY7#d5psy9<4zl3n{oFRwl#d|;jP zijn-qif4nBgNu8I-iGR4*vS9qK2qi7n1kYe%VhWkbGEFyKD3{Vg@A}0QAzQmq1w7k zR}%88#-q!|kHQ#6ZwM41!c+pd?d|qBHAB*G**51uukU>Qvn+R6|4uNdI@*{J%XFuq zd`zu=Cy+ab*#eD-)Yo9b;SE)9khK@;M{49DA9!%@sWjU)@37v{@oe?}X#3OM;rDoO zADR2%`7+r3k%}v{&f?>vK}hi3)+R1%b` zgYN*73U4$3hn31X!Y#e%P!MC6B~JK--v;EU8|1w&D&?~egELyF9{#?!elUByP*=kq zrEX*&omdT@VS=Iirwh~>inGne>dk3+C=AqYlQ$I9iw!S*>BNiC8j6hG-Ka zRGKobKdE^(E8?0j8Wy-Q^*$p<%Qf2t#yV&Bxa6fYPz-IH&w{dLfvb4VvHK{avS z%`S1Sp8ipM_!IcI01>{ zAE!vWAwO|audUA=I?3b39CV{#w>@_w)J4i@WrN|6*LG^@16#9gw)I8F-PnD5>@5>X zs^E&?`{VKbU~1|uX&_7=EjbkwKyO=2AF&#xQRhyOP8xuBX&jL!Mc^e{<+eg&@WXxu zm~=h;_9dJ_emI)`7xoyQD)|a$c_I4iQ~ICGQX9*_%T;uSR}R5USR+d_lSA!UdNBz=5b;`W}8r>Tc8-^UauC3zqwJl%R$IUfkkdt z?&u%oFXq#oJ*<)>MsV#9Ed=a~gM-=u$&3nSO0<=x{iy}b8&2^jaVpy)(Cj#r6j;$Q z!m0>jdkQnxu;B1Q-YaF!Dz9Se#7Q5mM`3Q%g`h4;;Rtfo-Wr_!8NhX}R~btEF6T*j zZCCTP8hi^R-HRetFM6zQZzuJx)+Wo&3ojIhKf$C3lSr%P6~Q;2H{old8E=XQFWHPo z0x|r)r7DRT*h6z1z6z><`L2E;p0XQRYG(Sw1-dwy3rBaxdHwN@ zoR(x7n}X>2{U8Ky>E4iUS_m%(luZO;?z12=UwYhO5gmB$=bR6pv^r_xim1^6vc&k< zAzi9;u&YHVCRQXWuPVH$v0#~(eic12GtvpwE+d{D!YKCwp)l1UPW^JJ2`Po6VH?go zYMe`bmrZ2ihfK;Jzp9l3m_N>Ar5xBAARbQaDwxuSnqnIx^81XUHJ41sK8s|8lNe0F z-#-)8-MpLVW)&s76$%7u_Bs?ncq8Tg>g1YH3qkuJfoec^VfSNO-KTeL@@$gp94vUT z0B{M*esfXQ7(d##mX5X@BW7vD!8*J0cJTa98geIUA5crpTu*yTA*$F{jD|ENgyZ71 z^*o}5x8Ch$<#o6&1p?P>K771CztJe&#maf?)X<%Z2?ON!V}miE_QN_LFyS(BKl9f} z-M)|Nn3?!Oj1_}Z`^KqA3MRwBINQgAvt4^djxWPix3--)%R8G9bwpx#I&_5=Scr{I z{q4jRjNYZD;WrK8m|4F5FsWlh_Kv&r2Xy@qpti~&6{8TmR04VA;#F#5@6%uZs1x+@ z-}o%axf74fksW6J%7(>YVR#E=rR^P^D9AH?ySGsl{b4QnKw-daDe8Aj*e?Z15~)gi z4uhHrUpO)wqCCcyo)W#RQ~tn8A&vYpI>$$sH7k-M;JZWu2xkQq+MQ|fpKC$YuF^yp z6v1?v4yEMqoenu-w1`c9wj`yW~ zMn)?nzm<=h(%{LPq8ZI8_j^P8IWCodeuF6;X~-hfP+9A`G(-!xzbD)pKVOF5SEyg{FNTyiE9oN;WcyhDf|mS--PyAxnSjtFV%4on3Q3 zG6qL{oC(?vDu5)Enn;;2AT=8{QikhiQz{V zuS)bwE8Rglw{^YnN1B7IVR1@clM>#J9j!?wn~j2Aand^@Yp_7WK5yrXS$lrX{EnZG zz?=}Dub3CyJ&N0TmMebZRMC!;N6a1Mk+#5p96~VymjcHDhm}EK$Kwt3rOZc-+53cF zod=|gVAUg-lm7s}gkJl-K*tK5I(PGE&3<<))qJK|}$9qp|juP1=Q>mI)H zt}8Tfu$pXwqt6R&uWLw6xJ#b_ooUpI86Y)4{@pH5!*WyV+V{`QS>F_{)o4-AVhe8a zQWDAo7Wv?W;Bc0|YSUlqolIF}&REkok*sG$D4{RpTz~#rh&rzz;>*&I>lG~gQhW8B z4ub4j<6KXyGZ!^^>X@(7j&`OMdGsZKEWY1+Pcimox|=F#2@DL9c5Ix|ULB}Bmp&GG zY(+3ryxMuu9$!Fx5y^3&_;OCa(#=Qmt9FX;%^z&2mbRuRI^mmp)o*eqK|nZ|&!zF= zfv=r7Pdu|46Ac(Lc zk#pDo0SR~zj@&5P8eIqk_w!;#*k;V*2rgj61Bz;qP|D&7!Ra8A3YRz$#NwbmBlP~SktX3ODZ33)qso48R9 zHz#|-oQ`{@Cx;UMdMVoqDXD}A3O{|}AHjFEbH)G&`OxrO!x64;l#sl#cLbIn=rVbO zRY$#`m(Q;-dFIFB;$}xf`_0jX%ee)CHI_IS$zNAhLCR@x8?(bF8vGZd7CT-$;FI%q z&|Rlxz(-ww;J&yXdgnS`OdEeZk@BHWVbw_M*|VIh~>Se8O!SX2KH*{u@Y3E*p^fSQ~h~$ zO$QJyu^+>Wo+B<#J6^QELX#engAQh>&tQ{_Q@lv;g=x|CIa+^ZWhlP`37quD8Lo^( z5UmL?Vy;OP!`gO)aLbqceLHdiI!odRZQVg~^iPO(i7nEYPKR=2{lvhqW}SNo8F%Lo z-3J3?-Sm38o3u;M`l4~N1JFCFRDU%>>|3EZdT?{AQalM;hY8q@s{r~BETlS2R5K&m z5*a#Cbq>s=xQZmM{#rp53rt>n3N&nX?+>cADSvBhPM9?0L3WjHiHXZ8CXDFbgK1?< z;@k2;bE=sAgE_a1r6xugFQd7vAuS`nnI8^rViNTHkIL7)m?S2XMoaGF*8?!@zu(`l z`XuzOgdNUQ8uZgkGr~7xA-k7?b7_@pXx|}yq%9*^vKR@~9DEeT@D#3jNLUJe8%`az zRdk3F8}#>}9N@86w||aBx<)y#j?i1nw}!E^$G~+oH9cSFT_4~-w2@=-#FSkSkN`MB znnE+0IpKEGw5phDzRV@l;c?>kb1W!Ve^jzN2%3juE86b6YYihJ{^-^=U@mbOtzdNO z$mZyMJ6ND%r}`T+JJVHc?gsv-5tBpDzi;w{_jX=%lOTts|KRie zwD>3E_iP2>x}{%}Bdmsw5j7xT_|P=xeZ*A|Zc@Xmt6U?yo=@>^%m{nq=}QM)s}kl> zqoRGXv80ygSk!+f(}ABJ*$@NCFUhA{6={o&fR8I@ zFN@dAh5gr;lU|C|OTG`_>)StucCppg$K6`v3ijYLOWR|{G5mvvG#I?4ApweqWU=G{ zAv9U{s0IEvhoiLD-_;^Z^g7Yad#$l8)6*nTs zz__z3L&eh!4-4frk?^t2GTlB4E81xFrCMN5FRq@CB*m=|m3AbLi^f0lH6x*=T zU`w76aRxQ-bAGuF(VPhyCRqAS0FEYx45Q3zWWye?%7uA^NpXM%ntdmxC5sS;Ss{K1 zIC50Zhg1M#K9=ro%a`pqK~`CBYU#x5))$VgJsZ?ts39{ z`qQgZ*}752xWN_J>?*aXFEuu<WEu64Q8m>lSl;+on%6Kt|2jG z;kQJsk^qImyFJ~Xlp!{DK3}h{e!jI1u5#OM%q~)G&h%D&Tuzv)9!!1ji@%-w$w2WH zkinDszkp>h-AO+LX1hM^g{JjE@&4<(Y0LjHJ-AxM z_ax6Q)wy`TBNCoXpLu_Hs3E9MeX$(a7OJvBczlCq0qpSX^UP8_mWKleq?qHg2Nby5*{rvn zKcnp0c7cN&+4N)BQ#YmuOm2l9)Ty)Gg}7)C?2>q)!8K(r!_}>}4rfw?yzyiYpXoHO zet2Lx`#AM_TGUQj>yGP1dt4}g)z6Hp`*Uhwm`h`$oT>Io)UbJn&n*xRO~g|+UHBN8 zPvjaU6VpiD!rX?6gL^xoTRTQ}_)p<(YLV%)-sqRN7EZ$)9H+rX)&x}O{Z3=ln%{Od z9T5=77Tbekn-mQf64UY{nyUe-TBTg))ueK^a1)G3MTk zY8(+24vSf2y?*D0suMFV!4a|5%^M|WmI>8kf-t7s30X1a+xY=%$|rGU&sKb0lY}%i zyE=w~Yc(m8AJQ%Yfznwg^J)YeJnc2S-p^z{>)W^I=8%^9bVdg zS&H>+I-ezMV@IVw@o9Ba)586gDw*0TLaP+-p~|cn!4IoduwTnt9^_~$C)zKP>}k}l z{Yr^48aoSNCi)v6^*baItw6YV4J6AHi}JtMFn{DSVYEWbVK%_oy_{#8FeJRgpa^lt z3gG`6Fz~dKykL1{>rZ*|wSUS4`EzS>{ub%mr;I-&QtYS3^Yl3_{YfZ;e9D!SpDM)j zrhLtF`$(0oWVVZ~)B=L6!cSg-fIQvcUer%{)=| z_B~;TgnTJ|s+Hxcu+GVfrw2V@5&}^*c*UrG9Fu;I1(f{!kebH{+vvbBwO*lFY^1|`X;2qdP0k_ot`K$Te5I2V}WmhVW1 zAFvt-#-UL!J;EB|h3YCifKVytvy4)0V93q30D4eFv$fr_!gjX7mghx4s11mv3Qm`E zCP8o2uBv{?fgy;u32*y=6$j{e+cM~BPt9?$c;JP@0d_OoeZNdF>SKGXRKCg z>BdO+*|%CJfq?`sN)m)QX7V~f&=59WD^DbYM-S?thWIg>Vn7~hfSy)x88zmAF%^uC zLJ?hBfek(1p(2fKzYa)sJHie?9)e%aP__u{Q$Qq~`uc};5GDQDH z0SP*NPaXBBy11r!Y<%>-8hGe+)!X<=s&6B5*1}FsS$OqW_b2kyXz;waCx|-o=#Bly zJe0iqf@!9Lk?(9zAgj7SAz58GJ_$7|_5)8ox4-IqWxw$4R-p(Z9xL>!`5Z!B>MBYl6|+d>;d{Zy)tm9cgb zmXkX&__-%EVwN$cxpX_q#2{i^*3#v8yBFr(Co$ZZ=CJ@0~ovVqsa93moVxtm+JJwCb@FUBL(h%RbEXXNoR>dz02T;x<-6 zten20{>!&NAVU!Y5hq(2Vm!1U1kBaCgP9+gWX-Q0IR5p< zJ#Dc@_2E6SOGmjOa=mr4>p}xB(5a4T%NZ-b-KRaYTzVb3#mzjEkQCkxPWt0 z-$|;vzpJ_({}2_w_n>MSZVt+DpQ$&0{l`+W-PxuqME$x~Na!F`4RFj#|4SD;yqD~f zs_`4XCCf2yNpL&jiIwCf6Fw%A^JSZyoKG)V%fKRe#6`q1aKF_TA|d^CXpMwS?7^z` zpko*-qvf(^$MHZn&S~SiMmUwZA!XwiU2PrHV>Qx^AN}aneqcLkou25wAHBiuItJ+~ z`Qbp+Nco1$RaNEY=Tuc|N1S`*(6w_sm6Hz>O63UM!~BE(3eshYJZ5#y>tV?kNQUNz z?W;TXI!3WIIZp35yV74_D%mnVwBWqH8R$>~Piv-;o-Hj^j{lqtAw%O_n4sNtMkQJT zi8I57t180i&bZPjSz+#puhSfAa+qL#W?SSucd>PZV?Vlx1Gr@&Q|d~Y&5LPH+nyt6 z(iDyO-2yK?iL1ClkE9IgXE>;>NX=`H@-77YLtasT_|2KCq(-+b_zvXyQRv@tiikLw z6+=lLhQi~9i#L}DK@;CfxykTSU~0_tN<#;Cr$k10*U*Kp$mfP74t1Ezt>LCsI{CIR za}HI;^D340vsWu>4X)hk-mgMQf2gm(2^!z>K%Huf*#elaKH+!A`S7%KubYFiYvzj* z+5harERx_F(UKF_BGb%6ZFwW50$>iEQQ@7tp61k&OPwAc>c6UzXU`wTEni4Nr?4O@ zSN!_#Z2Uuj7~wT^BTco$fUFTt!rI2jE#ra+awMh_4fe49p+E?Sq%8beF)+DJk+Hm=8Ss9u?l-D(ci z&r55S0>i>@gaCot?`tL;fF;&6dDl8dEe3d@_69AO0UJqJq4$-l!9U;-rz2kyoJOf{h= z!8&$Dw$aFHxai{FSkY7Ke&BhKJvsmDj@qOYA8_q>9k<@mojHmU6|3<|T)JMeeP+z} z=y)f`8l0w_lw1A%JEWGSTuMnkbHxB0!iEG6`?-!TJ%tBKn_>nV`4-uLin2sqCtH)u zSf?_msldk6oOG~qZf6?HVX|zo65xG2>;KWWjU(si9nLwO&!CJYhzg?@p2KkTm8#~- zbRgLqxX?!rg-#11}ed0u}nP_;NRg=(@Q@} z_1+`Zr7yEJnklH}kjp`I)a$Qf0w_FBkb(38? z!ep38gIL~`CXs_jrWq@Yp5PWF&aV`t_GJj4C*i4=>(L|h9>&?Jgyi^2#B|u#4;ZDZ zgy{Xlf-E(fPw?2>*0ivGMxeHc)vtvP{uUx|+){oZ%B4@j)5PsT`jrD#olpBVQ;BIP zf;a1O9!K@!Vcr5?Rtr2UfFruXSbw|mGQD`)aX?+uxVLdc8AP)?)BMM3oG5`MD|Quo zNu!t<(JlYz2Uws3pwA@6!!ZV&L<22wGVvIV2HnlEB~^dX%q=9R=Aom7b9gdeG|1cf z5!>nqV@xOOxkv?S7XQ#tFwVWtAW&~`Bw&r-e04zB_59s@(hSwUcrrO$79ZDfg4mr@ zJ071!P-1f)q4&WVhxwKPhh5*Sp!kORn+^95x+>t%w+TvGvK$W&`xSx>%L=^i6A%4JS~hFj3kW`bT0LX#^5A^2=#TRFBV{51 z>H*F&^^~6w^M6<`aoPKjY3Jz?lER}FVp#qjFiq`?Gf50P8Zv^4c03LhL~W;t<&l*Z zJd&X0?A42u_Mb*id6{kGnXX~r&d@4*^p&bL%(}-$%ORHv^@7g>JJoypy^g^ z#xvVnTg`(y3(MiT{AF&I0(E}0IN!#0(C<3EPJ7x~1Ate{50jraK6gR)YO4vB9($L4 zhGk{J-i=jNbM;(l==7nH>HX?|=NL!+kP#FV!!;l4Ud6Mfjvij+o?3bOYP7wZ(^p

QEtVGGU;EN&7IckSa#5kkpknWPdr&)cR%ugf`oW9P zlP`s#q`+R?%LMa-Fr%)2Yh(khiBzjeO=ovHA98iA^D933(ECUShjB+xg=0VpA0>`^ zT}E)+3O5>rX}vo_e9wWIE##13iqB$3$Y7(j8tm1K8&8I1ducG(frZ26BRsnq=OPM( zjChe2M@!c0Q^Ck?(*v_15&=;$dJ)}V`HRAN?!-KZ?M+n251JZlB)z`ztsc!%M`@PP+TB{u_^8fO_>Rk|W_fp?Pc5n3u5k{-r@L#hf9c;vw<@gg>HlM(b zR5jN^$w}g=OP@5b=sSPaoCS4O7%K5Wa5@g`hvdAgmH*KHPBFoTZVE$(tru#4zfy4C z{mzZ6=lt}LhS(VVc*~0Q7Uh^ta1r^<0+HlzrPD_C|N4%WAU2C(+5`_RO1`QkCR4NN zGmL@8*UFy_&v$pR9m~5nE;2qjuYb|JZ!7Gq*%pu5^Q!=R$<_YN+nr?TW}g$TVjrC>Eroe{gVY@YF{QEE7L8tpwZ0X@j%yZ!ub?n5>lE5a7i(e?-N(4nzT5@UiH?tk??4WOG(sy*U!#d4lxj@=IdJL{Le zKn0{6S6$PH9Vob7-GZ-EWwi1RsLk*&RO*aJs_A71NM_{QL3+Ci{TP3}mN$QeAvWQf z3m634#%Gd8(+~f&$CuC*pQkT2PG^%vy&cZmKRVY@KVWqp^=HotCCb8!FV_-*pFN_v zt!@~5%IC?iz8^8_^ULb*r>ykW#QM}BafR7ZCCmCgwUcdDCaKAOlNv9{?nFCCL7~== z)<|#L=#;KKZe)>7qJV5eK9H$4gupsKIP+NeU$~+UcHwtx_PeoChcC-jhOV&-%@n7) z9Y~b-+KO?CusOH2fcs@rkN@MEdzIk}oqhQE(fzQD=@VUeX1N{78cv>dpfK)`KDN3SN6B{I6C2DTuJ4V7zb&99}jpv8-=b-r8US zi#y(pJz}u!|FZyclHFDs){?SB#@z?mUCj5(hr_Z)^{hSH*bCA-h{G(hYR?#&oa6-u z2cT9Fl$-aSrI-@V*;~|!r0}&y;gw4ElJghkef5n49P;g@feoUx*obo{wmgcB+KJKJ-rO{faX4z#O-T14P#Ch&&R#vGhr zryQIl<7G}XkGrn9rkb9`sP6r&Uk^mO>F3=J!1fP7Jn!PmWsx-xaKW~|{;QkG+dc%_ zq#s)-nP zk#5{NJ3|WG3AhP=W&#K9TKT2S#kraS1SK~^L|bpgEWY9Znbd;B=tgd=KZ+GVIqWU2 zbf`Gr5!Do_TVp}s7}hqu@taXmuT&%~koBf43UJiDXyhe&GulGcLJusAhYKz;*T#YI z?I*fX=l^fr@r(Y3dF-bvHree_p_{07aV%?_c_dRFcm8ruvuc`ky2{f;#7W`)yor2< zub@@jyTzJ$de!GKNkpfH;e#}tq;b3qLED7vuiU*uNHA2IY#H6Jy^11yxfz7`x+{XW zEiXuQk8xR7N=Q+-!JUA6iCCkXQk-|?tpwY|fvqI)6w>Ng*OwgM<~)bT?=Fb5j2DfF zO@}5 z1;1jGT>Tm|eVZ~>cH$s4R@VB14o_)}4->08(|RQ^t9Nty%300j)^=Voj;j49Ljc4+*bh4`UARZfWf+;_Q8T(3 zosP}^1Qyj>r9j4z$&R#=j6iFw){xvGtrB~0-_4n|qU^nQDROCnKOtaVd0C`$TbJ4` zQe&2kVc|&7=BEI#5cV~+a1A{Rr@pzJIzv=uz}M3b2L6DH4*IFP`^cKJh9h+?*iBSB z#WTG~s<&~m#!LeLoxfwr;sPxmXGY0-IKg&;r;-= zQ7u{QYT(a|M&>^h48A2tgGfN0Q;WAl?fX_cd&B43{AJ_kebi^I*Uj;z)4zNf5WCUM zplDtBAoU`q7#bJQy0D9Z{A{fWY?U4ht=;@sblvu4#k*aeO444RTg}v!!NTSG zw|=KAoF!RIsY?Qnjh?Vq+%UL~pENx9u@=clJm@P2jsYOVW3)>e4i{@WT8DV(1qs>4 zj_W!tA)#Q%Cj73GTVF`Tfsuq7c_QtQbc(CTm~YBET&xAt(S?!`*f3gnHpFz{IVz6$ z*s~;G4+wJw0$QJ33oW5Gmkvd`nF_CRO;O9?nb278fb4ImUW(P9H{o(De{7nwVL8o* z*U3RyfHjGWmX&S}H`#b72hQ!!EB6i}-8;eg=Jk?P;(?5Zwy}hJu=(l!T&wqlfF|v; zQ6EE-*gP8k!>wEzPrmzNz=7GBi5f6Kd}6#8)mo}4FI zm2nx;&$e|f=aVhf>~%Mq=A3&zWStks|4B7f?cBTvvTPq(-b}uU<5;eB2)w6ZRndb9%IaIF z-p+D6qQ2tm=UA&ThrKaZc0HVs@mk-e`7eHY>F52uyyxGK@T&v^D$@{* z?i#oMv7|3S_{bvOc_0khgjV#gj(Slo!L7Bp8+jfVXnA~h@p^qP(zB84I8xbA3k)Py ze30!ZbaN!HVL%7*UYXE1X*W8NC3WtVAD8!-9g^3Xb9o(nhF`NG6GRNX~jMb;bpH2#+654m{u`5e~RR{Ac8AA{}K1t9X0?% zwVexLe5@&f64q#vl|uG59OG>Od)O3k&>TZh4OI^!2!)9DGW`7$ek(>r0U0quXvX&YAFHk5zixK@)%V27v)5xIOe$8 zR_dU{S>mN*1QGdWrSTd*n^Jm!WTxva>K~C6J`|t;dxusT80*~fni4Xs!%CR#DjCqrX3{?5P$!lU{-a~G@P+FC_)S1#*R8)f ztS!}EGn|KYqCiN%)i6UDrgzKjJ!RnQkU*wu38TkYHWtsN!D2@kUy5HCmEQ-Y%(f6R zfS}FDr$tfD<#G;l`bVNcyXqv`F_rKy0i|3sSZK)7ToFzz;bcBEv z6oLh{vl?K`e~KfBqb?fP*b;xxm25Jfx;s6oV;01p;+#~mc|2{+JS?QSHh#6%I=`O% zD_X7cc|CrZU(_3p7=3%=CSBq-TuswJ!7u<~0X}rwYOciw%l?gsZozTZk~MgD^}pIa zC$ZtPV*--*M);JwGRXQw(!XGTaIPh&PB2zPKtdByF;v)e7l{Dj;{j+wx;qMD&7jb6 z=NnKyXLMH*-pA+YMjD%zqxP~p48wst;dizl2>R@v(ZYEo<)5F3Xxmeme|vG(P7?e6 zG;;W1ZGh`e{(Gn_^#rdrUxtP8OM6r`IUrcrXl9|Ixt+sitbdaK%Z9|b1J~!AA7Uw! zuY@a3vgX62A)k(mvh^@+ghg5%(*@q?Xk=!sYdr|Vj`RJs;O=|C*bd2I`UDmX4M&d! zcBnO7k6SNykK!G93xN<(!s0{j4-T^$GPAvL&cB0N@?Wggj&1O(LSGiYBY!6K2Cz%uNCsdEbK`|4qhm%b|2wj9fKM+lIj|0E78 z3wFgvOp3HSL$t{f?PI8nBEF9I2y;UrnO%II4|@+ix05&PmkgU7uj`FA{7+Zwt1y7J z6c_`BAYDx8DHjgNB)h$Aov46odAE=*VMqevDHWIL`-*`- zVj3oEGwPpWCQ&;Fc)WKxQn=dxBS*k}$e}CM+5IMVrvY*44d9G*w`yc7?7gMAQWI-FYGv>J z%LSg;Q55Mjd0n`%*E;%usyDrFdHy^QXxdSNBt+^~V+_jt%NVz^m*}(kjN-3Q_Nz&M zsxm(7`aUq?@7$vd=-CDlrwTY3LAFzO4nY#{w0AupbPO;#2E2IFqY;#{A`}xMXU6U+ z!D5uKY0~qFoJd)&yBXp#@AiPR2Ee*UjS!ejZ*xY^iGFhG#&cbnqxL-&=rEQfVRWO> zY}(#u)7l$r+Tsbp(p1P9JnHsSyNo6nzR}q@S*aV%!sry0y9I>fBkl(X@)pgM9Qr2h z(j#_HiSxC~M2V9t&WbPe<8Yd2$tq|J{_I-F*_StU7$LBu%tHk4EKZ_V;;XA*t-{+k z$u4tn5F0ZT?O}f=;{Ii=U^~;om>veRu%fLM;Wx9bQYo(_PQfO>7CaDtx`@RsvzEhv zrlyJf!2G*k&sCzb8m zK*lm8159l8eCOeLd%oq^$(0b+9r0w8Phqf(w&IZMnG9HaII4Dc;A+vAC6?Ic&@{4SGBXncGT z>oS1uA~j@q^&+_`=-^vCR#fx?E7nRK#Co_^J@_^n{;3QOb!iP}Y8lX>225&0cKxpS@cB~BE;*LL(UHi|L1~B$Y$7L}{gF7g z8g%kfAj0p2W#0Oi z4tr7kq`3qEB>*Z%kd?+WU!S5J?b4BPdj67&FE7Vc%WHT=M===U`vJB@JnQappM**Z zVR^a7iOWA|o%f|;D@Sc}uQPqeNXq;%9)S*rJN%r69ERtJoDmi+GPp7!;XArQs%9{1-OVw ztoHLOK+{lCisG)j)#}YOcrCJcB)D+X*DWtQHJ1L58=kKZy>AnX!GI1|&&Tz}8~m%H zOFg}w#p^}jsM=3>g-_}Ym5ZD=B){PAJR)0KNPgT(IdPA_S|TR);;Y)YzuxYbN$w%7 zYIDQ$uwpgMo#?b5lOORiG<9oC@-BDmopeZ`NMOK2CN0@m!}k}@1%5fcq@M-Xh2ETc zQH?5<{&UHVA!n#b2uHl5@*>I^>Bv|6XAl8Q$!;+@<&G2YB&RekvLf&grW0X{?)HZs za-9{B`H^=1fneAxF=1F#5pPkPw;4k)h^;!qy!m7M8=!a=UA8Gf7zaUc)e2A9%6PQG zw<%`(W9(%b@uWaj1oOno1gtN!UJ3GOo{xjK8yn_mD(y4^ZIci?oNu`|{OXx~Xj*PL z7!6fpr7niJTGK>eTwRk_XQt-rk|Yo*VW0&)Pe!ZP&{=Mqpm z06~L^I3aN-D+9^g8Vrlbj13ZMY;TgcWIhw`Q%TyTd{Nvuy5~FeE^Tu#Vo@Rn=5>tE zo>)+uy#;DLuhD#TQ_%#wInPLy)xIC$B1O)socD6#_3lu_yu#~CkJ<>-XY7lXUdw8` z_Sq{KeHKS#AW@H_KKVFKL8xEF!-Fss{VPrkh#fSX7l@bo^1gYFcS?SNyCWUjsIXtZ-F3gUDUULgfx7CGRO z51!U+kI7k$U^U{sK2CEl*>;Lac5en6Vi{@6QE`InZYICC6;DdZ`sn*wj9|t#R0ftI z4FdNcgKk9{V^Wo6>*m4AH5>DBGr+@s4;br#C7q%Z^SVG>D9qe z*8PtD8;}D>-%yEXT`-l3);8=yG7y#3xANQ01*aW+`(-oI7;X}{t)FXgmR2j3bZZV{FpNHI335R-n^M zZTih1KLi$@01w!h1kn`0D3CM zLk|r=9oZ_iz*gqPx`J2)C@rh?(sz(1KWP2>e}} zyRM>%5j$`0PLJcB?m0SmazLCeJdkOO%Rv}*J5=jE-wFM65EY5Vka~mpFy(i})UhxO zRfGRIWY&m)EJ>QPfm?>~xSSi)7jC zrh#^NM?UCAHo04Ul23H)CRyuy_F`B;O}uU!L~ed`$;vr1i(4p(LZDI&KHLJ z5UxluWb34BeX5S{KVFOKI zjjU-RG9_>7f3INh_ML5DR{dh7Q5(i4OLq!TBzH*oX)B(hgMW?Kjv-sGcK6p~alqd8 z;_LI=Vwp#YlkB|W{l<@p=RYZ}W9C)tV0*=`V`~YX#k?Y0MBfmRpMu1{J7~fj z8_wIqhm**tn07Yq}oKuFdGi6O+6fuLd@$M~@QSua<{@ zF3Nx>eV&r}?+-sO7&h1?5BtscB2&^{QT20L#bS}$-hxYM_caCJo1cU#yJsRFB1rkF z3+>0_Z<6IHN(o;lh3jwQH0ku(XwH5$G4+=@;tME4#&VHm8;Kwk<-bqCVCfVE)NoKb zy=Q0T+z!6#?MFVjYY`kxh0I`F^L|W1;j7B#S57h82q& z#E)8l)e9j$D2oNvuTuqF_FXKcKD)PjVtl}7=tFso zmJ#TP-tF5gBY=JF5fZ7B6yrYVI@s28Zte-^{!mb>7f};uf698;IB^r(sOyBYMS`xtjENuy$eG(#>TTpZ7Q7HZ!~I|>9(5x zb^x5{o;U-~6l25%j?3^G5-f$pPP)fAB1I5*4kFH8RJjDM2UtEh4otO)rkg1#yS*Yo zIfF)zZkwOouC}%v_X9j{JtzZ)TN1*pv1ImK?&#u(h`;svldkPvf<(5qw-?#-Nj{&_ zx{d$EEwukOSC>we{mn`A{BkxZLC0?`Y*S<`Bz0& z+?SU<5Ze0Nc22k;C~(I=D(#%~RJ~J-U3+8yFO!1rcMyW#05lx$(l775Ff6V&bzfeY z9D7zG7y>s{q}LPeCqpSWY~x$G-}AsU4K; zJ(PP##e$JH3tQJ&aRl|}Ix}-}z=DaLU$2zxWZo1&Lsy>~45k<-ifhIok~gm7^J-)F*$tGo}hxt{{cimea z_Q2wI2>^Z8Hxs5W$i)lZPPT9a(P921W=Cy5=UsNpP$ZkWg7JCfTTPAPd1+ehQ(T@~ zg{?ct+?6eT1Vz~CDj;2dI`N>`IZ#m8Y(Iu~AJ`q?;qR3Y=RGCc+SiI7FmdneU18ho zoxKS0GNrh6a~Pc%$r#+}}Vw zx0<;Um|~w(Czrg-ao}N}-53>;6DsHqHbaji@3XzCs%zj_Il(cp^tTMMC}Mm!>rToY(ElragXbprH5z>p2Nrz0-w46 z$^LDqcBE4YfZ4P-MsIW}rgw@;hn=sP;i-Jd+w1Hn`kdPG(4we$z!%wBLiWgK+HuPL zq!pyMY+Mti7^xxdOA(>3M4)LYVfBsZho1G9X=U>#g_B!cywtO#W_!3?&~BGV$D=v= zqVZ69`_FVklbaMO}K-E~hju16rtG7H(9!0?^(ih|Xr@+5u`#C-{e*rY` z^9z!glt4YoQtcMR-UuQ#jo>qSbWYdK85rg4NN(L=3G~_Dt@QIBO^VQ_K!k=G^W~Or z@#Ho1E|=K80azPb$XNjq5?6S=m@nOWV|y?%=_2HigI2ztKP8s-H>l)(Y#+`4*vst| z7KE1h(Bju~3SP<-J}g7E5b|by6`B_~J+Ab=p<&t*T)$8Lxc&Ql9Xj22%00Ld>c#WU zKY-gPptLEnnmb!Kjj+^N#cE0etqS_Ps>*dXP?uc{qCR>%4RWG#PPisM?@=Sb)|4m( zW8)$cRc$X|*&rTOZyqY;cd%Ry7APhoqM0}d=37HWT<;~go*g)1n3#IJC%@tD2xzQ5 zJA@|b%888?&t?wb#p2TyM3@%#HYW7L7u~0n8VzMW=XU}ltbmU-VCUYG-Q<#`4$LkP zM(BwRij$_8w2+h}YB~sRb*XwzyadaZWT79Z+<&d@Z1nDK8kw)3?G`&K&pM|Dv8h1I z?$%YA5KZ%i*1YX{ZvN`A`rycV^Voi9=XdA+dMH5bbb=g2A}{+ntmj%9<8T=g;23=6 z{2lR*f95|T1<84nZQ-gO)AHF~JdomqtUaFHs`K$;9J9^)>z~Rd3;593IGF`>@Eqgz zQa>y08a-<+anzGL5h7PAEo5FNKF9?H^B~{$tCDXwf6m&UqB;9yRl!0(7vNh0?j# zPJGqnR4?My^9Lv-_+SSTi;=?|%xf>_ce1txrN?Ha1Z_w)4s?Wfn1yVIuyn~U9L8sZ zDUCiPRES9mHUbmWtMtpn-pEENBf+9e&@Tb1BJ?`7vGr(QxW?oj6y;qMcW%D9uh4tz z$hP2YLIleIx_5u#v{Vrl4CmnSE0iABx0r0+7i{=bMqy~{r*WbIL_86hyM-DOu{VJz zA7$s*v&a00F*P_}qD>*{Uo0j&wm5nga2qS2L=m9i(bd97wp^PK#hBbb&TAz#?MB^b zBVQLZwr09n+H>w%$@F*&g-#MT^d=IRZqB=an)uSn{dk8~63~~C zf7A~oh@^hdp9fd=ne{Lx1b@*Wv|?Ovarwrd-}UH49m>p2EE9z)dN>zf;_+K8c;sm&!oO|J{Ve z^bh;SQxH3OC?ubmn;(Ol4X*qb(o%Xiy$aM08l#eF>JB82{F!Nfxb+SEKsW+-7&dw4$nG<729{)K)>y0no%A_{1>(IkI9 z4(CXp;$Csdom}Tlr}?=o*-8;!d%~#(`&y2y*!nOpklt>Wd-7+Gy{CV63AMFBZTwU%ph zi_p4V*?`8+FmSNoSVx=sH-k7)_}`kQZ^gk&3yGMjsGx|P_c$rv8h%bJ+-<7Ul0rkf#L4Jq2zmvYcDqc_Ee~OD1~5D_jV7n#Gr{ zE54xOlTltLI>>*vc4B7jIiRh=jZZfrJ%p|>FZ4{lM$_qaZ&4`c;GUB>x#cE&=o2_L zHF2dF6@+@mE?vO3>n0S7M+4cnIHk>+e-8bF;Cs1Iy!(O>QKuzM;f-(iKR>N@kKiEb z)FXetL6ZL1oR9Ne&tJ-Jx!YM-oH3Bq!KIAh3ajbHwHCzfqtaoV8x)H&{$1vW=QOb= zWvi1LQIK?FQl1c{ZMak^Vrrkp-d6LQ5ownBe; zvp(!DWz&;_mBTBlVw!(f0lr9`badDPi^BsIs%b!Vd2 z#_MILgXeuc=8NEOX|RO+EQF5*Om|Dy8z$G_|3}nWaK!;FYc{xBa1ZVh+zIXwAOxq; z0Kwhe-7P?XU?I4>d*kjj(zshAjSTnBdo%yxtXg%dcI^-H^>Ika3Edlb>`#xEi} zQP2ap8sk>0za35scxT$Y`Ap~&iC<*Nt_L~X+S!h1fZsB8?7HEs<6EKbvE2}CGL z3Xph^VuT3=qDZT&A|j`5?Fbo{vB))loxqwdjM6yv*sXoFK5kk4cZIea-_l8Dzvl_^`k2Kq%5-Duwif?+TY?%@P%YK2 zonEGphxS`?VlK9BJ0zYeIXX5D7{eq|0e;vSP4PW5=}M;I>Hf(k7PY_nTO+9;sP?t>q+oo^x^@336G$j!W|G5WJ0CH~D<^n+qD`bBj(J+ZP-!7g z+F@GRWlTd#l1=I+2gA37;v~pfE|pujS=~7^tm7$0FU#(BAU|449vB1wvD!GhaaL>m z6$tXRGu7S%4-dt*1(rHc?QvyI5aK^8`1y&GCo)me`*NuB%`;U`+Eb^RuqK=)vBW%k zk@2O;APuZ8*M$ad&S;)esK~5xK4{%`EIEhYZop&O8MTi#$8I%Qe?HMQO~`>==)Mvr zG~kF3^W8tXjROWVX`(+oW_zw#3cq2fiibrd9SGxf@U@7!3c1Kq_=`eMA&~Zqb^oV1 z$_@XA?R$rd4(Q_9<2c*XP-di^tP09Rycb@ZLKMF44jso^YUd({Dc0bBN5@pKplD=H zB(AY@gO`0YQL?8|(3J|$5>~yYC4e&3G&%Y8mtIiW@O0_N*>X}`?F*)VytMm%u2OMC zPkzs9{~UI;+4#J_o;^M6ec@xMUHQ$`ZfqTw%8XSp6Q1yKsFJm7CjrV$zjTJ}3@V4^ z!8~{VQlNCEjNB(L>rz#r$w;&wLpAS@&?*I3AXzHKS@+>g+@%I8=&HrV-RX7*hgRT( ziQhY#%Zl)jY5@88l=VJ+2fDsp;YY)Wd4`x3QHMMS#faG~e>K2Bm%?RXsPy$<9e}f5 zWH_CeEp@vH{`JRy&!dva?KBxW)P%<9H@r2zT;81I@^-=8@-!gncuj^_7HuLSB?8O87%q?5FH5m5>2U1^->za(FLk@_a4sMLJp)i{OM2 z)A@r)q77TF6oi&2p}yMt8hmv&x;yMuXa>w!oqwj=_2XTJ96L5F!Z|#ZKWMb{d(dd3v@1TbHoCWhCa4hOK|-7>Ua?rj&FU89 z7}>4WC?^C*i0;HyeYrZPF1rjD*`C>cpM35+An@S&o|hx+XYVFa)w z=T4}pYho`$G9P28HoD_IRNFE5ukILcK zsNVM8xCi$*jrm(LWt=EeGNmdO&L>zbtZs^-UP=jgZn#@u<`fJ}`C2mDW# z*L{D-#4Er+QeimjX43au=QE1McH}5BY*T7HCjKw1T*h0D<|6|_3oLQOo+0+u^G~og zW^QsiHh*Me7)^1xS&uJE`Ssj-77|ux#EGvmvsq($cIn%jR2h&uzxr(EGp5fq^dcV1 z!!s}>?~u;nYBQdX9|kX(WGY&<;gR^S33Ws|*vn(HGOrifr5}W5-6c_*zkF~}eDFw8 z2YaIePDq7Ck;C2&-6U`kI1%Oa*5~wveRcljI`gJHJ*9r+P^&2@b?d-AA;#*vp6n>q zJ#;)XJj+jjEYX?Wxs6->?sQC7b&4G}qHz5zMx-S2;5`J#*{$hKU>)vYnmJC0GIAv1 zF5@YGPtRx6UEsx36z90+j%KGECH3G;pWT%Y8c9(M!ILTkJw}|s2*%^nQj!3(F-d|I zSgPZaw8JI5Drq7OtqLuv_R?Ic$mpHx61&NOzq6&iSR(w*+btOUjlXF2T-(D&G5ea@ zitJ>&9Y&V(5QWs=F32GMx=TW;X(*m6MV6SV6{L*?gda!o3YmJiPCkjIwwGmSIPD?# z-SIiUw>EG{&FIj?-0NOaL-=&QzjibNN;P)aRtE}Uoj2D>O3G`zB7)3^Pl+rRRZQ~Z zt;+`pRCYye0cJn^;JW>obl_di5RlpcYG(Cl+vf>NW$xov-32tivPDxcOm<}7^_U{o6{>ENsub8E$y*gVzmwI7Xh>3^wtGh5E8Y?=gS4 zor}`xpjM(_qQC0+C*A;l>g=vJl0RStXnJWYe&WPT99G=9PiL7E#WiK7?e9j8TQ}i% zbr)+J0}$kq12^c!AB40ZgzC$_KT|a(B~EQ0X>CGTg^0TvgL=61x~v@pkBO)x&i3Xa z-(OB|@;x4uQS5QFDy%EbC>3ND=)A#kY`F`nG)APP&TPc}*LNJA$$_RQ6o1%V6gi)d zTk#gO;xsc22v4aHqPUutGo*)+1g=n!+vAZiodeIrI6WDCuqw;o@yD!uP*M`} z5!~5z`}6VXDB*F=_&8qW0ikMq5s5+iXth`72%Y2*JGn?*kaYHQ;5d`qfEMam*BL|> zW=}?g4eb`BD!`v?ymWRtu$IKO(Qcan+ai`7qk!oT0bf3pUleBEkXO9;5mT?=^S=<~<6&dmQV#&(R`$ZR~ z;Y~>hC0yy*Pde2kw%Pmj1K6lc>^f2#yqGVtn)BQbP4AC6?~!{d9? z@55)59f<3Eog!6_OrOf)RxG93rq5zG)ktc1df?e7C9s(`;(5a{Vp31MKedhbrFtor zh68Koi_e0BAa0yX&mf;wP~zri_3F!C{l7Q`XNHS)N+t*MCq}3@xatahBdVthP9kA( z$@ZK=otoWN<;YUDQmFFW4?)vllTz60flJ9^$_%8Q9TT{?QB5)1u;T|wN@BOj$+8$f z*98>H$9mCART9^3XIaugxRU`Q;Vq0@4BV=uHm^T~{Rtnvr}~hZu%I&zh zh~e-=+S(-*$GDl)ci8m5eDScS^nVyS>+~>k<_^{N77v2y+;#Mp>>DJ^l{qX=?gI>Z z=Ks&c;+=fcmNs5usUq(8Q2DG`HdoictYL}LvqaqW1dI{^LGXsyr!{((;S&Vds;qbj@Ob2 zZ@wfX0gIkX`r0w6I9A_t_OxpobF76;2?Y1BMXm%*KP5BR{Xb*av4%-2!pas5<0Ubp#K%5Xe~OKiiV?z2e)s;Je>kU!xm~N3*UIm}3@KhW^3ekbtQy#N%8pxiABtP*CaxtC*%^$in z*GJVI^<1DoBo(YmkI@SUS8&4|qe#F3_6NB6O*y>|R~st={4WSRMbuu~0jU0vENgPn9KCcRW1{A+qy zRYqjGzkJ})LzqU_(xMD`$D|vf--~*2W?415V1Nx;S-%nKA8Hu^Sq6yE_k0uImp}eb zT15+r1Jy)xKdQtb&ABPuAFtca3JGTq3hF`ad;DGY0N-@A1pge6=VaH#S;x%Pop$GM zH=d6@sD1-fjUiv(sOvP?HU&9gU!D`Yj&MBR@gS9pZ3ks&W=AG6cizMRsO(O6G*J}zigY>%jxc#Wr8m2KLRcK*;K=*FUn~sOT_%nz75~svtXISKGi9o zGP|`6Vc}haNW*!@qGj+<>0!2htgMxV&amvyl#B#Mh(JbE2#~B53Ut2_GyTNo=SbCB z#E?T3$4K(Oy7(%inwfKrRYC7PoZJ%}RMUHo0&K$H`MWsZ^oJ{0YyVYnN8!`PpsBj~ z@ODT%*5&NNE{~tDZEUy%DB}D2pyF@Y+o0oVS>H7aLMynb8ijb ztEB!ocet=fq}v)v@{j(8wk(uoBFX3NC$sdg%f45m92EYK>YU=3>2;raYYKQMkIGVo z532tdBJ@$_6;%oFJmp0gdU-ArF5SdSjCmn9IWwwc$q2tbaI&^?EZ!I!R-mpNT*h9_ zHss(27qbnLJyLPX@;Voc@?uMU6VRD1;;4vCAz&qJ2F8saua}wtDjJNPb77rNs7@b( zmR^m0cOpKNo|5ZXJYl2t4&+WKn>RGJ8R-*}uEGgtQ(MTrPwD2YT&_I7{!s-77h~2b zuwmu3nSJlq9Ad#V|JAIX;Z3wh$Bzxhkwxl2qm($w4r#U6GZk)C@E&d!Fc_oJC-Y>e z?9d7qdk%XakR+@>Az=+AqWOLtko@t8a8)ti8>s>&Kz^LjTzEiNFJp^w-r^nl#vdN% zL2l*n@P&0qXpef>0p8!;=dn@SUVQSs*99|x+WjuyLE`G}*PRYOQ@g{_!9{}Z_^#)O z=l?(u|3!#jEu{mCd!0z5V2+El0e(l2xr8nc=tIhIGojJ@>^JZADWka?I(YH!yUJ9H zGk>)t=e##uR4Dwur+l=|2J!C`?NhTi_lv@`QJ-UMI9Js^b?0l zopbhkTQE=P#E_eA;AbL#|D!KMPHpi3@!j9SFHt zq6d3H~DkIFY+bCd^$<7dJ+el2YUGtqbSg*+=B4@Z-qZncSF3m zNgcPZ?jj$+aQVw_OjTvZ(WF0;mx3nET(F{hhxvcO5`R3W3hCHlyHWVZ;C~!*mC0sQ zWhMqQ)a-jpqV*zT?OKjNc>d{VdXXNW=K@Jld-&JCY~mp2<5hS=sOC&d8{18tQYua7 zPB{Z>+N~zGq$qDBJiqiU`taKF&5$@rB33lw%6xp%Uv6lcmz4u~RQq?%>&rhW8$yc0 z1J2G{?2e&|(q8a%YOw)mUK0^0!``qunyGH-IeVuEm|^B?7y*AZ(!azbs_6Yj@7j+U zX9_>}xqPj>vm-r5vuALH55;ZAiqy!PUIH7SAA^JGYK3^Dv4rIt+ z>R6{&j9ME-y@X%}7*E`GXl)XTpVwPRA{@LvLN z&d%uj0j4?%Su*Bw8$O5YTxoGJ7jQYLpq@k`<+=-crGta8WBrPsVGTK6{66e9t*|E;TXpfFGq;`pB^CU&&w zS0XM-Kfl-arz|%9<7jRz;8`ue2YTlqHt8{RgLzBn9Poo{3_L>3m|{jqOy$Up6@+B` z%J==!H{7s-v(l&D zuoKV|J;kZQT%nPJUF#g#-_4@XZ?9jOaNFg?mQg>nl{AR)KoCoK@T!!`P`+%K!Vt>l z5%8A6u(svPnDGms{!v1ghWlJAPVrAB9dsJ4tisdP_ep3J;Y>XU2Pu9Mv+i?nhn)hk zB{VM@lRl=(^;ucam+Op4jK}Y662|rKc&p&)n76K zBY6=CF_4`aUEyo+HIQwAMEVU`HVGiCEtb#AH7)96Kj_-i_3%De3JM*s6OFJfP-8&- zPY*Pgh22YEQ_J8vRzmgE z=*;N$58zc~&~%A1I~Ivp5vZ{|QF^#uBscu~!Qh8=b6O$DcEn_+Ks-KLbwjIB0S*6> z%63Qc!j@i8_fb!wBg6KbRfLC}s`J@KFZAQkF_J=TOdQ_D^j|Za)^v@6jWL1T6xz+{ zL+;d+XoVnWXeI?tnjn?8FISJ#$4&+>xeLHhqryubLraKtHaw9B;Xa=eS_ed{&5}Ezz#g)>DF=UT4?fLQCvkpeCGL(A-*zON}_96X-u;F|<4r`~YD zqv&-hv+PY?<9^}pZz9m2d-;%4!$2l_qjtq1*WgRW@Xu@fF*^ZRwr1~r(Ll^9`vPPe zjpw$W7BeC8OVsH@{GXGG5B0pW1h9DUw&5jAJoej9QL495UhRcWfi~jOHD~bUoA!X< zMs@@1GaW}8ZAvRLNN){B#e$PLl-$<*mw^jWqO~;eB^`%M4l@Ug*Q>-izr-lfv$z~X zcd2~X)qEt_0syB zu4UrMhS2zQ75Vb@*%a$bcA(3s1@7Mv9MvIwKIqW)awJZZLya4`#t^IjO%}#x=(8Yz zAUL_IGjW?q&(wuQ456OGVsxNvxNM4PI`8?7>-8F!}vE>GWCqh{-?qv{T zP+6H@;|E^~1lx37OQj@C0I5<|TCM|Wu?PByneVC|)eOT8tVepp;adbqwnn>u?XC5{(=(WJDW~BO z8TO0{iX=@%s&o=@RvmSbA1|5J$Xa+23Hnt%lT?KX(nOr^<1x9Q&QwH8O*Kx#Xl9`h zd62)^n)?t6R-;t&!=h72YOxL*dOkBu#dM^g58itPd%zn&*cBHtyjqY)4GV~ z%!_F8BO6mPT;s@S@e$CPVL`(sH6MK__hV`ZUb)W$q0=o&mT5hxjf zQ4Mp-(8@#tpa-V)*G4XjRS`d@d|w;sYq$T`v$wshphPUlmizf)i6}f0&4k&^-pzHo zoc+o5%zivSWqcRjcUJ4w{{<{#RI$p;4m1$14VmB*;-QBN9nIIQ>NM@Kn&sd7n|JGc z;vi_S(HKT#@rH$uDp!0gZ-PBp7r!h)x+8K8Z!y4bkHh|4&7qk-J#$dSh?^OX!H*rP&0tv-)|eC=)l>&|$R6t#f+{@I-eEYk(-f*mY|A`6TmJ;>^tA)DqIlgt zj?rDy0xnA>eK_20gsqq&F;oW)PK-mOt3+KjE$xas#xIxUzF>7b-(jstVV6=DQ3x>A zpPNhteH3J?XB(vv6aglw?UU}o=ChUMM25fPgLlRvJ^P_o@+fWq5|FicZZELhRBK|2 zcA3$gNtW002@ZWVGGRI{`rGZlls;PUWxuEy_9+Y15dRua=4c1~-=8$zI5(uCj4cj! zc}GZ)?KK9bwb+O9iFqvo9>CqO5p&J9#htmn-RBpza&+fiiOZh(3`C6p)Sgx`$I6E? zW`4&82552W(V9^B8QxrNf^Pj@!Cbw_6!o~Y7Cmg{0} z4PN=*joq(<^n8a(@H-$vU)VVJ;qUjTCewK{UITEwv`~>N^8rzyFPLE{b?W(>)O7=) zkj<=|!92x`sd$sy&{Ar#dcwPLCVyAQ`S_t9z`S?!CAO_$b~~-%&gu(I0mr@;lA!E3 zlV*o?w?wtF#BqdBKaJ4*4EGNv#lk9X60B-I^ci4;%uAx0#Z{{C16zeXh!*YDU{Lt` zLaCaKzL%9xthoLGs%*Frg5&Pt2nVL?N-3E;O*!QuJ$`-L5Nz)5C$TMwa#-S}teew< zYN9`-IU=qujz=Zu7O~2}oW0&s_g>I76C8j}Z9xfdn*3=W|3i(OMPj*#lO)QM6FClO zq&&D9>BpYc7e&G~<3QNLekyt~`quHU%o^|8jHb?$4C^^;zt#dxHIyH_8>`76mtx4b4W~ z8(sIEOAeGT4=-z=x1FVC&?}_=-BG{I!d-VbMjK@{m=&%o5Sloeh9bu8OF-RY36sd| zT+@o=$i1o{QamkbK;>F;E5}rt1|`KXhON1JzFnm_bxzax{?|!q?>WbrJLL@JZ_;HE5!gfI8!; zKxp&fs5&^v9);>7|ILc>p-4G1U2=Or27u)DYK+|EUk@6t^lm`4c*iJ*k+}*>w&GKg z_*v`Ue6}<_kzw+pBM`7!StJ-!IKu2tX#xJbCkOQ<$lw~!fEFjBVJdEGdTiY$!6Tqx zNo;4s{okba%yQ!b^{k9x3hf)$dAJUN!v zhxda&?#X9qJik=)Ok{Ql%?08|Llh##w(LfBwqRHIJu-Xm_%2e>$C2?MAOA? zr*T}|NG`S>t=`X$Y4*>5Op4+)7w)9dsd(4-#KVih@8Q-O{mC>)V5IqrziGPv^mIE7 zWk(2~#qmAXGfAuPhpXNbc9B^vhrM)novsK&8CTqw&s>f{flV#N-&NVXN)3xyDmW?& z0~#v<)>F(Jo2x-njf+pF!P8=HfnkqfSnc^-DF@Nx^oNgfYW5(nw~4g`=e)OGtj&(j z`*W6NZ6i}Mftj7V8r!}3d} zj5kZuS86x$uaVxOjur_yWI5TM6>1gOI0cyHwQvRgc`d1vMZSx5{?S!z^BUO%D{)HB zi8?5JZk0}A@FD;B`_tbzvsUBT134Qr9FBMX|8(ToJ3AliMql0`P{} zkBVZ64gF9;`i)asD$yW$(!9NGVZ#u+YQt3%0IgAy)UXZ?$Gy}ju9EdYs+g>mGqfXI z5-k(!AFL{c-|b}?l-;V(fy3z7%*>7YFYD9vyfC?~VJz;HpV;+reEbAUr4QRLF(KeP zXEYS*Iu-+y%SB~6u9o%W^lg7SPJS5o(eF`n@d^>~B~axC8&hxWe12KDlcj6G>yxj` ze^-Fna~YtKbWc#OS7df3zn7l3@?@^G$4B4$N^OUL*HZD0myIcL2y{mrnp!RX+~J*Y zUDb>1Tz%#&+&pfa=R%X>s4XIF-R{^&V1E9lylg`{NOq!mbXP=;oTzw0yp*8fJ1WVd zwJ0B5@JIbto|DtGc#>U3!{Jkfj~C8wanq8Q1>yy3Pw)`M$g0#Q0hVsD%nZ*FCZ6C? zMhn9%Nmd31X)(v(AB8oan+2@dZg?pe`-S->U}yB4kOe#2JNL9TOE#;iBSm$D2rwuW zi{t4V+zr|$rlN~c^%8ZgX0whJqeU}R%LepZ@38$`tr9VmtAL*L!Uxp=Y=VU!au;<_L*FkY)-h%JukEFSD?x*b#umE?we>}Tkn#?%EL z(KtV~-i3t!c1_*QMzWYrPOcY}=o&7rU{CKY&1D?aG>?!A_}qo*Cupqx1p+K**ABVv z-Gv!K_E^W@ zRFuIkMFA`tx=-(G4K0T2W#z#FcFcwa3~~}TyyTI4oqtP^kHb`MJ(#&RGVaX9XnUhJ zXv$#hU)S9G6yQhF-yAxO4Z(;?tv@#hbyoMumnzBk;K-C7gqGY*NAjc(%|4#F6*O?& zatHMf)2QSSbD*>A!%=(__qskhE7tBB@#qe4gvN-!&78g5gW5Wu6ua(o3nEnF_=cy5 zO_5G@zl1k<*$fkFcLWwx001;TjG}n|a}y#WZG3@KrOv*6nB(g~VG+Mc>@EWUCTw)y z4UIM5Z+hK9&hw+;hknR56h3`hsh#2#Gc*~* zjM{-nclK1vPI`MCnO;6u1a;(JfyV6$D9iTFo`A2BSt@A@gcMA2tM zX!|dxRtC10wX{O5GOVlta2w&#+EnjXI4tx-TEZ5kW|UalHJt?mT*4cs{*GxX^maO})D;#dj2m zLYPMQT~vc3?vg6o`EUkrh@?sCc9{U3szbPoOw0^pr8SxP=$7XmWP}DoW zQKa=nn-YR5^gyLq<;Og@d9t)M$22m4Xol%9EqCh zg@+)%$4D+BeerEk^*NNn1nfssQ@qIbueoJmmzVTeL<8u8Qtp}BOI9#c;q2$PcZ{u( zc4|P-`t3wb2L`_WzVK6=(|w@<+;Sk6B6GwG8x7}vQ;Qc;<*$6&&$W)Reef`A9p<4T zH=!;}pQw%*syo4-mt3a&{C##O2(PzJ&errDx{CM;B^r#SHTC4Ah%`&*i7GZUs(8o! z+@8EAwa3K2zAgW^d?!>6cZIzgF#zZf*vBoMSF?8p_TrWRKs2)p(CbaW>)_ej(@Ea@ zJ@$#3eV!jgfZKvz-T6X)ZUX@v7@oh@>fwHy5+ZxHp~GQ^OZ+o$b=GI5SdXN2@Q zt=COrf+%W3kO%{laq9J6>n~wH1da~X2OCotiu4M`OEld=4caHTnkqV1V`BX5?EJJU zE^u{R%lS^BVkP+0G^CL@29snwE)q+ESO`A(Ukv71Sm2@8STYXvPA3YD^v{lY_4+{8 z9wM|CcpVby4~r7Q`6ONgNp3VkF}R{SePjse_~d!(;Q9ExnylrvpF{Bu)>4GBA9sHU zf8eEzq`N}4thIE!6#=sG!)TN)qTGHBx{?R7$mKX_O)}mZ)mn`>#pQOZr@N^cj$Z#h38`r|2eu(0h7 zmaqYP?~O&iZg#j*53y($@R(bY(Ol?IoT6vX4ULdDgfw%d#9&Qo zlgGF9iaf3^KxR?9i0;al^l1NyLn`xqX5=W4Ae)U|yHQ}?Mk9TFRk5dqFe4+30=0Dk zJl=?Z;K*_x)pdenMr{fNsG5o{qfl58pCymZ8xnNig9}ZuU@Gt{*35Pxx{muY0$Hhi+(TcW3A8 z5Ql^K+aN97b_6&!No46TWUYEmLgUjFj`wmmjFRfSz%gJg1`d*B7cX=3(Gf!zy@1#=ac>Putk5t zj$@;7#Ks;;@~-D{92Ig!T}(WA=@_!e@h^(z`-W-XiYG12p*6>;3z#7UhOIRzphWPt zz(!a<^N|z#C8ORYb(a1SV3~$m@8#c6``jnp7wOoXz|WcuZB_Md@Af4|3m?`q*v3Ih z5ug*FsOe$bDPwaX%99n_GZT_^4f6@I^Mt`AIsORQN*^fQ=W_Fxr+oWRN#~b$L*K|i zAbzJC3~N_ud0*IgeqYi1NF-U9vDai!`NxlHt0qzi4N-kaO6ML8Vrxj~{4{2(dbi?sYzo$HZadp-D9cVgi z;Fh8%`!KNbn*_)evdIUoy?`@lt}H-{oy0v%2aesa^hnVNInL&vsR^lL7yez{0*`rBt?*^O?2FzzB0lHywprR`G`D?hGm`7?A}w z_qXf;^^cV&7iW0J&X^a~X$aPJn!LF0J!JbHGgZI_4FE< z&k?$^Gfir+5I1yb`1w9V^;|r%6hCXkn8jKj%1(=MxO9tCMYaStRGc5p{cLUFiqvh9 zbzEEGswx8SN05F-8{0b9{5!ufU=A0UAXKHk`c>C9#L4$*EEjHG!L^7qZtDPWABBU} zaTo?avpImI7ZX@9f22K@)J#dEP=)p$4`k+>ZN0O`I z<6a>Bd`|01Q|_`IH)VVwRfAvs!aDT698+X%8PUp(&O=THmNf$!HzT zWKcUoMDpPfi>6)Tr^uPnhwDaSKSHxZsLaK`;_f(7KkWPmixDZM&j+uDzWV3#q}?VkV`4PR;9OJM#Z#MupFUO0)nxj>tah(g$`&6| zy=A#QNwzpa?8`pf?s=IugQ=6GiPR}r!@CEU@HFkkj@c~&G+>yZai+Jv^Ju^_=yje| z<yXd7N z3J(D^w_p7KpZ6`QrwS`;$q*3QB}lFP^w%{!w=BI{-1j1v|N3YX%YmaSv-->P)`i2{ z`P)PLS~t`qzz=##DTeu>J+P#eH^O~#rk&lz4qM{9as8SXHbv3dn%%)WKo2ldea{3G z`Lz8Siuqa(e;*Y5i3o*;Ba{U#(D|^KbF-}^^6zr;Fd+(~)+Ut7`AQ`_qN|24?FaZx zo`+IC@~Yvs00t{gE$n`xFkRDz}=&#cl8vl}7LnZi1 z@%x1=wyGRBRTg;pItqQtG80vWNV*ne{;{*S@UVG@?JMis2-cd2ESFoHXCq`R(t89n zcQk!?Y*gT+5AL!qbu0Y!p&@%$ec-4YB7@5Q{8c3jaycEnZ#SJ9S3QP>h7M?t>{ueL zJMB!Q+I$ZGOfnN*W8{yq6a_bpk|JZv9G1 z$Z440g#*-kw(s#~TyDMpQfTvl#|+)J^>MMt5L0+=+V!p!cK9{CeIT_*jpo(~Vcun8 z9OyxD?csK*p5YO;(bw-+_ihFxu-C!c3A=sB{41<2C=dHWlXV5Q4N5e;szFu@a^HoP_eeHHC32uE0RzNm`$^E ziY20=1t`(Y!VgTcw)XpqDXg$clQ6wK$79r*T6W&02z@B@=iEwAcA6WqF?==NMef_l z+6$!=B}(`CcD$om6ixXn^NWS=w`s1(kwB-}i}W;p(mEWv2#Jkx*xXBw7Z`+ z&gQ0mufJ|*QY^@+hthsx7)-HKn2dNg|q>f zjwX}QA$n@GAjZ58KH#0#ZyD7Zs=9cK{+H7WlOo5Y0l)|}@vgdMbNt{cFQVI|-65k8 zY%x=q&(jOF(8f4>&(jW?uP02usEzYym5$Sa!WRz%gvY^u&_F6SFDz*5xKf}#N83S4 z{^O`Tv!r;~8O#C^m6V(&TK+1WGQ(9l2N~6)u_MX9tR20d?5!@RvXOR?kkDFpx3xXv z0rQ@OrtGv7Tea%Dagu5`P=G(lSY{m3D5s6V3{)c+x?nB%bj;+uYuPPZc_Ha)Jh0y- zoY*Bv2tpB8U^R>ep~sQOCMie_s1)?wEpsguyd}vE3z3cH)O;2FvnfWZOBy#ml2l5m zU2+?1G~c@~Kcj-tLPM!Bdz@yJ1th@o-rKs;Ca#L-96}7M$2>Ls?JSKUROfN~or1i1 z$CN2#rywNmN;CF4-$Wl8;R}{U6w*fVD@Na_vj8WRe}3Ex%PBe^iGk4+(j!I-QSore zC2#9BYsl9$O51YSfFgsj@AdxrJ8E1a=Y6wf^+zCYXY|(!F4exzETlPac&UPKLPd4o zOZ>I2wy`OAL>d}@x5z(!XeOEl864H0Lodoi~r&4_(fr>n9kpQ z@K*QIIZa7EFO3=8pl%PJy@e%*>JEr(IwHrq|5ePJKXk(38qL@@y8lS@#_60b_ox*~ z9hl^1aUt(9lhvtBfN8NfbAIqu%BJLDGa?NcPB@8fY@&n zI|b{sK@ZUM^1lN;Q#OS%xg@T1Tke_2=B@V4giORFM4Y@ipuj(lhMD+$0wH1sLe^7^ zvKeh%QKRuESy=#9pf)S|mG&Hsa$pc0B8KXF9MizJfIX^)-b)$-p#r-Or;g-ZIa_bP zpV^zy%uw~!P=(d73&9$%P-6Mjk6qPqmr)!Ljgi49%Z>uvNJbH#=TitRzz6xeoyv!h zVSKcC9o3^>J&Hm*m7`L|Ba6BK@%{H2ar>*&5_o#{Od@@{C2l-`_*Mm|#aihOLdtQ+ zJ=jHN+bhKII3)b-!)Yqe#?!|Iv*GLoZM-r)-<&|iC6*O)&Rx>@*{x%cwZCzGl)e8$c_=OF|0b zNCeYH6-y<5Jzx6CADd_Xl8RYRSD%GUV;sR!$$5d*a*+X=4<%q#UAq}k;iMKJ_rC^f z{u~4d<$qL5{|X;181p_APZ*=V0~bmhA|5`_vyAsY-j&b0@*Uvk3Z2XA%6544boDvA z%TNbx|JE=}w!(l_wQoyTvbpdT4G_e73ug=1aR^hh-NBCXLtrWpo`aS@7_Vc7YghI9 z2Nx;*Ip!TxE73?^AG`S<52}gvaSS+?BKGMYg09nz7~ZM)hWbL1zz-@fhFI^#*|ukcrM zh?L`B&=L&MdW9$!8#YyBGOqlr2%c?eiQH7AMZ9f!mXUQzx<5ti(=&JRC&m%l32JmK zoXh;EnU|R_^yN>P>qg{$FhU}Vja)gzwuye?YH-)KE$Q0L_T*g%=uAjnLR-@P1(Y42 zv7r1&f3Zx`E)p|o6se}~m*jCQy1U`M(sF4AG@;{FwNcOzRk~tt><|aXrnnMcV2<~5 z@Y`HzLYF6TV8lKt26$oY$t@mGqg*w#FNwT(Xk6L8etN&6@~-JE%0mXfz>)7!b6?xK zpWAkrTczTECJF^7zqAC35jG@Dk{Y9*IijOqCZEcV=o48geshOve z1gRFFsV?NBHIC&&H|EdlNah!dCG+P2rrESB&MirlkwuQ!i8;?QF72595@vPQO3|;1 z{d9i|VTL5@tteF)?i1D0Fa1DH;ZTF+u^1cX`kep$Nl_wGN@K5;{=QB6^;ZSQ6-D)D zIYP>6qSR_eCaD&RWOgB;aGyBL;}cCk)c|D0?r+t6i_>(LVqr}4^&L=gj_|H4;MqG0 zs%HQ8ocCtkg}A%1X7l*ePx!2u+v8{P^DVEUGR5H${Axny`%Jm;($6X)|G$n4KDj_* z$RJ_fyCY*aO&g$iHgmR{Am0804S1V8y9juXw66Al$;!L*WG^4+v~kUnusbJJy%C)F z73JxyBr!<_%M`P=`34Mu2SK<0!1-j|Z_7#QUFk>|UnT~_29`je!{UQ?S{{g;0LBCx!d(vKvEe#tjYt35qk-z#4zw45Eiq`tE z801R}|2f|+8{b)vr_P3kmd|)8t-j;Y#=pN!9Z@}lk8UK~V?rl-P_I7W4@b`K<6ll2DHjo0zPnu;g!oH-Mo{kETuRf$cxmT-fFy=^p#U ztmE^5=nLLi%zl{b3Eb@4y6%pxRPB}EKgUBR_Ef>`w`)*`pHE+9U-x+)etq`&WAm4u ze<5u#dW2~3A{(1{fnS@54r_C4(F}USJ!MJxZL#3Q_NV!oi_c=?amp?uBNz{|zst7= zKp;6Mv~PSYi}B1Q+M{^qNM)TdQ1C-jCga62^&ZBAa%>#D-Sb7&&Vzp~AAH71jD>&X z7`INGlA?-@wPR0$2W=d`@+?Dl(A4hq{>TsBq1$~MGK;5C9j*iAMQ>y(*E$kQuO2pw zb;_-5dCJ*1=+nuAQ@qea_JEM&oK0?p6RGW^1pO)xZIirI^hW?>Yk8`QqJLmIMnd3! z4ux{+bvkq{U;I!dCt`5XQ)m3G9iY*RAI(HUle99e^{mgsSUx$isR9*>&8s!w0|bv* z4>?}XNLF17Q=D>{qnOGyVr`GD1Ym_y!X6ipSL{XSlrhHm5z_Oy7G8ao-}rj#_R&w? zzy0iI@83TB!7KB6P?14Y$9#%cxTTxlZEsl!7v+xVL*-i&frp1*-R&IG|ST`xrCsvUFi__&kS)<-_2BS8+&g=Rv_%X}772W*N zF8ddCY=TUdJ|k{(uxaa8f|O4S{8T5^LnhRt3>kg&pjUtSjx{D8F80we93#IQq{5GF zVgnYQqJyuid&v(Qh!oV8b)t*Sf{uQg59Z>b62AC@>5Bm&uT3xKvEA!4*VxFCpK=-k zF=JxNU&#+|`E@QBV8$kPX#?sy)_m#Or!T`pF1!|hf z8i3;^RX$^;PC2I4U&U}J?r{J@KX|=vE0eOiHq!Fat1(LW2`)pHeDEyvbkPlSQnArF zG}J!;h74a^<*K~J&9Pd~!$)t@>YX-LEXl^?o)@%H`iy^*iG{od{8KmXnBw;%uQ?eo02&BL!dDfbZWExj*X zXa5UD+?~fUmhx6Hi@tSmsKZVPQ7V(RZSq$iHV5@f+bbh+n8{34TpO+BY~i%E(v@p% z%bFW`XlLquQ4;(V{BT5mrH5$3jgxC(N1uky zp$iy8dOk_zMlF<(l+(q?XoEFWlz15Ao9&Rx-p0h{eD-(G#XjqH@O_a38TMW^6|uBg zd2m@!f|GWzCj?G2c~Hd*B$FtySLDsbPh;mvj<}J2fByC){(bWKQ(u>P;lKa(_R^pJrC7>nQ!~~_><4`^@{lx zk;p#Fw~9PX9G@m`&*h;Uz34uRw#2t>t8LSd&{ zQgw$0-J@d_x%yFhq^ld-lpLNBv5YJ<^O1KvuI}(7tc?aw-Rh;UpdEDdiVdHHJ@aNQ zYvbg}pW&!J_D06`*uKgy{^Az4M()zW!TqxKvOMbAtg>h3BlPz`kLz+1<5)oQA!{$? zshT^lL6ZpP#*i|^M3RuL60oGzQDiG+$sW>T$U&BL@b2OsHd5dcSn)$?6}>p%Uj0p9 zj_*|t&min*X}f@UDHr}*Z@zZ>(T_gJR~^2ePk=qo7pF4S%*bk9yW1&I^jawO%jcE5 za<&Cy`^tJKf8!(Y@bK#!-^Jgo26jsQN7@vj7c#Q>*z8X~`XC#n&u_oT_r(7u559i; z$**&RWwFFUrjvW7VGAx$GjY2RWHE8f_ROo9AQ8*oEYDjHjazglc5VuhLp1bF$BV){ z`GYYN_5aP@n?GxkT<3Y!x9{z3x@R9?7H|L%AOV6DtuSqcC0qXQ72)s?UV{=%OQIl> zSO^SBVD?`9Jnwt5zPdd#APLe8VDRO=RhfB~_ngeis?4mcs;_dz?%P5^%Y}Slz>U@5 zHFN0jl#f8z$6b6XbbOVky5Znn@^&m#$00Cy#mCe|N;tX@mR|~s6W#GEQl$0DzRfY< z`gEaSC*3NfT35Z)7`kXf>tL=ft&Xo=)O+_FE%wD)Ige3Da3kq1*kd1YCnp`un^9j8 zXyJ*VMM88e= z9-x)yHOWmJ=!r@1`2bfwIMwZeIq`PA97wUA!!vIXSBH~dX-U#nY=V-9<~ivZSALH9 z&=++Qq8DmyW*tghZZ$rAJqM+u$y@oMW_0<=)Z@l})_Lo2S>+R3J|L1fO{to1= zjDIs;^ZFj;_9wmKo2K_3y5kfm=?&sqRNP4=6sW8aq{&7{o@xF%9ysB|#&i|w%Yq|7 zy>Q&Ox<8V8I)I{GqiG&pX!_lLQk>^Pe5uS+#;3|M%1Y2jzsivX7KpIoiH7q#!Q@vt zmX3<4g(!`JiVlu4{v{?zlI9J6gZU#yrVHb)K3TQ|1(VKot70jQKqgt% z2083^PH%Zs5C?h;u}dt8QaIkBq9UijaZ^wu(Drs{r7G{@js9e^4F)oOXsEXG_L@l- zexieK9w6-z*JA5iuWxE2c<|yM)Qdix=o?)dzngV|tqWF_o;_vZP8>8YJb1Q;jOB!9 zeh2|)W2Rqmv(E?Mxt zxm|G+{Oal=i(nR#Y2o(J&nC_s@$r*KeBO`;7Rftb^pl299zNXO|JmPcKmN(jwvRux zon7K14>ZDi#3x2Nr|!=r=x^$q60CVy=3l(k<^o(6;_xB$A&s;PSy>z=UVMKy%+i?M`r1kKJuPt$QgEdWyM$wdA9Ayj9xRj zc115b$`vPI@%=;#-r@(VyOaJp?*y-27TPAAYb?M!j#yFFrhoc8{358ypZn#1b!u~D z7lyi1?u8qD>qr?-$s|GzZO^NlO=Ae>IGvKC7EjnAVm%6KdK^f4N10&uRWxlqrA_t5#M@9@vL zL3P*F9^yDPsyjjTbUX+g?PVNkSsnY>fe9>zd7|uK@4bKo&B>H*P@n(W$XGP#152SD z>ZE8YR%AEqWwss`QMR3(HcS!NIf2MrC9qj1iqr)`7z1ELF;BL&!lWP; zVkd$TS59B$<@dglQ(1bscD(r=F!E}yXB=&S7^^!Ctu}&;d zXig+*drg4S`HPz;^^hfWpOTV^a_HSbmxj>(CYmBDIl0BZJT0S$n68j)A2xO3l20QN=SPZJgmPiZrW{}lS=9+E4nxXLxX%6z2SOUHG5^^2slmMM zMQq9a+~N}^SMn^|vzt?|)^XHTob=$wFL&7{(j_+={-m$TS-;sl-aQU^5^)y9ilr|6 zV3?jwy_Hti$&w-L%4AV9gyPo+c`I*Po$M0t=l6kDn-tl0z2xD0w0rCaLmnZMyYS>6 zu+dKo8T-pt+fea}P`#zw7+q~HyK%%aFIxS}@sTD!&Y6}+>|rDA84*49Nh0S&fy15a zQzs3`N{?P+#civ_GuNPu*R|jeUrywLvC=&+mfQkb`Qna@`s(V`2<&nSNyuJPX2i#xgPB=HS9SP(n zrd`0kK%=((4gHT}4&wAz0k+qsZ>p))frOGSanVIUsQn~5>CYroApI5aStpwAAwz8E z5RO%LFcq%%AB)vkdHOR8LeNh?S06iI`HWk>K45>i0`d<1odOu_iXGBB%Icf*meI6h z=$2L+8hVPudDF*yf+bOA<%|!uCf8|6N*#au++O7zr|XYl$AT6+QuL2)_1S9a-*K}j z)n#7+gqrSQ6+{ajZzWG*r4y$zz#?;cn6$PRtYiJo^BSv{`Uz^dld@hqkBTlrVlKb6 zkr1YJV=1f%3A3dz+KJH6MbIXD|E*lWL|*OH#^*zKm5dNF#@KOQOq?INv>A_g zWinu8(aHuS-$kD;&PcON5Q(3;Fr%&bgYQ;^i#ggxgq5c4hO17ie88%Q_Va-8Ao+YJ}Plt%zSSn|_uPjbN-Jmsc^sBFtA9*LxtoA#^RPK&I(lU&a8RH#VM6;3>UuXJLL zDay)ZPBgrfbLl~|t<~tVU0gIrck*LQ)y~_7A6(M~)fUY*`5}n}t@4P6r`^TZzWVV+ z0Yhjf95GUkp)aB8QPSWoAC#V8;;3`5Tl?a6Q$t!eF`BtXGZQ&=koBO9wd**QlWPbs ziKe3*3nw{K_PZy$w!YETmKjK;u6XI=2wwxb;+%W&{;ln6Uwd_Xi_hC%a6X*$mh3_h z&|rRmmq_Tp%x(cZZ{wH2I_vzZ*1&o3>sR&2oc)>_SQnxdm)u-0PNz#0se_nfkb8Hx z?X}nLZeM%n)$K3-@^7}k`ss%(g1x_e!Y9sp(Ff1L24ShTZy*QUj892)f?x-bp3wn} z8W{-@schEC1#o8R2|E@xogh_jyE#6oBuF({Rt6G5n7ncXJE^!D#gGDp=yl}ky4QtF zTu{+tgZoJAi32SX3NVb3pMg*1?a(^BsE{rz!q_bWac{>Yk$(pSmD#Ifml3Cki?r~q zR)^@B_{AS1)_`+EWDEg{@Ms6l4RQ# z10>C)BeTEgMgtX@*x+CJG%;v7&hiRJyl4@uh2iZB8(OuoE=2IFSL(BP>3to^?70#n5M2g5l)Du5N$V6*}w8P2NW-Tm!9a{Sn)zmH-L+0?%^Gi3F zO+DiK@D6JAHj8}YTPE{}D`!RK20a=7f*B}wI=3Qe)LR5hC(kZ4Vr4m5oUFK+&oTA@ zO7}#XwDnOQwj(FDdLEdO4+ieRs!i!^yF<#3UE=GLBIvu^$OOl<{~V8qWEY&>&aS5d zL2TqR2}^p>1oF%(fA?kAmoIOH`j{GyztyeG;!XL2Y1ylv7@+2*9q7P&%r&d6GzIx1 z?{%r^%Bh>ervgZ-GxDa2!31ga^nTHLe%HPj!DT1CGRV^K)ApC1u~>VozB;8ruDfTzx<2brWtN=g*Av3hvL%us zW3?WG5t1BloArD=>_FWf^MiG^?c8Kvim zOL!nYtFRd7_*?_$8aUU$xd#5pYT$6~MxqixPg4S!0gq>Ju_bnKJFT#PWDFtPYQ+Z=*T)XgI_v z_)w!m2pk3ZD%Si9@Q3lsYso6yyNksmU4WtoqDQY8NXV0U}tWLObX$6X+nO_N*T92 zaA{emeq3;eSas}#kuuo z`ib{GoLh1bTwJi(qPcyF12=BHu-&`=()P)d%k3|I^tao`?|r;I^fQPSSO3ttvEF9F z#szuXtiG_Gl%i(bY$Fnz%u{@Fp4fJXkUnG4&!paX`0@5B3vE|dFR(!M0SkD{^N{sz zwA8(eg4(cr+y!;v>w>qtc$rP3`PS+U7rO)_t1~yaDer<;svf<(33ln?7XmrKtRK=| ztTIodOx}dDT;V&X!n#=U@gxPCd7Ze)Bcp!jYsl@grfnk%D*N30C`ZG3tXyQr#?rBd z8nj_etT?T9r%7L1Rn)7lhbwaq<7|VobR;HitW5b?a2kxzIbOwLzw6XSY%SWbdk&oN zWZV3E{MC~}EX{T$pS|s?+p=fdEFF>PE33@%TgkPM6}!Qarpyt$c273Sk4!*KS$^#q z9|D<*$ZcBgN|%Zb;Pnlj%ssTO$}gk*lTh;PjE_8Za(*j%65o+4YgXOU7K&J@h$@#q zC$hX;sG}MEy+9^ZNuZtjryt7aKzeRIVb1q#dvM>r{?7LDgT8sG+O*KB?>J=F`A|-p zz{$=cp5t>3T(5!i;@9>1IOl#PYv6dLJ39CrJ)?&czg@$&-G6~6$KQOJ1+dri2G~MA zCVl__KmbWZK~(!6e8}5hpK`(Fa@wmZ*G~s2>az1d}*o4xwI zSHA;NG2NUMs4v7ZuYCu}J58|&K^s}3jO zvt`lBx^R<^p69dl@*qw+3tAr2;a8USHncQqE7s$=Ff6m_#G@M-Z0R|5m)g7>h+d!R)|{?JyT^xw3)E8f%c4DhsLVT}l#Sn2Oduh{nHIUw*Ujvlz`r7Z=eI?u~5 zeq{$|3`bVnZ0PUl`Asi<^N{1%Nk%!_}B zB7Q_iz2`8+SiBV{HE^zha}E6S*TA|~b7?kt>*~gK|NbS5Uw5{zyzyZB z^x+LYgT_zB`q}Jj14@LW+n!>UBjUf^Pu>v;Zu<8hE z&*3nseJzQMW#wECr+FV(kyozF$`D3E#+rqCWmfimn|ym$-74&#_B z7E|8N85KU1XHQ!me8O+FYzd=G1TDO3s;xxjYC(#BeRB)W9PieYd*(WW9XVyQr6lpm zyg`19$50VMb>Yj(bBmOAoXepB%{TZgsEb#zrJUpJ3~bwQ;}^8BJU?=rswXj6&KVV` z8C|Ma#$inh>!Q|rAoAiCZ#=Px)y1!>ikI=6W?VdS{^Em#)Sb)I7q{?QeNI>qF*Q5B=K4d!q`ekn{{ zLvvv(^Sa3JR+tN2`lEwxRu=g@Y>Lja@J@?g8qR~B$Xe}j+G7-5^a&o%6j1%7;Tw;x zvHwR}58u$kM*pQhZan77s7DVuxOg6Kl@E9*mHWK81|tX|6}w<09T* z?)Vxotay^an0h(#BI>CcoGP`9`ZOSk^jRO&Xjtj!F404r@(;67naA|PTBfFYmj&X3 z!6h63eIDMbPO^)ZHWI!v%Wnl1NMq#^pnINQvgmc^7XAAx_qI3Qc!38U`6Ma=R1uO( zdBw|cA%5ZhA0S$sU&6*Obl}YVRjh&Y;@7X@Q91kcg*C9QV_pnVlp zV`msKtiL7()xu-DbwFLuVB4DVsjNr^dpb91<{319@d6k!06H;oIuUc|WD=q3*zePo z0k2G;(bzlG;;exds+ca#AzwpdhsLGBmxp}^v?Q=QXN6M%@HverC;#1x{oi|VEX)Zy-Zup|sFCVJyaktD*nRq?s z?n$0v1k~5-t%E0iei2(a&KgtAy3J+;$85w+n8r6Zh`B~spG>YY!D0er{kp)F&56_C zDcgzDvOz5F!W2)ek#8(N6%yRgAZ3v$a`KmsbkYH&Oow!n!;8(9dDlg!3s+UI9b3r4 zR$f0=c|1(=AVFK_hlJu(kCqxgtgEEqtD>%#nd0e?;Y15Id1I{x*R;pem;wdE_83|& zM+Z6i(kufy*^vmw=mxuTvAyIJBY4e;&z?-9pNY}%fblo zV~cL=xe=|{k4)?>nt+5Qhl9}pEfP_{2jbH;GsMVMIqHJUR%+}FHU*qQIRaBI%y!w;M`5@rp z9Mh0jxJEw8%J`zN5Ir~K`H?SQ*IrZ?HLk;0qk)FK#X!`U#+0zn2nc*hS2gjZ=@u#A7FNrhkSo4 z+Oj#bWFMOtQa%M4Q&~M~3v%C4=1^f^aIRn* zV9RecGw}+)6;zgUH1V;+OoueJOWp;WY%b_%1=>>|5Oy&~NFDG&LFO-c>xrAyh-AG@ zmgb)_rhnq+svpffh>4-Ud3C{Wd-214ya9Hbd6ADW^%z>8sY9lV@pQ_Sua!9e#jeLI z#|$Sdi}N&(ms@_mB1Gp&h+E#gjfENfxw!Qai&(rSicR0bx`24eBA1^l?3-JZg@vyy zY`M6_9nma$WueQ(EkI}fl?5%*e%jG_oWFUO-@UVL@H=l@Wid=0k8WwzvjlDyh~FSX zeqWr_@sx&$u-60fwvy6@PMO-KEi{|9)zv;JW6zb?mN{u-+l~C4HfadKF>0%=4z7|VcJ$F6d)uQoiX|hck;u{L8E?OCjAg`Rtsxv-a*VyqouhI%3z8Rg+gY|{W)8roe-N|I)caSK|tQxlzyJS{P;{9L#>P2G)*ekm!8A9mvtzvb=_-c z55*M^wmi6hd;1E%=lrd2zp?qiN1@}UiwKR|j)q6;hk9cei(W2bUePg`_I^%t;5Yq7r4Y8M8Uia?F@~ z49XUd0pr+;3V{7Q2eKpXB*U`Wspm5pqhEdpzOfNLy9_+qS@-67U1=-n;LE{@_2FLjEUJNzZ)@y?>_@P(A-q#!uZWx0qOukd3n(ozP?8~>FS(+qt5ccvhe039wlc1<^jSk&9B905L(z!q+TrIq^B=)k8K5VT&$K7sQHr!c{jLHZ!3i+jwM%bSktu zK^mGNbwVb7Rxk@t&~t4_-9cB5Pz>`+*BFBm_|L>En5OGbd8D-=O+mL{Dr452?W?@t zjEuBkMR#zMUKpdl-)PixE}k8iaH2Iu^)hrr%E>NNS~uRJi7(Ko?J z8KtF!H~h#f`H__$4e5tX+AiNTB!cqAudRbl^z{q=5o>TXRC@WzAFvi)%zVzSy7~dk4;Ki%$t#@A9zWL2p z`SjskZhWGD4BGlk_*~*=q)KSLegX4LKG(px2F^8bu7Q7+8t_`Y!n!UKr%x{3(b(H&r~mPJRMYE*fBA1)Ok*%D*^#CT3 zU5f8KWa?o|qO5d4vXIpUF7s=Chhxr3m2-2Rmo$Db_RnYfo;-$5d8PZ?dVb=NIp;Ip z_PXf;5^_&m5WC6e>Ddxr@(>{lMo%8vn)0*G+oyb7=i(_km$$d4yp8pYPY6C^9^~SY z)6~ob(r76;KBdz1URoO0PO5Lzmi40nB$DvK%v1q$Fk|QKPncWf;l;~aS!}z>!rKiV zfWDzG$Y1g1+ST3L{07-A-bnLzy)Jm`gqZEZ`|Y=HZkPP9>`i>WM9=w@KKYwueiG3+ zp9_F4nC17pT<}^x>o;|ic@(s~`Gu_c{Q;<6hqYhYbG zR|Tw#*~GGw>_yG%FXOH49@o*Yym4py`qy9H{^BoQ+ur}+6P_CUV0-$IfgO+g>fz>!68{k#z?f;yB*ChN16@MO6H%5ZO&tUE&N};|qCVosh&d zxLKPa<09Fqc+izqeHn>;2*|nsW@%(;dFiFt(4uT?5F`S+GP>zx5fc->I1Vqb1+usf zRmV&zWk@BHi)Bn%Ky%~)Yc0>Bkpop#2MG}Zz?w<{Nk~g&$Rq1OHHDV3Y?>0tMG$BK zB`;2E8$NV(;W-hBCl=6|q&|9B%@d*)Jj;S+T4}5IcN%~fNloskNv5^F0>Bakg;dKTf9&7<25iaZ>gTE@)g_^rLThH8!2^##>dL-hAujy!G|Y*Y0mGa8qLW&_v4~ zoI|p>|ImGr|DjrE`Ew1NYv5c1=NkCO*1+ike!3Df7Fn5z9VWT>_4YfjY_GlX^7i#_ zKH>97Ki>Z9_y2tR!4H1Km&$H^rfZ0*yL3?P$ucfoE-xD^A5nT+$1)SzZ#gz9AyCsB zNs-(h(oV1AkccX%l6{-bM^X*lsaA95>xlFY>C8JS_F+6^N4}8i0t?<=N0JT;2j74aUgDKY(Qe+(_)14EKDp=AiAE*(` zLy;83BNLdxYNmBy&8w3?02ao~nu01V94jTVt7O_jlS23>MtzS0JLUCBb@)!Q3pTMC zb!>~`fM)^8=M5x|Q}dc#G(AIxdEABbrYFp?h&^@}%#EJ8_$A-;)h*tfy4;>zK4js` z1uq^Rykg$;(1kC?ZlAJnhI3CCyMMyM*iEpmuDba3$ay0EJmtp56Tq1kX3XwU$R8#Q zIkc9~O%8Zj5HxFgelI$8;La+DO!jU~5q$Ho}$VOCyUj&BIXD`s(}XDeXjD=UGJ_CGQs z8?vk&v;JwvEsMpN+VA&G8B(^$44&7k!Su`&Zsk2M)?8-&c9^_kw5-jXH4CNMPB(xl3D&OehWbDE@KEH6}kMTB>Ct2Jh7BoVaJ*xCW2iF zavYBoDaU0oIJ2^<_M&U-B}oYhsJp+-EOiUTp1330ypl zUw-NS_S@fhYkU7^d?tgZl0NwPf68aip769eW7&kf(vISVSLO8mXp#@Y7+Iab>MZO; z){})^U%gi6GV3l0X;uD=u1@X&D>cX96IARwhK=*fmjyUF;s%qrJ}3|7ZdXAw9Z-ms z0l-k@#!CzYTf62)(!S1A6X85t% zfs58Ge(may#?+6|OkpgOdV!qSk5FV$4!LDcjfPaH*6Ey!6G-bJ)@E{}FznDGM@`UK zueGza*jS&mzr3i&Q5IrNLQ>dzP+4tLGV6#k1jmVowrm46KQh(;{%T(c3#C9C>e$A= zR64ro=W~ofRTixb!j-}Lt`FS_dazViwzVyK8=_2fQVwAZYSV|{AE0x&^)`p7rB9`aidkG98dyxsMf1+T|U&erdIJ!J9g zuYdT%?Nb)mZotDz23wfoNk#n9Vav+|po?vmoh^%4P5ad0zVL+)oe)VIIpxK%&fPr5 zY&%{iO5~;QGRh7uvek33P2JS7^0Te$idppl537@>!Re8zK7!Rz)*>1wk@A|3ZkgBl zBk!TJbr^Q6*a&6EtIYVVJidh%dtwwP_AFRrYG2yU54QQ*l&%6T^L zG}~%))J&mFq}htWnGme<7Pj#O^=a45qfcVJah8dE8n+nTJmpt<#WA+y$@iQ9v!Hqq zT16!GoXG^D*?<-gUL^*ncp+vt%^!RYiN{X`I}2- z)D~J17Urmn#*yGA3pYk?-M+zh-(T4N#UFfY`yc16sE>zp~)z_|v_HE^zhU!5A5p}}>B*7ciMzBesyaFhDAS1z}&e)Z0F=QfO|-0o&j zZco>7!cuA%ksirTM+sv)rV&}Z&+E@3glztzU)PS~uHEN!P|J14Sx4C;v*{DYiMMp> zwfe(LpL)s`c`rh;Sd73zGhe(Fi{_tV?86+Lq^-GXM{afA@WKwSmDYUB;zThfC-}&p zDAKB#k=odfXpYz7*1mYw_$kz@$-~fOq$ZwRtn@IQv?Hfas>2LtloN>uOCM}OtE}?k zSDDL%Af)T@>B}Ug4Nx>`luUn|t2v^KboHSq zud(3x#2q|^EHkvcUGH4cd0}{HQIXCqs;w+E=Ng3GgAf@%#Bu!2IrcPfeQ_3E1=LdV z1sxt#V|&IV?^(XA0hDi*J!bQS#T`wbhWXa>_+io6_>Z3^Oj{Q#hEtv<`IDYGCuyr! zA0p2jNPm^^LB^-d%bu}l^^7?kFMdILx;qQy#J>J%5j$`9IP)J^y?JJ*cG;b*;1~p;%4#ScW zDrfzeZjB60Qo<3Z>FQYz25F7s7isCO#W0dK-%XXH{n3@bpFgI-a2q`jV(bO~h`aPp z@v`4o`UEl9IGVu<9_h@Xh9)C=>^iqXK7?X4X?xL!+2W3JodO$UJ8=oqohC8p_+Bo-%!AmZ*)le4Q-gf_i z%VWEAaLFDBW&-*=@kCZ+56Uk2Mf7;EjZ2Gqj(>A%z;5Xr&Nc9BQUhM8j#n$wcD;>{ zg}8R9^FoZwT`sV1zQK>K{_eJY_~GO2Cwwa7(c_=l_iJG zR|MlXk#&)Swrs(J=72j7XS&Gc;9O_*6&3wAR?We&H=uR0Zx_KsHopsot$e>-op=>3 z(rtTzB#kxxrk<&X3nm&HlaI)GJ~&d<1SF}K*yQu^8^2(_ef*R6w!i%2KiNL`$zSu? z37)*;X}n7&Bz}J47T=4%#g7+Xx$xz7=QfL9x0$%`s>v+SfPY<43jessy3Ub-W%Po0R-?sq;m zO+U9q{~B#{h9>&LFtPNPM=Rf0C2gGK_P%DP$wMfv6F~_IRjy z3_V6m;>bx__VX&A5jqpjHE^zha}Atp;8&&w)@6OgI!1qCU+Y+vAt1jKvT@_=M($U8 zBeI{i`kae>NJA&eLV)9?2^r&(PFI1AjN!>Iwe(@iBCz_>3}>PN@tTjLr?~P}JLoAq z3X2KFAojAoWb7i9b~qEQI2G|FG8wW1dt{vOb}{UjKH4%*y=n^(YdIKWs~Dy2CPWy% zW2V|3LOl+O$R~e_QQF#9=ZNdWL_(Zs%MfD$>47abrr;uMWmG1v=)0FRdn8pi6Ru{89ofzuV*wJEa!zdXIoI+B+-e=fEdok8*3?z|Vad(FlFbvN~6MIpT z>y5*{tx|SyBH|FDii#)LTRHM1l*T|*yAs5cZ^oz<2@Qh0h_FYd$mmK_o}g|9=ZXwQ zIqWS1!eWT!I?%ueE3c(X;6G1RA*8IInyAvr#|w`WE=I0m+A z_e#*FTqZH2d^3#CEWUDihXpvi_BV&Xy&s|DB`O23!GKi!N6PJ6CQGGTO+V+g; zIiwx83Y0#&Hgxfp{y4bw*236|3sHrpu|vYNzv&@R^5da&ZA-gmM{=2@OeY%JDIGOc zcYf15UUX|eb`dnr4aTFMa&sID<_B$%Wj|h<4J$V1JcJ#37@Uh2d?x1(=i6`n)>pQF z`#=Ay?RQ!D@>Ge~_?S%22?@)BRy-!P7MbikqU9wThLlqnevba4mUhkLVx8l24V-J> zTm!!mHL$L+7Is}VSN#7^1+>=?yI1q1X1tNhK7Qn?&)C7f;f1?5wih4V+U{~QJHtK4 zl=*X9)m|z6gne{0**g|sV4CZDL6cq!VC_4VYY(7&kOH}A@q%FtSnVztvmxbpGX!cZ zJV(fQlrc678PL@9=56H2IPGv;Xi#;1hDv{xabB0Xi2WvfWgN}uZtID*R)chtjs}}IlUgmOMxfO*jg~8BHAUHvjePATp1A;dkLpv6&iGHX))_L`?pzza z@vCJb6W=>Zwgn~+M7?8pU2V9v-87BeG`7>mXzVmL8r!zBV%t_@XT>&GY}+}H^z02F~(siR&C}WHYXn>n(!Cmj-{W%;{@-g_Ln=~kQn)Ld)CGo4z?h> zP#*e$*467~);ZSB-P-~#Uc`bP!N+|gHTth6ziZd_APdBlhMmp!Ghnx9C0&#(kW zl?i{5H zat>}XDTXZTqhr4(*r+P0Cby*bO-Zb+%yjY0i&rE&7qTArAP(l@+%|@kL`fz@cgCWU z$)1z^du$tmX31IoJ?F_#eJtwmkBjB0gG9_it>Y($zAgd>|3&wz4JE%8vfCA#olqjN zn#PM7j3N=Jzpwe{=?4(KN|$k2F|+xImPjW+@Xd7DfS{TL?`a+W#5Nod8FwL5Cazpoako^*|MaLVnbHE%}XQdXV5*PfI#C5b3rn# zjO1CHpThXpBv?DJYRgYs^y*JwU7lShTRq>hR=q&-1Y#7qGDEZg=k`4%HaKx|T$yND zCs|{~L4zNgUiI=C0oky$t!@Q%fA?GQSuujpCVn;Pxw)NJ#W4T%>|#lWnwV>y2s88~wevsaxv{%Vj|*!mx}{+tK{+ zjQMp$g!IO@zOtHxtiFXX^z%Lhv5OyDVTWPvRPtfY^6ytXCXEey)(JBM)?R-mW+but zmcGkswLsE6hw#iuvAMWvM<*Bz2iRuHYdSv91D9;MHHOMOp4BuLkG9BT7$P>Botzf~ zM-S*H?c!xzCdIs$75KOYKcBD1-uGO|+=G^*)E^FHNY1#ESe=u>V`d^XbeT@kG7`OT zPv5gTTlkh&ab6LmJsP2zR4Y%nk?KMq~`4`m4a^bJ+2B6 zIfBq+QZ>w0XT_0rhr74)gn=*tYD5sSqM@d-h|6YorH#I``Y{(_rU|UP z9PrYl{;h58{oyT!CAi(*9uH?wuPuHgKq|*V+@}e;5a%ek{Zi$l-j$5|Fc#GkOo4;0 zVZRAp-#bEALN?lk0%XY8S!Jkl62N-05$-V~B-u&$*4O)6hgDGtMiPH^ zB}&;PpT${?6Z@g^o?X?WA0UR zmWqjq)fi_y*T2m%p>mCoGyBA4DK6j-b=v2vvjTtNq|617qZU0F8G^mr+Qvdx}#`ES^WfVgt1! z(with3jGL*%5^yl6mH90Z=y*1*tjALYTU4U%WY+c&5AhKb(wmx7-Z(Sj3EI|B3jQa zb#IlOtEyk(KT2D)`9)O!OnRVy+ns8wA50eY?B8gVQQ z!I6^l#*kVq;8FbrGTeL5>Ld;-jKeFGa%L$xi*VnM2SmNJ#aZlSe3Ibyy}r(h-W+tb z;PUTc*g#n}51b|XOF!?5e@HYadvh^GOG(r2RX|j=au)Kg)@)SWM<;_;X%!Rq7t18g zmmH#f=;3%%`Xl zzxg?DGI&q=y_5pzh2N7qZeH2dAQ(lis9H}67hm^b;(b2;lBa`=rbbtv)BW?8O&{ma z@e=>=VY#YXSg|kc>YLsXL2WrW{XhiIAqA&bYQhYa4zEuHMwP_n)0mRs6O#H2(Ex&8sr0T!wEU9R)LS1UurI_Lqp4d6~3(l+qpLp`g5I z>%;8{KxH*e4D@_WRv&vkKe z)lB}#cL_FM5y+YOL7Bg}8ox^44(KQM+@;f?L_SGo+8SjCdS3=lL4M#E+I>9V4 zR@as%;Q42$zlnUAgcE(5{L{f25?_d0z~;8cNP@at_kjov=75dOqnWTLo|3(2edB@^ z=(uyXt#llF`ok;U1lOOHKO^l+Pa_6FjPMUNpWX91DM0f;RN|^DJvefLZU$g69VJqY zaI_9sjR<1E8U%17^53QjQ_9f$8}~%qv~2DF$^lRb4MA1oAN}P+_P|u*eIjIc7AqeA zlFoyWS69$>RCqSEowU$?|DEt=M)Phu$m9)7Bwdq0i^B`r2TCCHADrX z9;+-bm^+tOjqPO3C@ozD6P$XwE5o^1tD#Y~Fmhm}MCQFmtrw&}tR0f}wj5AZ*jQh- z-;O-oyXvm!_*n09b-(>^qP@m%`KkjP6bx=S8Qg35w||&ebsdw|1zb}&%=|y%Mz<4M z#k9slCl;G~NzN2Nb`^TY)~w8(4A^bJY65m%`^r_kWy+cI8}RfZovv}@L+a~Gd40_A z7b=}B={u{9!)@sKU}sRx7-+{7mve-_?QHCVD6)KbxuLYO^jc(EGw8q?j}uttXk?r@jjLQI3U^e%@z^-G@SXgrlO;{BdoZD$B1?7kp&D%m0Ad9 zsrXE}guk8H%L)38W^SJ;Y>Xc%H?b|biypecuFrg-QHw&^=>tA~AVFdG z_PGA)_=nJ_Hzp${jfR)xEf8qdkL(6IOdESD$w?oniu4H7e2&f;^LjXr$(vbAb>%d@ zCHaHZMjJ;2?>_i?js{QUpzY>#UBZ7pz;hALnUT}%1Jat318NI-o-{xf0yg+uxR{V} z!DEIM)T7ZAwptclPH!we=`pOjtrQLu7HxM7#Sl#J1F^~Z>&z0sXy%1bZ~|bmZzQzA zDPfT6ZKOwj(a9;Pt#f{2s~_5!Q6(t$<%=W7f-?!5kW$r>Ir_@hrU^DT4YCbHAKukp z!Y&QNb+?U6$Ha6~pzYXjzmS|)pY!YRrGunfWQlon0>YwKXiMjabx9Y5COPA$wb**^ zj-+Zi;SJL%(F(=>tlw7s&Rvz#8jQJcgzVFGKUGcx|&ePddof+a?G$x@K zPF%j0w=s=Rgz)vtfqcl&5TU)A-=D;>&e}7~? z)ras;>?BOcXH9iR5DDS(0=4tfW?Ght9`Wk4EgqQSNN<9He*d1kGUb! zeSU~AAI88J$w#o*UOT}^0| z+8R#l^vr-@Eg0!3d)6E^SeeM>e}}iB5Pl|pT;cfKN7uz4INht!4Zx45$3&6R5|iSn z;Z?id+d7PyDL9vW9txcF&IQqt(ZB#ElnBuy_bNul2Ay?!x0m=9MLi3pzt$%i_s2QT z(Ge<;s}27)ulC%eam7znj~4!k1va8>(vr={CaZO~_7#6x;>RCXX}z`4Uc&k^=mAWE zt#L~tRW|IjFwU_}9e}8)FjcG;ajB-bAlr22R$`MZPH~e_5>{)xRJCkoFEYf-;ozd% z8%30&oXsgXUGPAJgC$A*bdw@TGlnfruc$Geb3cJD_?LCpQAPMSvU8E59vGQv5T z`~RDXUY+VdPU=GBOnxXO1D9~h&ley1uuY_=p|lWCo(h(`-q?MrJMIru8$Vv(a;_<2 zx>nv#bzhxcjy?G|`Q8KN)Hb)cAH7{NGA_@tzNvMDcqu{TJl}tPp&GJ|ud87(t2f9s zm4zVL1sD|K%l=A%$>y?)NIx0!W`8#{ydPPCdrb{Tc&>)=kZhF*iB1xc&k90Q7(yUj zDVN1=UrJyVS;|FV*_ed=>7v12>h4s3>?HVRVD}RLx-*ob_p`uK&)gCbhAs%6`xO#D zwi01GABjcyHr$m6aP%CaM+o?)n>B$jhtHds!zd_k6ZMj=aRVyF0w?_O(uq$beTtln zt9wlzs@ESV^0<>K-?Wn`n7HeHpy=bwZCx19Q&uJV^bDgZ3bl?3^H%X~|Fq=qE%U|T zGk1@sPYSJ4V5DTwMs#wB+&W3FKO+CNF(L(ze^fjp{Jl>UhdfAJ;Sgs+VWT+4oa|GV zzb!0YrQ@^xh~0c^eR?`}xh3NZ0PQRy$ho=2GQC(E5rV`1Tm&JcOb#m8FK7=1Fa0z- zR}w#z1e24%EEyi`C=p?kpF@V!wLCdzh!xvt+xNX8v#;1P9q+LZ+gzESXQ`LPL*iKk6Q7;Bru=fmX-cq75v3LQIMq!ZH(QB*BxB7HKM6$GZ({WDb3b) zM4s%EH(Ck!hDJb(fzrxpadV(y;*@SE!q|>Kd1QcY6{B}XRaMC*2ll7_yY@68Tfb61 zlYTqT<^h_ES_vi8$Q2v7`$@!oBSv}nsa>h%%og;eK*v4@Yr~{9|L_Vd`AU&g4AEUBH;`oI3AI%maxR?3MQKY#!86!=qEr!k1PGs}sGh*-Adb;&nV z7)c=~NbaZyvC`Nt&Vv&~T=L;1-u~Q!9okKB;;>DwgTXdLza%BM_M||RQxSg6vA_A^ zDAzb7$2a)gcfQdvdOojuaeH66*yP&vF!<@V?u-N4b-XmFf?If3_5~a+EK&`a;BWKziP=AP7%@6TY!F>6#UQlIwY0dK2RCuqzWv=|#N`&ctx7;Y!y zpCTs(&S?1{5wqp2mC?P4AgtBaC{k||YUIf787msIfYTivm||<;@B-O=^~=4wZb&9{ zjO;kg`EQX>`5Dsjnf;TCWQ|gkLg2`fgpj!)6N$S`jWMQ1Q6e(o5n>7vB?1jw#|zhyeoFKFOIo1 zwqDylm>nQIO~G>dy6U7L;8<;KNfH&5k^@AV=bcV0xVwsTFE#rkQhP(?c_Ya{=dn{lR>eoIojDTDupl^rxVrYe zMAi&6cYJMlC92~YA;;VUc>6VZx6LY8gbh!$|DZ&2x2-RbwxWox@~g_>AfF8^F^Zq_FLDhOf7!z5WS>_#QQ(ggi~g>M8PgG* zWb0H-BI+FFAc3EjCGCA|`TMSe*6pw-^_F8u$SbhDW?KfH=#Ts9xN76&>qHw*YNMxXRU`k?#v(Wi)YN4AvDJ4T^Rf4`O7!vaF;;x$Q~UM=^hkv1jm%zew?^&ZTA(2U5gLB!$eXrKNntoRHPr&CwJF6Z1RbKuD_`s~qqU#}q$ z+Bj518@idz;p)^Ow+CQT?TU<0t>2un;p@~Ayd1BqCMqcl z!p2FJt;DZuafIP(x8CZ%>7al`cogAl3k4K@oi?k+>2Y!o;cETJaxo)wCKcU7W^#e7 zv_7ZCBQdmt=Urmfz}o)nz#w*)h#kpG#CaOswWQvRP~MEqgmw%v@8T?pfH?sjKMn^2 z_EmY>pGZ4kw}BoZ2MV&G_@zDc3WRPW30(R)R)4Z90DT&fmeCz~!4%awG;VStLE}{h z4Lh0Ja1L+h7YyL2G3*0;UuDyd2?h7T5Ggyg?%B5uXAZlkMhT_gwq)>)ftqh9BQ#vA+)Co_ zFHK$5Vp%$aYNQz5Z})-`ba}$Unyfm*gtEhOANgib!yM=x?27m9|MbCSf7rzzt_Wq; zGu?4u^Klr-i5X|Y>=x+aB!=e-U5U!!<(jLdO=B1ySUFfYUZZjaF3m99*U_~Qj_bG< zRLU=dgcGZz!Tn@v9UMQhg}sEqBY%fp%L3}>Ks{2+R*=@~gr@3g%q8X3SKRdX-u*uo z;X3TA_l5!>WzDZ4vd_m*HBZi0@s+%$>0#sU)KW(;sDX(3cX*n%g}*mD3tLConY!^i z2L0LpJha^9(JgC@=3mOTD_K3KqWm}mwXn1p#TU^l7mxL=gOegg^iG<3Up19yr!BM# zdApBDGn~&jU&*@;0hjLxtDmJ6zCcfa@yo>}AWH=JDZy-dS$m%EbB{qPZgu$mnNWZ?3C@`35pJT1keJ!h3V!n(;}@ zWN4CQFgFQWH}fx3u|e^P0h|D@xkw~Z7 zbp0+f{6s7g6$ZTpZFJ`c&tKy6+@gP6OH+@iPD0;1k9|gD@U8Oa9==R>SkOmf<=>#@ zpXOmoJp9Zp>L!C9SDuX`iD`F9G`F(95ni6b&qR?sqfd0%>y9PL-rq{qDDr?#23S3r zL+v8s-i=pgxku2GK7WQe02QgC2X9Whdx_LcDtt ztLIfBA-GiO4BD1wc2EB+w?R)|DKJ-%tNsh#IWDiJx|1SK&>>`4mReo z^#^n4zomNI%L-w3$A+!XWEJeE1{aZyY>!U$-EzoRO>JjDu2KFWm#vXZ;C81VV`s~w z(e)6p@VpvG(5KU>!{cG>Q%T_>CTPJ3(e9XuKyU8>GH`N3I>*m$_DDenR3c~CY8*7j z==StYAL&M(oTn1n5}|?RhSjP*wx@e9*X93lIE#(YChgac_c_s@L)v!) z)z!s~mM&hmYrNH_&ij=IEFbXj1JQd9k@d&w$9pkg=G_)dpw1UUOeWLXBoYuIsD_YjuEGTn*)&FUVaF3;JD zZ|ZncR%O2FGZZCcW!`nrEgF@@8yTrB+I@!!&}KFu<}St>R|{?NIxBW;p^0_Bocdwq zKY#_E8e7D5AFQ50Cmp3nfia2xN9<&lhF3Tt47bjyeljOXX2g?c<-j|!BF!0$%OA@r z_?P}!!3wFuVQ4aLa*Eskj3*gXZoqj*d<^o(;bOhb6-=#;4pWSa_+U9uz~tn-UybCP zZg31w5N*1Fl&xYuNSaqLgHMy}ImD(8V=3L#qw$NbS5qa_wklBBX=bLGb65*0$kb~K z5gHKX9bUrr$!tr1ASf#aICPCl0I&lCz=1E+lWw!S;qF`78||$|vQMC>hu8t2nD z(L!2+^kjld#^hx2w#&CrGkKxSVBmY#XT*E2nq&4tg2O$%8l~anlP{EYl1bDs8E)4} zBsi!hC0B@36-+t9$iMkGOKimmQVF z`d1ra$@)|Ly_B_ZXO?60;v!WwW^TG*tR{~GO#X*2Jo|FT+VuO$gaiF)oA!*J6L#-* z8=G5Pv5+Hj_B{Jd5N|SvO`G0^FB_MigUeKr3DMx1I-P2I93Y*NDxF`j2$I zG;t3;yy|2X^==9Z$8V(fB5f3PI}GvMvp%yH|8evgF8w~0Bc~KsSWpaREz;4kV1`bR zI}=@=C;iOcN2htC7iSb8ghdc-Gzb`0W(qECWgx)4&wTXbe>}P`NobZK7Mu zNA~M>DPI|xP}IWEc{)#N`j zde?W_oZv)dpsaMi)a~@*K?D`W-Y?R&4`6a9Y1y1;e+NjR^@M4_ve3ZJ%y9L)%A06{ z{L#Ote?bW5x?y=^#rP7ELIBEQT=gD{sFW+B%yNj;VG*<6sb=zDsHv%+gREtf#!E3~ z%krnw2+Yle?Lu&g5`>U!yNH9C6m-FC1uanA-xovTVpZQ{m^50#aIeU;31-1bWA=C3 z3xa~mZ?>6+K|3i3x-8Sfoc^5%dMWM3_j|dvK}_KNkvMAUL)R+=lI9GI!%mwq3Z zx4wEv4^)S6%wk?R5I^mflPRRZ)u%#Q%Sn|-OtB}CYOcmb!v|*X7NZSxAxi#dfDp;S z2E~n<1vmiQ>jlQGkWg$;N6375Bt&$-c{aJ9p7uOcZXV2HSuu2g!0hSs#o6F46LQAy zec~7G|Ev9c=F%`2B2`51MgSk*T_z(QfsI%?ZuXu*a=$tre(?^@j{esOGWl6onmE9) zdA8-3-v0KRQS`j?XkKD(o3$LpQDf|C0I(;F6Wo77$UBm1>qMh4|C?5qi_}~I@FF4_ zFU5oS@?z|HpB6`uRgytJc9E?{6MDQx#?)`DzkU7b4`BX zy5tpREX@~VCg5uIS~Ky${Bku41;phlZTP5)xB z2ea3!Y>$VC8Cq2#}-h=fnKm?mP0G0I^qV&Op@RwRh*&cN z_Ip(i|5nz~de>|nP$8)w_ZG341uS{&;pt+ng--gXIo%RMrkp;#vT16BJFZ%B#2=&H zV-{z=FdS;|p6UcBYr!CVNDNt?(ro0oIeRiFJZZO=MS7%tgtHh>MV4l)%U(PG95S&Q zFn?1A+qZOLu#(>=ey*5+dAB{Wf2|RV9Jk-&7a2kQL?S%N&s?nQVYC&}C_m!#+AnDh zy%L-ETwT83l($(SN$m)MXEI z6=9aXFl3QtKFmCV7YkzQ#p%-^c!v#dzf?4lIWRMpj=&Xk>;tpqa4hR#3s9;9e$}de znD5O6qsEe;w#Hd?B2o9e-%t(6k}GQIF6KmDx1kcwPzcGeQH5Sy`h6Gwpiw|P?f z1^<(je5c6uyVq;L=(F$=pI~z~qm;sy@e zkOiZ`%z(3ZEW===4Bt{K)A#LPJpYJCQvQ zF^)3lIZSwe>h>1voi8;fd)gUH?|nYtDgCx#e=YTXgxdC0DBJXmx>`cny%{hhl5(Hp z$hsLUC!M~;ee#l#u6|`;A1RTTGo{wGYYbpPC!$;h`K&~;0qtXth> z$Z;k#Su@}y;r2`N3$ryRv)3Q=smi@u&07^c7ge&qsZ2T*x>(`!PxmtuZKLCZ4I*nX zUu^3`wkn>{sFoy^e~nAE{_r~F>Du~gm$A9zd7s3++IHFA>~(&Q)wrm;J1*6xwby>P zCtmy%P^Za5^?!%zQEkZ6*3D*P8Q|2!ws>$F3HmO+PusmSX4hxt%!A7%J^%f#j0<#@ z6Zf>^L{l&yPC|T3X)VEWB#p}EE#NKse!i{&m{&YPz=Ps0=WsuGQ|oWi^rMvya0u$qHBgIntcb zkjNyvlxP&icFvp@xjpG>QcQf$(Md)GGMPpvi&g)Kb9c*&@+}p8sVV#De-kQ#U`_r= zn&`zZ{Y_-8!x#D0khn`{vW$=qQ+fAyc0>%uL9FYhf$}O$^+jy-=QQZMHiEsy5Qga^ ze=~*-LfSoUSOH5{DgWsuzU zNKrL}-4TW|VScX;^zw<4iy$5?qMEhIBpb>MP&KL;N;O<`M>Y};ol+sa*UEc9vec;$ ztd!dyRSkW{RoBPlZ;hjITs~ie^@2iIUg4$fw(}pb32O|8u?=mzJR+}rT|upMx=tA{ zB>OXB(0+AiEH`?oF28JV6?4~t9iOZ-LxxVBrIwnY<=l8c(*hl>Wkt7!kDhq2RMir9 z(`YVyT7SIXUmffg+8LWWhQ;{#-YduR2xfDDtLf#ZVn@ali@TPH(ZMds-G?6EPUz8x zb~KfD3_CRMH5dU=ZIbR2nG*V2Pe0c{=6Hy!5?wib>r6ewJx z0^9JSw(%ko(0&@=e_=Z^$!+#csKpb2JF)WsLaY+=hoHEz!&WUlPEcY~cPvD6qlR~( zNV$sR?nq)`CRcz~pry}pWe0>`1EVWfVsf!Zq1=ji5wpI)zZ-J8OvHZS2u5es&GBKD zMinH&2#0Z|P<>q;dtUmRB*&u@9`+$IRR80kBxd1=%WZl(sxQc4g02FSxqpH258h^Sc|Url`Ep zrFHkB>uQ{(W#h_-#5S$B4u>QMb<^%B!0*jz4Kke zhZsuXbv9c#W>jN1sLjfd57Yd47o``h%}fS?!s@>3tD3=5w71%2vYSVu)2D zw^6CFgZ#5rKWigDVmes78uvJ=JST4$xfxly^-KgRzJ0>LM#J%M186ryRWZ@kWItxG zG?^(@NX_jbpnUt;PH(|k3F?0z#}U8T3&?+M+c>Q%8%v<7t9{uh>-54(iB6LhVUR!2 zzM=ME2H|}xeC#FW05OL^!fLWd=GdUuEheJjUK9aJ2F0p!aENX@zjY#;Z;<9Y2$0P} zz;0wB2||njoW9Jh#8yQZuh$rFYlvE#AONgS@W~m-f32WWNFI+=3?&(#v%C3JrYHDH zYuNh1|YO>aM%X=op*k18{!~^>XZ^ZA7J<&~E!pR)hb5IzQQ;Ao~-Yd$^gMtBuaAF2Gjt5gP zri6FQ{=H}c3K@<|NatpFh6KYuYMUSuB5$F%Q&sSYj^gLP%w^y^R1fOGXJ$Z79F1G; z*Wds26XUK}F|=qaBeBd}U2m#((pv`@VKqG=nGhadh44L7D#=O4=VfT~(4V~emQV6c znx?CQDYKrHv}=!lr`u*^Qks@5%Uz{`jvM`lSDp4N06 zvyr!N0=_Xl)8P=Vpk*Yt4x=59S}Pk5}W8 ztiv5-f;3!tX0rCg-HpEbOE}SL2Fyj`6;rm}ZoYGT01(OC;A_QhX>-pZ8d;jebORD* z&y)YEiogD%wPBobU+;Mp(hnWBOn+=-P243i$2KR6!#o`(10nCIjHO0C^=+o_f*X-dtLVnBctzIiBDg6pzxSlm~N(Jmo zxn4%|vfHm$-v zU57<>M3gP{qO~WWB9Kidq_81O+))I|_}Hs+cKc%3!T&ZT%5M9!2wSix$Mc;cKAJ@( z%=6C%E0x6)hr`NhWM_VzqnMHVpwwoHZYM-?Bg3Orj2Lg@-4sat>1$6#Q?8wCz2REx zn&f+hzz~NK(0gIVd^N?2Kzd+bifWMd^=Yr@%pptly8LE8!@B3BHKN35HqEPK=nArf zNoljO>)13j6UqkUw+GGX+I!k2S>7-)ZRqtz`?_QeRlY|W@RPq?r*x@M** zmZi~KXA8Gxzce7X@^ceSrkLbpi%U{{31N4Og0;MlD?pwcN%`k5&Yg)LVduPwkK0w_ zKd~Dq`t_#+pYu9k`h~-Dtx_!eYcWf@z*)e-h^Z%lxG5StfJwG(IwiY+3pl5u2Se#X z$rKaazvYKBaZtu*pJH{Q54qO9L?T`zwc0(;0}W%koZqg7wRT@^jXb}<+)mSIjZVWi z%D~nvi=~#7hWG8fyrIf^kr3&7d2}*o=`1qmP9XU`BjTzhu%p`R^5t{k^m!8CPkwD$W$*@Do;J=-x}gOXGWgHw*>BsWN{gIk zu%Dik3ppTa2TGvIH%VNSz$Eg3D$05bl= zqZ3*>USMl0AbKWkjk_+7DJwwQzfkj?YB%1RSr8kQ6Ms5Q{W-ogoX$jpPh&g}wS(=p zaJaU*4ss0Pz4iMqt_&xTC^zOlu}x(T&l4=!X3crZ724nH4zZQ^<(x-cnM^Sf0#iAp zQTu!swMf76QNoDOU%UpSG@O?_DmUSCe>eg;+{NF!YbnY>y(Do6I&pBjJ;|3fu+t^y zS`U0oqZ>UVa+P;a=gdTSt6|?$_G0lkyn}Rh_3e5cCkzjt3Y)U{HYTDN=&9$X41Lp! zL@n`LX<5WZmD}Xes9>C?uS?zO?Z7NR8Uu0uz%v~Alska8`JtTm@y<{TOjYaBk4N*4 z7e@Ae*1=AkK_n)xbrPWG)AfNNcJ%i_I4mWePCHAnvf&T2{KZ;it*;OzZ0`LGYG+;# zx#3=pM{a#dx1{ZSkpuf^c`53EM%&>n*xd6zeZ6Y9*5*<9B!gZJL?5P2;CXc1ni49q|Tc=-!rJHHGA4@Z%1hyK8Y#4*r61r|d1l`Cexfk0`Y zD!dBFVxO0A34^BdId`jC;;7Gk(qNczjPA?tF&NH`tGK-6_s?^gZ#|_L#6LJoz5ZoV z;tFkeUd}MxMhs>~EGzVgs=+BN-?AYh@*1eD3St??mX)d{>liJqGAo5lOtuh%7!I`n zDDh;XD3->v8cABUWU6_`es!V{xQ|Sh$S5tB3`|?Iv}-~UQR2hi(A7m{E}{w;LBWd-CNJwNd4{rsV$ z5X0|G08)nWo=W389jS#V1r&Q{ux@S7@0xe)-$_G=rfYSs6Klk>hU>TVR?LaWc&l)A zD@|j_fjC_#q8HnBFZJu+3?F97qjaMWuGsHbPdrAMU8-SoAX6J3!cekQA3B56YnSeB z4GofI2Cy@w|C$~0DDa$o%kU~>CGo8c#5JYAdd;1U)>wT?+$xBZWo~)CqW$!Qygt*`Hah~many3)_>Xa>CkNrn zPto)v56CfuvSYv=k>#o}jX*ZhM5ogRUdA^oji zI~ss4EVrcdZ=jS4$#7{~T}_6AR>A`ww)SE0D-sn#yR^zt8ul0BeBchQ%5Z8Xf${+4 z5TfE%y4uRZH~W3pIlm$00$Sqd)32m)k}d##zJu#nH&NOz*CY^}ZuRvPxSO34ZUe!I zh&4Ze(j>o3uf?&Fb@rGPR6uF03b+dP-&qZrsPUIRGyWsg#3;JCnALV5t=1WpjFOJG z`*cIZzwU+XChi7Iatw3qEJm)$e>H{GXrQR8^mN0_ifQ9!GA)-RtG{}w6^+B~BC8>+QUE-<5XRI<$ zOo&h!IX;)897|2su+R%i{Nd+%!O>DO>9FrHI3eCT#TSpq)7_p#V%t&Zx_a7=pR#X0 z;FwlL{??0vms&4pfTzm`kJ4;i+PA4Te}IYQ3?8Oxo?0e;m{EviqI%L3m1&P6o5-C6 zFEvIFAyRkBvF@G7lKs6T86K}Z6;IZvKjL`O=xC{3q}_ocwa>_w_ho0G@Rs?&9F zEAh?-)+BrFZAtDn7*s=vV#ax~yte##Q+oKHQ|Fb)r0-#Xb8NaUvr(#8)dn)DiE51^{W zGPcmsSGI&wKeMO{=DISU@7*hbr+QEIn2^DnVEpvDQ?I3pT`OGP<%d-q^<>FS1}7^hxMzF1IT(zBz_X7qYPang4f#i^sVy>WsEQ|o1|-Z7i-l5$!uPo8;n?BI!HNsF4XzgHkv4) zz4P;Mw5B}B9ky0H|Wpt&ZlW6Qd}i`#7E$`PrLDuuwj-@S0u^9~g`6F@YG1*)G}wS#^jCWoO(PuvUB zLr-gMZ?B!iA=|usp(?x%3u^?ULKgjV?RqQM^q4@|2~+5quc6~+FQJ&dcBG|X30d(& zL$GfCT2i(L(f9`NCj3SMKYV9vsk}|=EK%GJRt%t6FlRvw_jPpmJIi-Agc&`o$ZXHr z=(VI%>@b>jd?GzoPjtN`&*%0^5j2|vH3N>CestD;lxOdxKcX_$S+iMh?bL2{lkF1!bSn$)TJVl&xon&9_#uxOevl(m05(Y<}UzuOVO>1Gq9P!!BLeTUAW z(HVbSm_l#!c(K0neqdW=!~X$ZU4Xyxcj;_BP#JE`lMDQoN@jN%E+BO~ z_(}=caQ`jt3Er*|Vl4*Ng|v7&WZMPWda?e^>?%u}+AF6Rtxvj1Kj2J(c^2 zcN%tZyo~LZy5QDU6)aTh2dXFDgU)%H9;$@Hr+-81f>rNZ3i(+dArcs5tbTl74g(iV z61qBgA~13QK(O@sV^L;Xs4=HJQf8HV>kkpf6`3-?ra%Uh71cvLA3PqL0Jqak2?baC zlf)8(0q4gO+tPGzDW{Z}R&Uk=5-kz=%Y(bGwd{}Cmn;+VbSqRMt-WtTK9jXhP95l7 zKtd;Pf2PK#xrZ7fyJUn2MBNLr#X-TVztIMF7``Q+lMAIjltH%Ens0-A5tDYq*lqju zkVBL?sO7Qae#m@%WtDZgM#DtkdT>^^5P5=EXr5OTjw9vAtnlT1cETZn|BtA*?20SU zmUao61a}DT5!|(b5Zv9}T^fhRT>}Ky0KwheY24kVacDy0o|nDPz2|&be_)L@=9sHy z)l(B&gw=zo!q{P(JpF~i+uPeTly`Q!MBb~zSf)coO~!vvdHH{B@2|16EOWabn`Zj) z1@bPJfzEgPI|>mxjfu)9xDgA`tKh$BJL5IYIvC`#U%XX~1eQXJ(f-}n`p~N3cgaRtAlSDHV!#!7(xRu*P)M( zJ1~4J@dlk#m@}d@z%8TApR&KoF5K}-Vw0WplcsO7>xXwJ<{)7?rd?+N9$d8V_g}lH z-`Y!f8JvL)$44Z%M-5CqD1vUw{BqFepnSBj*m#E8Ba}fe=IP?D$&*&deadOg97}uw?Jn2z9hDQoyeU#9Y~PU13%CuN4fAlXe-vB;rAW?sL2fjaA1($%Ww>Fg>eDF zP8AxlW`j5y{ru>nFs5vwET$|D_1pcm(FYj|(YegP)!8?x;`%Yu^`qxg^tlnd*8Gc(wecVHE6fxuOy9EcXPE|g7iTsgeUeGn3U)zUm5&OT*mIs<+ z^O6}wABa91aK1_-A4*%TJUwEVUM~*}fOvE%&7ZbO#m`Jnn$YkE`XL;TZ6JyAreDvT z2n7&10ee2^7aEg~L{N)%U3`DRV@hJ>b~4Q=HIW zJn=C7zM<1yaC0_}$v!^0CM;WAc1uz&V4y0@s{|$8t{-3j$@zJaEBrbQ*5QCqPdSon z_N-jtXdqkHZ+AIo@QWd%S7GO*er@NgB&z1Ay}Vwdd{dM&_HyoHk+J0}=QK7WS9LUP zreNfigrxpoeg4(1>)A$VrekMQ=k1An=M1c)3c+h$^t<{)Zn)@o_N?_BEZye6Z{HpP z@v@^Ih(LRt&u@r$T9s1qSFRR&=QzVyLkFDhS(;R**<^i_k1|9=c>FU0NdEbDHx_kG zcgs^e_xaK4X$RB4c4KKU>D<4R^jO+Jaa@SwN^r6$k-^SOM3I6*4o#yj6(d1++qzz_ zL~Ft1=3si;(V%oGIvUL3{2_;V8LKF;^AYmBbmKiC(F{Gok`WiS7c({ZPkh($ha3`B zj5R%cgmbO&QtsNXn7=aMKL}hyy^I>I63hOU-@gVp8E%HH8uMMPRIUd2*K+G{%`ilI&J=!8D?=6*${?03 zzdFhj&B#5HjnepJ@`Y!ha4wn1=DG{RwTh0)F)ISVFijZ#Kqr~!Ki}nKrsQN4Y=4|h zOAtETGF?v^L+Ma%EMW7aPX}-Vz>LQA2@gU4xo^UO`0^d2#Yvahz_Qh=uujN#V#R*p z*;0~*Xz1A8Ra*XZ=NmK0oCbEuzU%STy*Pov>aT5Gz**sdqTzLbP*0}tqaG>pHV3=N zFfIb~{(3Pzd&^QR5wfA{`u*-h9Es($mn{h}1XCRN@Vi*S^td_hidWb9gLzhq-qFv@ zrk&pbY%MA2{rTd^7`meaZTfW%Yu#*QviD=NuV?jxvi5`+h0oGP+A(8IW_y`hrw2<& zFSnzq4u)%+o-g7c=*|uFaRIo-aTr33A}ilQ3-_nTTiDQJo4z#jv2Ci~bCO51Vb_~KaMKa6 z3Fs=Ic!%)qk45RY7$a1Vv)YGR@rQ3L&*!e+RI0!B8e{62qVe+d1_F{XqO~$vK`a)9 zSELx7$L>49G072|Tn<08ue%y#)gBF^k{Xv1PLSd5BoaM`5jpwpy%*jXy`G44{&J zR87aA+LZZj?m)T47uN*wYMoeeTy_jxc6T*qrxG*tt~~|Odt8}86l!tPI?=`Oq9jDw z5?->!T_W0mZsH0C7Up5=asb?~wy%eUkfutz(L8E?&i4iB#&_UJdoNnHW2s{I<6-RU z;f_)vb2j5#MTH5!WpBoWyXE5tU#@0P=b^~bFv#{ZPoT>(is8u*r9;d8Xkf|JJY>=o z6+SNg>q3=P*);to<<>W0MJg`OQktzP#nlk%m&!&HRXn5#dXGqGN1}uWsh!lzh`lz?(aoc`;c2CJ^ zXpF=q(eBj5bTdkq#cDKi*F$Yo{?@%5d^e%$anxTd6;r$jQxfR-k(Rdo=4*@}c^-f_ z2uY~80pwo%3HU^U*5!=_c+GUuk#<^ z@28Fe#h}jSmji^(Xnn;qZD-rdqiDQ@Dwgqy5m6Tl#gC@L-8GyS-;HOf$XSYm#LyT7 zt{LSpqRwQ)iLzAZYZ`GsT0QFkL=;uUXKa>GvX4!UbZB+sW$MYl3`9Zn>O%U*yPo7Hbjs3-&cuLFxGFR8Z zhn(_8<|^9rX^beAqDzjF%G-si$TjdWuy5X;q|QT;s&&B0-Em07S~rb-%|h>Sih)sr z4@tVA%96oNtmW8MZC@Qu?ZPW~jKxeS02F+hL#^7p$TsI?tsgbEcv3zl;^*@Zly%

b!z+C5yQ}PB%lk`p4{)G$F$<)z|~OT)Z{mJ05_bjX?~L^K%IZzp6GSig*;@* zb${-_LDC37m5ng>7UO_WI7mtsH=Qmq+dFnS`#g=NIv#HXXg13}wu$|jUdJ!2q*euH z4S~odI{)vWgGq%TXW;#MCpZI0z$svIaXNSLBG~QwqTtD}{w7>ft6fKb_Qqmb^g zRRNHh?n<6}EGSwZ*MgQxJu|KR{=lezV8}cOQs3o3Sz`YWpN2&wSo#FZ0ty#v-ZE{G ziSu|sdAd_aN2jN$9Dw%be%E^OLZA-^TNCP*_3D!Y?4Gn>UK&04(;I)u4Y(H7>6k_i>IdTrzz|+A(^$v8 ztB*b*G0ZqCDCRzCV|Z8$OljU;yl9bSQ*HU~@dsVfXIwGi*GFU`JuA;=UO&El_R#|+ z-ploYd~^vLS)b~vp%Y*fhB!)GW(nFml7EYYjUm1_RDi2b@8W-Vv@WpkynJc6#0uk6 zYnDP2Wej!r!4-$h8$RgL2Og5}9^$Q_qQfaH!{_+(R6aSh%r8AbQ}GI99E=;kyk}KB z{=L+VO5O%FRdTT#v0jR>R$VQ6NHESMQL+{rMVGo!(ml*HJ(2j%s-d2>SH;6yc*V@? zu~X~0OX<9RU?RDB5zfaS8AFwm-(WWr+^B!yXBuEX7Eipa-fbHcNfa~#K74%MNc)1T z2w!m@^cRLgVR&)bHa(3ld{j))xVz;RNNb%-07Lnfo+K@4Ht4@$JKJxw{CuuH$EV-s;$n*7!|z4bMo~*xVXCgKc5ZT9xc+A{3hBSP zpH9&sjHyygh0CUv3ezbj3u;T?Ot(?|{`6B^LHL6ye$`q0WY)^&^QApV99#;88g_MW z%xIdgcizQyyF7}Pw5vOf?bA5hg98TYE%mZTKP%{AJFMXp>;y(+48sc^q z5PwD%Nhqz4W7c@8M0{Kwr^+a?E6X+(F~`!5okuNPBxqiNE0+q{>S7(6r{_yDdQxQ+ zQtKK?5cek>%8xtki#O6)F`56_Yr4 zohMk!^~?PQ>b7r>ZIHB;CclP`)HE&TuZVVZOu5KhDO|4`5Kqxi7`ml4aPn$bivs)3 z(dIYMu5L%<+6KD z7lEv!{BwYe-Dq+9@(|(IDbEDLc_bA<8PTGja8_ zzT4B{Da)TQ>D`fM3|c)uzc-4x-EmxtBJOO?3eQ5gh7MhV`*E|ckdQn7%^tMI0{PaA z*R)RU>E&GPKCJ}|vE(%X*}_l;zOlgf6Bs6FJLGTEga-Qw6Ap+9pYQSjte?Ih7B}K& zLry&ei*PA+Fz%NPJ?@R#-EU@Z+q&*v-u_)kS)?*J#1yRnxj;1m46?pp z_^S^yfqsAgXZJLk>LH{>FbH5L5IUU-O=&+B?CD7Av!OYyuGfKd=53{QxWd4Y< zffmN^G|8?+v+i=cA!5|sMp8+U7{o}qt$C!NYIR$7IYE_H?DrT262lUPwwfq0v@jt& zmQ(F2`Q9Xr0@w)Av28h3O5NpbRS6e>FlNVM%PeBRlGyi}%6vjTv$F=9tLLL}WZ)^z z4H;!^+K7Gz;~Hp!$l1=wyz(=#$?g1yFKFilLv&o;yK06h&`Fuoh~Hr2n2=@T02{my z+10z>58VvkxzL0AZdaYT_hPV$L1OEFE(>9}hFRiMo5rP+H}eh7vfLH>^(lIMB$8x& zlCgNIRvzO(c|94LRSB&Db0WmHOS*Sd#XV)+D!OuZp5NpsqHljFs-+g}SNhJ4+T$^>~53AA17M2*W?$B^^Nw9LlIkL|!t-+kYA`z-#O?f$t>&0dq! zb___SvO`OHX){y=8nW7r($#XAMv6NKZr~G|+-;0$a&!;fIwWJa&*J$t%xl5n{;guH z_S)8(-)m=_`F)P5S2hY?bpxM6Fwr*>E4V(*ay^iHA= zbe&DRD$N)75~+SC%L9a$%c~N%vAMNQFA^+TPE=~p7TWD@Rs^1lDC3#mmQBw^ z`ni=2k-4!lk}*jJ!h_DfzKXE|uVwwhPjk&pJO=G0Tb_XSYypo#o`OAC)L7jwbTa4( zQF-xq3ZzUKaz@VejW=x_5RG=m(+!AbJSXigMw@@jCrZa7LT7TMN*2=IOfQ; zU*8*?95QFm-pvELL5hEkJpTp9H+yV8HFmu!{Uz9&KreQkLF5Q|Ekn!l3)GlHLv)h8X8QsO z>QpEtEkFYar5jBXEHgbww1JpE*(rmLR_d#^aq89x1{b9*M6*z<76bOlOww2}C@j$h zTYvr_^zFLGgR`sCYi-I#!w+Wh%qzW>Bkxn$?nM#P127N^*+aEOjP1@6l^qh1jL3Lg zg#f+5>cP0Z?oKtwh6p|5AfGSUFAKcWs%CS1V)O3Abns*ho>aHrF^T^TC`Ph8PEvu! z5{QT}LbBAPN_Q4U8F_s00>wX}v7r5Au-8T#D}1VRUXDUxsZq{5B@sWDT2w~EioKLY z+qg|D&($)bEj1FfG3{sIBUNb-9*T{uRXrrsAI&vIrrdN+Ls5+BXF+4VS|SSRPvxr# z?8%GS@@4y)^#Ob@fH_Yl`K06KX^++tDH_bwbu$%aAQ0CakIjs&VGeSm2RMr}0sukY+?%?AXbY0Py$pQ4ppEEJX&?B=qr-K~MG(4-J`u@akK! zGk~43OCxhK1A&NmdO60K{-sv|0-Kuq_=?k8%_jUj?_OYS@trV*a7#Ct5U`{3dG-c+ zY6#Lc40M(?427+`!-5Qc5DnFnlpXFQ6)>wV)7VTH{Qa+?=s)w43*jY3_%MJ?MNLc& zK@?KjsFHf$0C?x_`d}sC?>yJ+A=s|(|Jvui1D|_rl)YJwD~IIpsXCKZjIp&n|GG|! zz5h(+c7C(*PKQIsAt*{!BYt?BaA;SNAfDhUk!Xl{p(ITxUiSEpE{u)NW1YL!@!+&i zn)m2?#yf5<_LX1J5`|4zfBton=()&gEKy-cM1fT1G#7v7oKpjVy*m9M>U7&S(ANR3T<(2#s(b zwhHvT4KU+KoB|5|5;J!HE?tI5;o}`{XuRbyP(R|6u9KPYMNk?_dZlFDJj4)Tdv&Ra z98F`rf|kU)N~yUOWM8TEp5d4)kd4FTtX=AFpM3oQ=NpcBIjZ{N8#C0XKf+!H*y66V zlRd=N0k-8iYctNc=Xd{9hKp4e`daxBeFH8^`+JD@5^H2zJ->hR_uk>Uyoo9nfaAMw%FE zYK<^X7=TYzth%4#!L?E!AAi+Jy~$K8Y?7Z+>ry^YC%Y1{+cw)(kblm=IAYv4QcxXY ziD|C!4O7T!{TRUo36H`TV`63t&IwgW`H7>ojIpFOiU*uO!*Q3JFOGhjKL>metzWc- zV78SVpUsn>`Y;s+ITJWyhm+U0a$v;)E+_42lQgQ4a;bhA*)~*-2|N@9Tqe^#dTiAp zi%VLc-c}|NRAJ`(_tfE(1PO_rR}Cade8#k%smubla-0&q4|^=ZcYB7(Byc zsUYMf!LAR*yl5PPP1;yxP<(T{ES`)$zDS!&`@`Vn=_LSfe3RY#FA;#2t`Z`4yAcL$ z(?8PPXQkM>gds=(zUkldMQy^hKQd#0Nkf05pd>~I_$b^mO^)#DXoHN*foJg=Tv73# zb>;!b)x4g&BzC?7QXE8kP=faG*R^9CTU`97sZDj5Wnm25oD7 z4}GoBvB&J{=C0Q|hamm6oK9bEpv?DCYl{y-1Q~Me!IG3`f6^``&TszzQ_Qo^6r621 zAK@Nx?n~sMuMrAekQkeL8~2=`kA!Xe)nWV%81;ob&2Q-;#vt_eukvWBFrOK7V|3o( zE2A;(+0FdPT(5QN1p&He+gU^Qye`kqcyag=5M4@W+`8xRADDAW#H-5TIL5dtH>~P2 ze|?c=RSmJ%(M@8l8J&bd^ooepg0;=oQU)(Jr`7Qvnf9~FA~&U)r{uGmytKq=>%YsgbfBv?x_ko`NmV#L zSUJi7b+nVbgU-dZB7F$(q&WVIfE5$+P9%yUrc{6=Sbir-p;QtXx+Y*+xyVeaHCVTA zMN5URTF4zF;VvW|`^SAvz^T{WK;m^^f&B?V`*|Xv`~>5>;E^)_l%D*tj#9p7iO^7P zuz~FgsejkH63w)i+~h@4HP4=^pSz{HCDZRb z(f%2C%6>lA==k9fjsEzF{QP|3Yr5jCx|s`4<@bi`P3BqAWQUF)JIHX|o)LBJ-4wuk zr{P64@^;w9nM{laX9p%6@L#pXR-2yqKH!Mu-IpC^1~A>4eg{!ZB`jG)%C`_aU2Xs* zQo~T>ne4AdI9qu|$`B42N3zVo3}Jrbw}LyoV}+HX?gL5axrrF&llj}jVnWCS2xc$$ zyS0Ip&iKV{2dL48;gB2p>?cXfG}HLzZ>jMw`}~v<)uwU*8%a%>?unG7zxU0k0R%=O zPkvK9s%A#r4>x!tYx2UyXfX^!Nw1I6Y;UZ&E`V`zm^H`+P) zFyW!jx@TBh$j53Ho5^CZ?#YgafrZR0I&Hcm9r*)2KKfIpH5(JLhsi)3%>mLO^;lox zuu6~8(Vazi1nS>b+`gfNNGzR zr6Z~5E~`S_9=-eUI2HU5e@j0x!19N@UBq&Za}~Wk_uf}BVQKM6c}8FA=D0Q|Uz$#{ z$}2W5^Rqlu6#SM;<=krIL2c(6uNlT^=|z@hI7x)Stm zdh`2w&80~WffaPXpyN3tUG_cxkpm&v?KYuO&w-11Wo%U6U}w7Tl>`1r`#AE)q6hK z{yE;63cnbXF^bnwfvycjw62yWW{{IB#mXo>IGnV%sTjHM9pPpl&k!+%2G-UE53Dw_ zk93f$_Gj1&>twlm0F(JG9Kv~y!gxuqO6uK-H-(nWZ6DBH|pKV`so zTHWpRlRG7s)Zxa;%(sNy1D%eVYF7A{PUHWbP*BqYhXf&aYCAVd2gnl&IXdj+n$%_= zLl&MMfW_DN5ti4x>%=dw5eB1O{jqGFzsA~>fT*(i{_<3(#k<7^pW;5{40ANk-dWfZ z!Cl0&U714!s5i9=@Ga-TACLMv#{IeiQ|5RJlYz!+cRQ_}RUtZkD^Y;<)=nN=8X zFmi!yw+91=PLoG;Z9f3mqRkd5crE`cHCT41rN*9#A; zyg@&n5reK7r)N~#Sw{mgNN^ta`DCrAq;daKgvCWTOkxq%FlqL)<(jvQFiC^Y@43G> zJ&i}er4Ulj*FL!|Tby?3ohOwprYO8T=>j=@UV+y6O+6%TnzPSXxq){5b zTKIT1H1xjh{hlZP`Sr}<4;ASB%Yg6_;x+4&!};>V02lnDVZzrWyKSfe(Xvjkn#9P^ z`(gEVqS;^r;Q8;|{cdvY&3(AB^w*!Q_WgExbhW76tIdo#!NH0FYJ11J zTFlnu}Ys7)ia`L)KS$G=9RTSKUeDY}=HdeZpdj)ADy`3*I&BBST*e;85X zO%>un;T^gWEXozwfio6-_SsT1J>@E-an)6e6MtZ#ibN}(h_pXcDm&DYJ5SrB8L+(~ z6$-w|nepNl%*XJYaayUseF&H%fE1t5wbJ7?($!G?It+ zUdRs}&D)g}73exmPSG|=C`g}FVUJbw5L0@4ovbxubA>?7FRZa}$7@dpK*G`+v17q% zf^uZ><*xc|o251(-0%&sMONm1-Oz^Cu=+n-ED_=4J;BBX8ENEvw^uIj>(ja-RfZUF z21O<5>a^EFL;i3J#~=0<-v-LxjrH(D#@?%9V`)+j_t!2G=#cBpBcLg4P8#OF%_c-1?p-Qg1Er2##oO4#b499!(SvhMJC!sX!M7cM)UZZ1u;yLKCV^~ z5^5AqIqP=167-FEcHl2<=TULwqKFZZWF;0zj(uc=5A?3s7HFPxZ)EHHD%pB}G^Dkb zK;_bF+6S?%*y^FvwVmZ68yGWGcnJ|S3JOwfjN zL_{$XiulRz+i=L&N(9X6N;!wwU1Va{$nz+J8i*kzitDpowC?w@&ghuaw5;+Y z(g?3Ww2Ds-vdCS16kG;^7~l$m_|zL;JHgL!W9#%RY2el{RAN|p0u#{~{?}AmhkD#N zi2Pjl)WR);XJmP6ge6ljCe^QH74^03lc8#U#n1Ns2&QvS9UT$6?ixj^dKP-=E*U z<)fzdI|6pQsiezZCt^LDYaAEp=KtBz(*L+HJieIc<*;JHZ*>Znl-h- zAaA9ce-x#aKQt*V1oM+Coh)5EjX#{4(l8z=w1(!VwM(3aUUYvwiwcy?Lgt^Uq#|mn;NNbd;{w*wcrG?2pf~V7?P)Y9+ou z9w%nlg-9`Us|zO>^+YN&fo5bhXTL7Bp;AO}-o84&0pv&5VZNS!uB5EzKKC7RUn6Yr zc*z7zGVrdi_-6TvWa&q$+lrmuM$kNbDGI*ueND{=;bPw+yQ72QMxc3LkEMG>?T)ai zEiL8ZoXmdG9UL92Q|O9Z*Dhh4*J^8~MO8u+#%HL4*9@cKG2O8+e4OY~(S-R*tnakn zHhYm`vi55xT~@G0xATDp!=Zt%4tvxcu){etuHyVXBpEEiRJ8@Ijwtdb|D< zmD{6o7_v&b*XQRtP|DXVkYXbM=VX(2*h*nnGKx`Yt~?I=9yPlN9*}IQ8A1MR?|-=r z1^*H@4Mx>)A)~#=FTY(olaUFnR~ZU5 zgH#RO?k)WvC!k~18`Dc<2G^+W&I#+y-BqA-zHp}W8wgX8pCj~tWivViFL1T`Dg=d# zAhkjq-ix&BFs|Nm(u$nFyYu3C5E@FzZ1wu+u@>4aj;_2+%s|5UUI4@cZ63Eap?Olu%NpBAf zTR50<5}6A4N)?}w$fc=^^W*fwx$QaLF5RUM( zwBBX!x8Gi+NqWBvC%WDA!pZS&BJHx8joi+V<lp7*GOd_0EEa@*lc{{VKWD4_nCp-K>^qJ$V=AXO`Jjo# zaXa$MG|vx7Di@wRmv@c?$CGVlsSHSo0?0JG-?_(a=kB!q7h`}R8^-^BL`75GJvpKA(Qn zZa7U*70xMUz!4rnbvq6My!@$ld@T6uKS(G&G$g$4_dMs(eCJoN1viK0`TR4ok+9I1 zO!0UTBAXOO@2Mz~!Tb-a<~o$CiF#Enq5!r8mxm`F17n90ZEOi%bhe2>XS&34?ZA#j-b5K!` zhMD!LR@uJ&dP1GwE~c0nK)W2u5a94M-&A!o%A~iv*jkGG56Hn&F`TaooH-o73%wcT z;&m;x6R?9t=Rc^lPZ22&FJ${oXD@5`n)FH9e+KF4gb5)gxfkk)qZO_wV`mDSKh~M=7 z{|ILc>=!L7#>oroNl0cZ)N`?f<;x!&aiQz6FReh!=F~1%(9`4wPtz44i-Yi^aQCX; zGsJ(>@3sDo^>ke%!Gduz+G~4ga#xJl;B-N9{9~9xHUm#U9r#{G?Ht%L`d%#GYJDhH44Tqn&Dy@RWy22XIuo6@4aq8eZ_pv z(l^>Mgt!^F6k)!RwAp4I_$|EvN9=-r%Rj?P2>ca&Dvc!~blM|9pL`ZAqmbG+&veO5 z`H4@aIm7sS1*)VVGh=i>Q7o33_k(QgD2!N5^!n3ZA}w!mWo_9Q!_+xN7_3kTx}4A6 zn=z?KRD1I(1anm+gHy9%tEJHcr+V2e4I@d>0ygRN-`n?jQ+XJDucThMznyZEZbX4W zal|inqv0|2i#c`oHX0{(*$9G*CmpUe$&8a(sBvGqw-gL6CDg0-LMuph4CNvoxx(&o zr|Ckv-t{M`!7Sl6(x(RuUcMOUjCn>mn8QdG@o+^gvxu!tiDa9td2@Lioel`X`E-c= z9|PUU?G0Ox4hipLL)Vyg|MYAu8J&z)>G5|rh^jo*7KXLjkdk?fA&#lu_8hq)N)LR+~a0WLY13k8v>q?!DQ}cZ_oq9^rvuqrqxqp{E=V6U_mLiSK@+ zZ27uUN9WF_%5_qS{2e;RTUitsYba>>7@TuO+k(VPJJ|!qU zSv>mNYFjBbjPkQ)z^YiKM7c=m!~r$FV@%#y(z8eR)gNfzAnKaXTmBtr1_~3%b<9nplGA&6YEym$KOS=Oo?{&gzou(JJnt3pUSSLUik3)( zT!_Ea>2)3~cSGhf)GNJW9O!A!aDijH{u$-oI9`R^!c7lgt&(YcLQfdP1PZEODELFsF;^9H!Q9@#Mb@ya_j-MPek2 zFka3&c+)|(%gEn?5moKeG1O8g-;i##XgVQUKGr$}$ZbNqEb^MT2}&P01_R4i8Z)5L zEuSnK`H>2Cf2Zs+mV6N%GZTnf<8RjsUeK^v4U|!;CKq%@L*3s#mpE;s|LGDG&r2+$ z%f>0jUsa}j%Z{r`==wpeE#{pU7*8r&dEb3Ecnk)0P5f*)uM)k)*2hC8vt<>uJyWXl zW->8dP%l>AK@B%GcFLaHMF)&oP3AA-pepxi0>()UU!(eFJq(WAE3AjOZyV%|x&m>V ztEis!V$qSZeg~$ac^xmd#O{w*xA4k2s)9u)@T{;3mH?C4^hL`v}w0F{=YjWg%L8Cw6ylFf|mg;1PGXw zJ4Qnq(n;$>EMS^TJV~V1xXSVycv#SMwBvDjJE!lLSKI%)@_+GtI_-X)xz)UTb?|Ze z*9k2Uctl1tOk%^dg~ywz-CUcD&hZtew)Fs(JN&~B198M7=atD?1u>8t-O zqeg?-tiQZa3W~ADAkYB0ZJjux(+&1<3$AS8wv|^2(W*>;vZ{%la#ivGor;5?QE~PV zoW)}vL-y;4C>vg-(lS3Gx1&dsu^n-)E4k|vR&)ls!sbA*zcj=Y#`W|5>kpB|Ypq(I z53mw1Epi5$syvsMln56Bb<$Y`zLDlp&w7Fqv|5GHL9fY;FKM7N-UAciV-b~xO^yS= zKTfG)I3|l#i7mEYSxx`UP9U~*itAjPOH9;*-IFp)F$oEkbqyZ`Ey?y0dIyL@;=cb( zls+Cx_@w7^fpu+5{Cx<+N4qo$_|AYoje(rwQ6zkYfT%!<`nt&4b=6J2IZAwk_=Y+b zA-{$@0o^FBwhhGnkk)Q^ZpE<(c16P{aknZ!(aof*6}JM#&k+L5Ede{v4B9vQlY>jH zV9DN7f;e@3+U=VLRlfvYXTQm7n41V(D9s_ajG+&t;=(bn?aAmQEdIr~p{u~fF?z3APeE>u&S360t-v)+*SS-c*ImWtzy5#G zJ7KUGgKrC0NT$81zGkC&44aq!by2=HkV9IVzkiAE?fx71wYzMof7Trh$PxAdRF(G4 z!1l7gXOA=>E+|&pZ{VWQhWh9}2S8+-b2t1hUaIXq&h6S@H%?EHfOogOl6QrNI|CEU zFOjsUHXxcR2GTCvyEFH&^f^M!4CFMu3RSZTCjIvY|H>ljP`jU9qwv$5jphyB(a405 z)kPBLnjY6WuyW6#;U;@A+u%oX=>TQ&2stY|36$c6^{6DaHC zqAHs!J(h>#gQcJy#wf-AR^@l8#9OzMDsevqo3Rg569_eZVNBZqx9T)`eDnT0K?8{A zxM%FzvG2OaPVPbE-coDimgAJR~(`0_6}A#wPi{g#*~TT;8tF0%U?-H z2@;9#P^6(^bbo=#`{=>x6lX&c`{+0SK;q}cbG2$MtfQp!UBV9{sYkKx)llCP;vuDG zCc3g>6&Z=36;w+YKK~GQF8GUlY1X@wJTBNUk(^=Y3WL>TrVzJK7XENm;{CJ}RTnoI zboGWl7h-VoD=a*)Qa*Do!Fd`e-QqVT1jWvgf@{PSzpU3}w>hu>K;w?jT^tH9O}(GT zG_IMjUt0)Y9Yp!5=>KSEn_h`(dLE~&W$Yp$4(`&MCG8m4Gcz(IB_QtCCVs8GC5#xV zt2O7iUuWoxVM(K>LlHbF*=F>&56+Wu?X4#5XTdY74NXGD;6F?7DsW8j@H;P{+i!a( z{bg-ehi!v=_+Tg$yvs3f|CrZ6gOtJRJ147o>f}_mSb|sY;4M9++~)DO0GbXQTJz|7 zi-jNlgH=LfHLD$$s!qVEMdC$*GV1ZiKN`--`lLzVK4U~+o&O*IfR%l^9-*M}L*R#` zS=-XG^m=mka5l>$b>6CJ=3Ld6UAjhx(>A%&YLw!p?#J@(wbxfk;p7JnZ<>P5V_r`; z@$CnV)At5}Aw#IQ?#U$I`P_ZvL1Ei@bw5VS5nxaw$nRyjZgC+e6xB2K8Kb! z>>)4gnN-vbL_UyK#(1&ed4bi~Jk#1H82l>;VKY44c82%E2|qBEl&lAfh5cnP13|(0 z+o&L4h3;@bVUuBI)^-hu;tp+ub*q8u^KSFr&!m>mZ_R3x*(p@Kj9}6z69(-oNwNd5 z&od2Sf_JBeUK5={lmNr>+riPvuZKt|GeugGc>`HD3}s%M1`_vcB0p}bQ`|~GoW)BP z8(%+t76I3BJ0^8mvJnj!;+3U??Yl-KW_fb<^L!XJZy;zm_g)2R%93o{_Etl(to8P4 zIFr8)L7izT04ljY*bAHQ_G{H&M;6BW-reW*^G;Yl2bS@Bq3vVQebcMoo-tTcfV*3n zD@miGTGC_T3dhtPJcht^In753xr4H{fx45#g!Z2wC2%l6yl67x2Y5}6x6^-jO%>$c zFJlXXnpe!>w$Fy!NEHqKv40Q5An{ZqhjLiHmxM37=YO9Ek~-|ZlwYewbo^(}d!{LR zA=Tq;P|7XZv_t7#_8X`X2Aj+{RXScfAw~{{!Db9YNOZperi@lhZVEZ_fft@zd<^D zL1MflCAlS8HJy!?+jIZDwp!OUn7&S!ZL133kqIiB466M^l0u#f5ZuY})wm(;=0_-s zjeNY^um4Z!#O&>4JB6L_(?k1OdztX#Jx%SE15V7IB#V^~yYf_02|cPqP9tLy>KHaY zz5Lb(8BJOT+LJ`L&<}$6-0Bj^8b-G5zA_DQo4kBPfKi6a9K_1dkLfmBc_hg18%oYFzk4v!oQKmu>f0_9jrl z&|#Z+W`cEB_$)KwC@N+h z0a9y<6i2S&?!M!i;>V{LZhg6c!MEtHsq>E0=gSC5d9RFjT zRc|rdCfol)43I`e4$Liz#}&DL$9Rdp-~wYT*$!Co%3k^!+4CJm)*U)a{?>0f9P?zw z|0j(0tup~uytd)v;l?3%uPV9Qr?{9!-$cO?HkCes8n!+SYcpn)DbzEOu7^;1&y67) zo-7b~YungBV+t(JnEKG(di6x#NY=Kjc;F;f*m0(lN#0MQR5`5l-!(Sg44|!e3Y7tN|C?a}W z;^qG2O5^;f8PZY06(4hXrj4Bb^q2ChHY*Mu8jP0|l^OGo;N)9lmHi$(abFZCj9xf< z>F67~vGolXPReq|($ITQ_S*GGtBeCcI<7NEmKP;k;IVNAF2}EiyNZpfnFg00>|#f9 zX^+;|mmwP*ziy{!CrLs<2KfqXFUh1>xj63FCej9{HHm}yazq#f2SW8yBL9UrvlCZI z-U^AxLCsXQJ#S2P4tO`7ciXCR{aZdP@$BkwKl55lQeR+RA6Id#p)RpFIv#su|J#f2 z?&|b}G&uUcgV-6#?xYoNU?!6)+!D_OHS9CQ)ob0^O!fTFAmdzFv-kf;d}KK>Bu=d_ zykfC>K9ZLcL19UgzC~BUVB59Xiz}jm<(F~5m!;^h-|p?*4m#bvy-cmL`*;11`A9NJ zc=LR{y&xVdcOg2s%?byZr2{DSjT{Jz%zPU1Xb!()U&&hBVBKQJ`bkGt58%$wWM{DA z>Tf@f1OA~h#@9d@D2$Ts%l!zH1tES-w=L^;&8KHiF}aVR(US--K~3r!>Z~YAi+K^H z@UIm0OrP$dI*Clo^t?6Cy*2A@uv26L8Wxr+pHjCIWENb7A`-nQFBgk5(Lbr`f)CiE z=xUV~kHww8_`<*wREgqSyj-okgGz(9q2ekg*$6fWL;#b&kddznI-+$RIZ!^Wo%##O;Z|K4-orpPD#7-8ToqE2o+wEN6+sb`2vN6Nl{oQT0|qafMs7E(8m~gS$h5yIar@EV#S7H16&i2<`+6ZjCqY z?$WqBG;U1}`_|pN&UszWtNxmEjxoNGO~JS8Bk$CDURO*?SU2y55EYt(lE>;yn{jPJ zN)g?HB53a_#87rWmQTl0x66CajeZxa{n*p}JCjq`)SBhwQGNeUc^6Lamel86fyEwr zTKm_Y-C(8t7idb7!gSBY+if|7SD@NAHNpUgChL1m&zThZI7jcFGzK8pEQeLjo zJo%#G@PgvWH?Vu4=PPnDU`AHM1q?F7_wb`obB?Hobe?PK4+MPDG<^YWftV{}dDt;( zCz_;H@7w9~|BZwoEy5%1tz?-2Z%ROKcY6V;3EhK6*+E=nX+~tF#e%BTGIi&N>$TsU z;4#*`r8PJ6mlu2%N70uR!Dj& zqUFzY2KELGA>Aon(|N9i)J>6EdE@--vD!-Txvl9uzD|5G7BMww~UbtWPvBF5z~EyU+wiPi_Qv?l1F4wy$FRiF)+Bk`s-=^#N&w7C%0xz zu!?AjOE&JXK(3fFlkfcx5>mqoK)fp#_trIVRSt)q>qkJni{!mdhWp2yJ`&Z+EX|WJ z8%aCvPRg$`Xd3!BjH62!RAx-jM+kL$r0!5P#6nA1n^;(vH$p@m%duLSrQVH zerdS#j>RLO-Ml;pA3UQ3vcr}@3O3~G=NjP0w-oh;nKu9K>RFk>4euZ~DQJ$*L+*H* zRFo8#l~}$VQbHu(?8PL&7pgIDYf4ZbRb;pA@skZ8Z)VBpKKM5ngVC(R>d(KBtihj7 zLVtj>Bzk~G-ai(#ZSSs>Jf2v$=BNY(1Yrrl_yPv!3R^G1YWxN;w$80_fiRxoA*O7q zuiF0WD_i;F954GMjl$$>ChQMDssWAX4tG`9M;rV@?>hEolPPQb_>p-H^>@LTzZjn} znF^)d>o1F9E6bn9#%WuTQl<4JcgJ>@r^18rL!hQXYsdO@9P7r>QF+>OOgXtOVNj?o z#eNy|uCDeN^seCwPX6aW=#jmZ^VTo{GnI2Qa&0&U zlyTr0R*7ZOuIuRxseAB^BCubbrT?3q2x4FK0Nm$=u;!YD9IzR$GEC@Fa*fM6$``&b zBvI*3J?cI4R0}ZYXEBOse^{0s0`dMHy5I`Omr=xy_$lu!U5ww&w4$wkVr#9m zhpPRcWo3@|Mx_hR;AE8tTo|1OR4rLPiXrcsAT*X z7|Y~)*TI5h$kE#;vw2>3^85*ggF2B4hsw&u%@x+ z4Gzh18CLqIOl}`l4W7Tii}3qaW-{qwfr2cQrZod&Q=1&Id)#vSXT|VtyGH0k8Bzoo z1R0oc^gFSg(|kJ#KDt{1HA0W`d`;ik|A);e_$?6isloIN)vIEPKGjcd@lPM>HtJBf zi_!~LiT^kHAteT3--szu$9AZz`)I3iDpUylMjmZ@?R}bihF>l|7u@tRZ?CBde2xh4 z^m#c}+FbF6+}GTxgS<_L2s;asJUD}^+j#-#gLOQMBvezy8P6^PzQ{>loQ$N5=^^SJ zmru*THb#g(9KQxzO(eGh`x#!x#;0bMPM^#=nThiCYC$;r*tBffAJqT zNwaNq^xO>#I}X_o!VEgbpAmL?QT_m*0C2cp?>5h*L;gB=TwONzZDXvX`YqSG&7Im$r&7rN7#DHUD9+E zR`IRT@2s$o4pLtuo;yKpumF9QCKK&(0^YV*wX8R#OOxqZ1m-MQllnM?9q1l7=*n2y$P9Z+%Ank(T%=sEpy6(RO9GW1Ov2~Nz?6mYTL zKxoeW_kO9zXfD;Sx*c*olZtMfRB>pwi}^+-dLJ3ePRjxyfg&)m62A)Bpi zy$jO&pKWVF$JXgnS4OzQ{OjA^7o$?0kbk51ga028O}Fi${X$8ZF)lge4_-~y38k0H z*Tx07G$h#!)Z^qY?oYWv0qThNS%&}qx}I-M3Bo~rV+~ikpsGfqoo{2PzN-u?HEuFnn;j}@oEO^oV#2x4@Oy`95C8Z+STaQSouqXoH5*8` z^=shUFrsDQgC_BhLGOzA=o8-y`i}$q`Bw|HA^X`>KJ~k6B%bA2 zAG#KDz1JUA#$Wd#Mtw@HC}YXpt+-{8sJ2XX&Y!QTB%>Yu%a4h@5l$0{B?8uPsANn@ zCKv;={BGyn@{*X%Gg-tl?-OkbLK|3;$Mfps=jx-4mW@-W*JKKVGr|{$OjShnLL{LM zn#^MVsjL!0EI~gBQth^l9o9wi%d0l>4phZsf>KhKn|quokrz@A#VJ%G@ersTYw6+F z)XgS1C+@9|+XmPp*AAMY`n}CmNb~$y-A-tTA7igbZhIP?c4?{4=vqxebM&A2IF+h( zthjQ56=wIfj=p*r$#9#uOLk!1Mw4UOg|F3|3(cEtLHpU>*`eB|+I$$$EylFU@X_iU z-a`+;YzT6my2RMNA&2zR62o@12+@EF@0TPU))0tEby$ywuNk(U%UbKH0I2@$tB9w> zw%;nB_4YV~>KD=ER=6*Tpk3*d#mVX}Um#8zY(j%AhJH+^ZxvS#el<$V$mnKWm$wDs z8h7%4%lJr2wsn= zkk};b9Zvk22&?t4_bPPu#b=h|x`_KM-hd?CA`#k~Ke4Wh=28!n-qeqvp{Q z5t9BnEkj&Wh^?E@5~w`%CZl&GNWPuX6(o;pUJ;(qbm~N>0YA~zZ>#rgiW>X`W<<5D zWpCoQ-}qzDL+5f!SjygUVS(=Cpy-Q2bJ3zAO6C!Xyu#4;_p2`1%69s+Hu?th$*WYL zn%~7)lfl!0Zguvd`|OW}1NaN1K%!oQHcx+_^Cn$zz}t=E$?3V_s>7zgMZ3#B;U?Q& z+!oqEDf!T!(Q_&u!_{I2sXXB-xE3NRrHzo~hyN$*B{&766zos5SI(wXmO6jYze6>9 zCwnb>?!=>x$G6Zhwjbs3e$qmbR9HQ{%^GGE3NU_|Y&IB~t6xM2c<~Sg`@h9(9)WNe zQ4}(sH$3T1-*UYQgFkcYQ9^@qYqW&e3d%|>7-Et7oO^zv)>nY`Oh_z0@)%oRkdSKKrBEM6)wt>ZuGqjV})P64d z-PnGAD3)d)TaR*pTj8MC*GDG`zd=dk?4fE9bW{ThN_P$Q4>Vp%a+-&wmNSc@UW5Fu ztK$`KU#^5UhQLnW6UHd%p4o$!2m5a#Re`O9(ISUGbEiW4f<7tP_WTRD-#F9%wcBzX zyNW-Lm><{+!djDxHj`s+n&-@X7!eS^sLszoI$IMJRxO`Yxqhc3{>~&<=qWJKRh<^YQ2n7Ee%WN3KNZu zcb8Ui{PhCc?z#lsKc{(^A{2KqrqI66_^#JNOw@AhxfgL?4&t+%F(gIUo}A& zY@Ty^yre4~HE|Rz7cNm24z41f%KiL(rGT2h8~C3f^`kFGt>Npl@4K?=8$@{Z$H?CR z&CBgfQ)>0JVt;io-??$=`pZ)=`){7`+3h53k}fmbdgF^0@BK>u-977dRfFb5?46*! zytU5e&YO+(^J)?9DUOdq$*GP3U#JzEU#XM5=O9dms5NW!p#ox70I zk3PYDU-?*mFe9*LjBz*z*I|59(A9Fo-88WkLDnR(r_)r}V)6{J058sWnFqaF5xJ)z z_3eHiX}&*18jm;Ao^jzA2UEf#+#;irG;M}=CYB_kzoRHmw-c3=y$pxh=|>;MW#ezc zTU@B4Jc2xLFC%2=5uOlXa|No@dGuC9&z7B-2&X{Q;XB18$;pm*U!RFvC8N+k=DYg- zJNQmwyOYQ~wE2bq^K@~#@iFbBUC(?{NCMB-v5+6nN~+{W>*XzVR9Fm?nKx`*PYcsM z>;7eOp5m4)e0^C=K>{f~_Mv$J#^pbM@{^qeQEsdE4m!{Jv~ia!WMIisAYz5sAp$b_ znfIz}OGwa?Jir2i8065!Fw<*=T!#_qeB88|COu%Wp;wPl+F}1m0)a~WLl_hXKV8w; z;NK{^pRiF7In%&(ad_Zi6X1v_Ha?x|`+~P>=-KeQ4QugL#;0t(e7)<8qyxS)m0&^|2gOBo?vPj{+_n2IW#Ub8{ z_fGubC%x!fBSQ_hw-ZXNrQ@l)@}{rf3q}B>^Bip*aW{%lfbdsb9y+M0MwprSk`}Vn z(XvFp80_oH3FH?ck6Y#b-yYjyZsg}zn&UP`B6XZ$#&sAk-q1GADm?UYuXTd&Hg~#r z=4{+=TsO@PrN1-}l#jt}FyFfVq_EV_wFIG*S{$hqZrE^;sbu&fZ!E+odNjM%zwKz^ zsbY7o0*5+*>7Mqq8cSv=2RHR(EMJJF@y+ZcS8ErM(@vBh}e zUH9qBMlUzX;s7qYOjw85BI`MN_)#%jxO;97)3ObEV)jaey$-T+_-QtpGdIoIS`#x( zlZ=3o>NKTrr?vtyAhw<>dUSb=~oAS zH?I^2zPMEZzp*^uj|(SQYbLSreQW7dXA<~}UXzY0_M`aBft{BTB!r>fsQQu|J)_?x zaI&T@Az)D4v55HN?B!j?lf2|LEG~;~4A}CK zU(%yB5*Zk6o6Fltmm|$D(jR3CkXp6fGhcu~gKb6v2+4*?K*ojGKom&&t%L&p%g?bx z{O|At^|TwueHJoV$Ef~40O=ogd&WTV8*W06OM&I z#wiH{98NgbMy7ifZy%@g%D*&V%DdWcdsDTw11#Iu=QX$svKoXd^obus#!WvAB8$2U zVsUx5ryCsT&f;^68Z0{)?3X-5AmAUEmp4`v7Bf1^pKnqv1-mxM>sAu?H zB12{uYI%-`&*sh`J*te(IKugvXCOhu^OSLHfl{5)8IQ z+1N3~RFz6dJQ1wbUa0a$BXWh7EGmp<8EFjRlZpwmn0)B*?B zjfu_a%wI#>>BkMswpclYj8ugdddYs=%q7-nhq7*b(qT}E zrFd10Izjr4{p?{mtMEuWS3CF`6CrWlVimXP zv-a`5m_%4xna;|;a|GAjg}F+3n1@XWTi@5g)B*=uaVA+nv-HBEHLgXH{@Hiji&Ez7vO(hT1$LcRX;;q_ zmn@Hl2-yIGkTAjam(^#Iq<5b`>vLJp&7m!mMZEp&x^rNdD3g#kUxK;+XBGh` z6|N08x93&#Y9whi14neHlRbBgbImDwLQ7>OJ2sr5Z^YGGbchanux%znVY*%#gs?N0 zy7GL|$h}lKu;`}SgGw(6QwxrdTzH<*o6q%8N^UJq#hvqQ{e1SLK777OD5RdhQjkz{ zWghX;S%Tj=-4^XP<7k_2!H$0KEr$wFnCq4Ej@;bqk2(SB=my_)7-M1K7LHU;rh@qg z?C}2=invrp?Y-x z@VI&&WLA|yHZwP>FfaT?X_2m*!0D~hcZ_A_7+7E*lShHHv0@FXHkDFJZ6Z|vUi?LKaPNsmFw~S{OpB63 zTb&yn@NsiWW@oIGlcP499J8OPB-$kk!>|t4n%I6>X#p4Lb$6}H zvEQg@sPrY&c<1|ot4aD3`!N%rAnzhA`6oGHycesi(K=Ig!6^wB&d+dJWEk&VE13VZ z{b2S^-l4LpO8Q`jO;9mL_z_T(;ZEhu-M3tp;XOZ~SRC?I?2l^NYt?M$yURFcyxSjg z8Z&+|37r}h>k7ZGIPO8I${?P(6CGRUB6H>X!km8*fqMZ7-@Kz|dGF_TQf&_L9$|g; z5S>}}BZ>QBE`DWRX-bDL<+pN>a@rSvgUp9=L|)WZg%K6bP) za3+5+-S~?l%>E;G<-VU9&HZPUO*2vf+jUUox9Z|jcRST>$1mphTykR0JNuDYy}Meb z{q^`?%RC#&(Ry~-8eMsiR8t-P+MiK{6AFq`{&p~>&EIT!Up*0=T0Z;)_;Kh#`cr4Q znN!tJ1s!*WtXzm3;9gGxmR(fVgc`TDx3|VMmp>?DsVdTiY7X(wqhmR;mMzI-V9`;<1*qZ+=-vL`|ywD&z7-jV}F85wFip7Wd3s8U7p(5nZn1z%y zes2AJRE!-0puwF;BMt!OT8^MjQ|0X4T6KJ}B9-h1O2t)`;+t;h5^6I}U|Z#zPMvCY#sGkp2$|js)9{BU^IRF16e8`pfmO$pp9o+e|Jm z)94XSS8X)`P22GSU>nm`w_5msEe{yH_#ZnYrDEe~e-p!y9N?3h99)z-M6)Tw{*|5f zpp=Q8|IJkTr{Cu4@3Z|xe`h-MehjI^btu-B~bE zoDk5X%2|Tl^@YoWwZL4{u(@Rprd`t;AJM0v>ggj8z~=wH`ArgSktiFf?5cfM#84S# ze7`ae>SG2B??QRJ7)vu9r1PF+^c4xtG4h}L-ITK0^5Kv@71kc?nIHQNE16}E7BAB? zv`8-Vkzq(BebdcEOoFUunG}R7qmOy#c|w!2D;ki>sB7-lXqxWu$IbI_MV#=_+}}`b zO=L(D&bo|N`>#K1d?MDu0n^3h%v@g0ft08k@Y+Iz2h{zOg|w%y>*6d~BlZ~T& z&Az>$K2#FSgOU@bA04)$wYBk;5b2r3qLJ9h8n~adaxMDPDF1l&4C)UUG$O_>bzkOo zd}1#NlrvWxgo*mM5;`X^v;-Q{q=3VhaP@X_NOK~=ZzQGg{_%GUfRylSWuqrj0&dY6 zZP7CdjE;`(HN~F&aI7#uU;RFqt#^Pr%N}^UAa{q&O9t)C+ARK22-v?@egv!>Bqqb0 z9WlXVCR;Le1ATuyEanDHQNxXaar2PYC+jS?ZYIQ1>+9${) zF`0}74tDPema20%4g4XgBGAcZyIW-Ob18JpzR}t3WfKrojQV$Ah1TJ6r$X}wQiym~A2B&T z+^J}Qo9y!uR+nX3>ZR=r>hUigu}in85xFCS)YSt{$6h7`B{*t;pA(&JyqC5$-OHeH z#jd{{6VKNr~b$yGfsylF2ix^Z%;}&s9OFR~hTgjLrLL5Iu{4RP^E^ z^X1$2DLC&9qS?&a^%Q#vJH=c?qNZ}*2Q*aQ`3~OKTC4_?|D}lNoWn#|tN35!zH_c)1asbJPOe?%eYRyu3rY zUK9RV|EDIPz>&wevRQ#E%^cm_fyQJKK}~Lwx73$xk3W@AjVE);?*Sn*JLdLPcd>e$ znv2~3Hh3--M2)assdbe=^o?fTXl)3XJ0qigTQ$|oX>n>^;6rh zDMbY1m(XT62h3%U4@%Z8jpQHcFA8KDTeBMSJdC==q_)nt1bu^`po)62M4TNf#StqP zvi17bNme1c&(FS%=aInU+AvK&o0tmNQnw@h=~Q^3j$*e_3MZkFdSNKUQbue7r>+U)c$$bSisPK8TY!P$@8O#`ESpanY|wpED0ZlX3^8@}1#PQPbB^|f+Z|@raVgMhhzHHFX$10fw6{s$<`E`X0lc1C z#WNl2zY_@$wi)0%{AqKuv{n=z5}*5VR}U9(1uWHekAuaaVKY4@T;jNUVjF<-L%|2| z_%plB1z!(=#1(LC9^KfdzHg{|<_r2>_4r?0K@PH}jwdzVeQ*B9<>&ip)u*~feh|5C z7Qe_i5PUApPD37YmB>n(h0}Dm!^e`9jaAMo{&xrO;~hVZbLnFt=an^UV8SeAK*~jP z)WaOV&X`#be)}Whvisqn`{hLp80v!o#MpQ-duhM?XZNzNdwJ|0fghHHfI&y<$fZ1j z=TnknAmcUriK@s5ws#~nNWA{JvXyd~ELn?KMxM&9nj(^*&nyD(`Oyu&m|HUX_>WF* zrD>qq*ThJsmSal_ojskhi)0vq=Y*=AX-{G4INti6!a*wMhN{mj<-r0NgET1np_wh< z)uvF?q~gB|Me%-SjmgAA@NuGkWki+;!PI>2$yYf(6nquYVawWw-0j$2rG!eamh5xk zJ8rSkh4<9NcHm3b4~Twek))(8Dv$YrDXKqy*v%<+?GM;}Ir4Rn`z5w226w$}Lj6@E+Z zkhTMN=Y~jk6V(sAoj2mQn-!j10*0-QC_SzSmjrMmfG4+YAwT#=`7*5hzw$YFy8U={ zbz$P?u{$;Pce+(bO*4RBf8Zk~XDH`C?q&(EUKLFpl&P_3DXZI7s`)zq`res3hfc5| zRLI-N53W&b2;}{pUx()C+sN|rr}cczv&-{{>7)nFFGkzLqpJ}7ZN1eG@N%$ZxB{xu zef8g;u)K@vj(O5gIc~(LlB(wt?X&HZT>2(};A8vWfy=+<{okp1iE*$dD=pG&V-^ja z-R;p!oAos8`1QKlGzMm@+1PMc^LA->hpyfy=e;?-EWCdadE6>+fE!rNy_1AkDU9l^ z4%~>wpaleDA>bE;+Q-`L3Wnxl(~>jVz+|5)YazA7ejyb}{66o*rQIB+LDZiyGNz;c z3H|DigFO7Cghus|CXOGvMu zq-L#B)SyH4H#;gt5;$22aBY-1TcAKHS|-Ta8nY=AgxN##kJXAQk);ysY5Xt<%8XMH zyhn&uZRfvNhZZEnB`C{xOf5$CAe{}{k@*$N>mV;cjFqr`(Z#T4-7~3_e!AO$dc)Z3 zmJudqzQ6Q8g|!6L8ltL;p87uX<+NQ$fN6Oa0NJUH0@=4)l-&X_V(j<6)D8DF336gW z7RW`w&o6qy6EH*!+D>y9b2>)s_QVfO&Rt=Q-%icAUCe#zP=(IXzf2W%D2^}jN(7bn zl+93AG?rE6{_8u8+f;w3){+_F#e$cT`()6<)14ws&f`t|jtpm6d4zO}DY+l*wlP6h$eQGKv9W zw8YM1XtoOE9Kz9KLh1$HCwvzcpGps{1oM0*b#{9DNGsh_JULJl+xxozKG$1x@TmdN zk6+7kVr)J$4J1WnzdU1*&w{&7QX$8LY@Tjn(ag3|*}YW}P;2s!LkMiUYU*QXgQ+v- zzf|$P7 z{y5~)ND9N%SEN`JiCowuYIYmdzl;)*g$WoIdNDHA^8%A~4cq&OQ4rr1F}}=lGL035 ziWk2dqrl6>^2EpSo?`NUtwRza`&r30r}@oQ`&yW$kBJY+_Ga7KkjA>q`eJ7O`!)X$ zr~{sMi7QuHczfL=vwYysV3Q@^4zfxYVmXaxUt=DcG49b{hY{NrQ7qE68S!usg$!TTP2clw;0Ch|5}mFs_GWKeM${)StTBm{-H2nP=V1?2mn;F%N2mm=kJcw(VT-W4Z;SE zTbX6d6AbM-up;^^k<*(ScrYW(XK?-0uT^ZHd)D<7SP>F0-cd<^Iq*fKwTB6GUmvv4 zpS;gd0|9sd^ejTo>x1hi3F04CUHf_z^%l^NbpE#K5=1h%b3}rnd=eHQ!hbevr&Rgd zD)zY?cD1m-&~h?UgNA}|9UdNqro({c()#z*2vW}ZhGu?3`In}_`Ah74DWlm5zE4*o z`tD2)1nW})-5&Rilu=Wn6R5j4EXr#9nT`{G#qQ*k{6yx2O}LkrSrbG$`2pu*{k3BkkQ3=D@w5cP3Sk( znIkO@F5l!$E>po_ehVp4_|i!#l#ecehe|xxvxHGuvHphDT1jxI75rN_e?hZC53UJR z_Ltnpwh)Fkq$gw)O@7@z>8%Iy)$q7$`RnMtzPjOgetiBr&Ecdk9{=_1 za`#W|OkbXt45mvF1KOZ{7y&Jv4?+GyDu%QoMJPgV?x}RttV~TX*LkcO#W@~a1CFGd zIKhU*;#a)zYBE+CN+i81bLoN4qFFwwTB%`*cp@v&66pqO_si)dNsx2o_FCP*;M48P zPwY{nLOj+prX2T@Cox(dsAKx8jwP5Y`cMd&PS44bwCGCpNOTvM?xHFVy5;bh&|^S2 z?12umRS~4M&L75r3?ZvxqzMvcq!Ii-F1agtHvnWq610w_R5`|sf`*>rJUduqt-?|S zK900yBn6)*AMWXSx3(d{?7l`*M{f*TbTN_%Y@h#RQ>D!Jvo$SF*JYsHv*t$?-GT9~ z_Vo6bK`-;`Jkxb03)euym*LdUA(VVasVfW;Tn(7rx3Y2^u#3L5M?7va%Ws)!{&^()D#)?y5h?1@Off>h zo|nhOcxQ^5#Avz2S<>O|?HDAH4%y9hDPDuFPXz6fp~KIEnrPdjjwJn`Fk546Hq$!I z2GzvWdsIC4HDJIR_OGM#vx9qXBEb@CpVPW`L;HV5j)hwsD=kKYHy?LGi}`9B%AfD- z*#I|GNBKWb$a9<*q%R8-6mORfPH2uQ4N_S31sa5*xBKS{nt8L1zQU!t#(Ln}xi1Il zGV01_3;$)!zH`hpbAk+_*b> zNDnw9m2T=(tbNmLQ7dE0It)hAxOXmNG_1SDlRau;ZknQY);J_(V$RmT6^W`VUw}hY zQl^o!K>N9vnlVe$#{*OAeH5@ZDYA|}Qu}GjzxHSieaQ1$lGUL*G%_f{}Pr0QSpuH!tN*ETyAkoM^#l z6c;FJ!#A7P{yr0Jc)-IFm=P357O9e&8rYF^EJtzmDX_}czOQ+eN9JUUZ8ik`_lbPB z4T0ENlI08z(ps;re-_FZ0+QkHZ}$FoHa#Y~*}vDCsSDOI9HTd9*aCYEe+&YOc)6Npd{&yVeWjLw|B0_D3gMp-N`>b3gwDHi>lZ97tM$cn9i$Boo|qf~d(pk1ewpJ4 zho(D%(oRzw5dh46R}0Y+H~V*4cFVDHC6Q;mn5w?P62^DZ%vHwE-`8cN1H#*Jv^;q@ zR6mJ7pWRWSfgnx79Tg~sSt77yV6kJGBkuK2CzCn!w;@B}c`i6v?wkK>CCLpM`T{4P z512@9x(4clJRN+XO@iR5fcuO4hktj6ZNH&{V41w54+L_^izD8iC&iAR_zpfzan$EW zJy3Qboh#vdX#8z6(P`6$^cCnjo1)Od^dX|-aY(0X%Sx|1{U_RoD_NEmLcW#-AhW^N)7nPspo zmsh)-x9M#uN;*5?vA$>dkW|Kzghbk@5{o3Ca9+!r#k+G0+8}cd&OD9|MT-{bu#w5! zVJASP$nE0;cG;{>Me(U(QgxdnfSZ9=6Q}DW!<1aG!j#cv5Yb~-M*x7?e z;&cI!2?}D|PvP*eu6mm}JMRVOTbo5@-ONxB6Gm&pHIhHSJui~4oIe_N8=S}FM%g&q6$AjpRkV$ z62w{5Z|5BOGzCl|p*4POt76h~U-#y>IAq6!1J_AbG#`zBmz2_1^M z1I5H(i~|ucL0_1GC$&}*c|Mo-4(z`483Iy6C+BVa2~R)VkzU#4=n}C zU98ADV+U+v^3vaaV{=IoCU4g_AlWm-9Y`Y@MqqU6t4$Dus}Sv0CC8nxgqNH8xP`|v z+TVJ8w-RoNMB;Xda;X-mqAhPxZ)WCL#j#^r8Z>Qg#0fho3o#8a&qK@{&q9E47LZVI zRolJlY94k^f7yCHlZ;q-J9AHv^v)(#h_|sE5X>fd9H9pMs>i!tdN;GKN2XRo8^MSe zRXN$fUH+n3lKHql>(E6XOO&LJ!0`bpZq#_RXO;;%H)LHTnK7bs9d?KwduiR3rcPvY-BEI-tz7Pm2d<;VoPv^8%?9Y9SOIyWrQh{5|*Fv zSsNv*oz4|8Pw`JGpF$!Apl_?EdNok;#ssu6J`*bPFM1n2%p>0{pmO;EKm3Q}5;* zGEa%|4(vfN1Jl(!3S2HidIWE9zS_Tv7b%!#O{*O!>S-a!>Fqa~?NPM#!c>30a259$ zk8l_rwNu+x@Qq?O&4p|O7KU!Qv_E$TB6SiUsGNQ$F~CF@Z!(aXK$$f<$Mt;)&BoUb zB?;)@6{|^*GUmd#4XfdN)<0~pyl}v05t@!5p0b}3^-v&p_qFkPn?&2Zeh*R-@c`c$ zZC8&L|2c6yUbG8ezpo~21!gKEf^ivo0yJEfcd}6xnyd~roo{RRkabS5;|BCUI(Eo8 zewU|Xdj&Q<==nlv>jsUa+7p+yYemX97!pb?e50qxRXIAZ>iIhN=jVeL+Ttywr*IO5 z8!NK`t(*Gi@dyu-YWOA#P`%XlMb&VwY&XPg7=B09+cLvBt0*&9T=SPZ3@2P7DIL9u zi81^iL|MCOzL$N1-}bZ*%^T8!ld{wfszPKo$>pTB| zG`y=pHsrFijp4z3PQRfxeMGOz5G?--&FQk5rhmO0%3$hP186!|J zT{Be~vqybeXT#WyoYFG$P8vLQLV361Ha}l6$S-3FTl=VcT94^I#7 zV!##8gG;=+;fBfR_(rrL`>6zbSlQp#|hx54tNzO9P|V$ zFap=sK#(~6ra^%Q=;Kh=%7*`8$T<{4bVa0f%pOxax; zT2kl!0&}TcXwD(>6Z_g5#UM}8oii4pz%W#4Xy9jiB+Kk0DvwWoZ_<}G@la~%m1s6& zM6VB<^T^IkdaE)+M}@MSG$mJ{(oHN{a-7mcTz1pm_Ks;vd zq0kj#M$YuJq0DHMtY~T>0!hoKTA9>%{@Oa`j;J1+JqJv!v7{8ykcJ>;lEz51NrwWsQD_}b@xHb|o`h6b08Jl` z>ht8?t?}!PrJLP_<;TV>NgzoO?FZAY}m?YxP{L%vxm;ir5a%}_B)JnG%(qc!lRHC{a&V{)*hLw zJ%|5@@MmBSMJ-^GkKk#BhyFED9^!OF#wB)C#8$wYN1%2UKI@voCp3MlLdg&0s}JIN z4e66Ys~)mS>YultvS$nj+2M05K~eDxHBtKkult{BA#&R6K3 zQ6Pte=@IPb;|q{2^%~>VN=x z!9#~dKTg#I$t<@ic9uh^8NDP#>d9c*9MbYa9B$8e!3!cB_2BSYex{@^g7p&y>AAxz z1qcwS%}lKD*KSO&+zLcu^3)(HWzu_+2`2wTU6%9a2Rk8C0@21yR+RmC5pDsyr%BwY z_YkiG$lsp0hz!y{N&hou{B8c>=Fgs<5unSYj)43PHN$! zYPHoAW^Rey11)vq(g&j!K*Uwl6bE z0Zq_d)_?}+Gp`721 zdR%*5J{PRIqaoU z5+o9c$hWEi<%&Iba+p9b{d5jo%haBt8bv0}_}`ITJw?12Qq1vh4(TaZS!)I=12pYh zn8c52>jKEYZp|RGjU7F*o{K*#PZ3p3(rj1C82sYek&9p$Qo87UW0Kp=US*O`!mEmm zQY+Ejm6sl4=bj;&ACDQ3oDm9%$972@b6vHOl_;OQeQn6tZ=_!52j2ZzbT&3~@a*sB zGM+;)rsO@Y(Q)qRWW>Ao0sAGib#}Z+NoXfDFq-M!ox!KJ_h54n1A!&T5+&l&ZlZCx zA^x=1avNQQkK!!|-x=Tk=#%w7+~d;-g*;n|I^{!7=9jQwa7&G|>kiKZ?%7?}IbYTS zrVhYv_r>|RzwcD*HSrpCVtw`$BWtDoWzXTM{~C&!!6A6n0V+LGbL0L;i6sAb*^+$T zDfGg^04KEDDGWTd9Il>e@)RA;$wc^*n22-6#nMa)=!48q$kiJ|LF)*y)_veom9*{qJYHp>n7B&U)uW{RqZkPC3* zJ`fioK15A%xeGBRjW6O=-Id&Ct;2I*ZzBckk*{*Ah+V<= zJ{LW4gGlD;T`q!}!a){U57fzdIakSo+|q)J!=|mDB}W1RN0o^A+x%#9rBAoJ#k3_T zKfDtXp;piogt8KHW+{IC&9!FB3{Z5U_7b6Y|Aa?;*e}Y=JHEO^+^qXK*w#mhA9$Y0JCevNQLgQoV&y_JcsfVjvD{+4oA>3$1 zR;Dt*RaAg8k*ad{LhG!#qMoslH@%+hpIh4; z{|uq<&O?Qw(sfeO*0e8qisbv%N|E;M%Jz3eU(1Sjy4ELS^$~1R#@P;XFsUAS;`2@4 z?!=fa>9evf%Q^gi8XisXrFr1Hss5!6-%9}$xz`m2Bm87l5p z+`o8&;OF=eStBX(LeF-7Y7T447XIeoO`rM5{KzFT0dwW|*@I1!!#vLQ*;bTbmehF5 zeut`zSA=^whn!SpS(a!J_SdPcbW)mI7&*2TRkQ?-q;eL= zpFw7GR7KmJ&bIg!Pjtp910OusfLH8|p{n*6_k&-6kejPLIwd7>So2;Rq<-PQcwU>p07J(z9P z&SMd1fY_=X0F3*i;aC?9yh@QtMoyNdpJgIWHo%}mrmr}-@5uCdtNF5=)PO1cX4c|* zY105jA5uW~Kle_uy)CI>$q_e>y*xN_S)(CILyu*<({pqyd+>`fKctZP-7eszAlsdi zAgSR$Xl>LiNJKDTqZ6Azs6>gxATQheghU$$TE0PV@JG*o#3xe;y&mHTs6z=pMG^vp zPB7Jiy+lqYgh2KlAMGohBUw;6D-l|Uykn%G)(?vdiR{#%XJq=4SE}AKS(Eg#g$G}I zG!s9G=vc20pnXjS~-5TV` za?X*5Dq`5E;5ZpHMLgrjC7GO*#qGD*JX){5gV8Bx_9aXdx*<691#?f><#7_KqOS%m zpsuPf!R2-gv)em~gxU@#UteQ~7Y)U>Bp)yvBGo~p%Y!G7G@^2+e9EW@pDD&k?5uz& zX7(of_NXq>qlYaI#IGI!uxvmsA?JG8Qv_$1E_4sik0wMH5ugj1zRTazOU4l19bBV) zH>D&d-#B*%|1KrkR^*V%OF^De8`9UB;^ya>f=7Q#H%}82D>uDlOjvsT0skm(V}+Rn zeH7T>E(;u=>Tvzj{>1l1(xupous%0)CtcoFQ3%xTDS4|GFHYbcZ>jK~GJp`Q_Bz<@D)fUMCo-Ikyat z%dZb38qC%U*1D_KYy8k^^Yfh6i(Cj~{pEDx*00}Z_Is5J_=IDpI8=zPO> zjJvuIpY3#(`;Q(feAczZ#y8`=)@b6aHGafPF}-XPY3)dUFqQ<~`|pHcUHFJ`onlfr zGS8OzM5h=5yT81kY;@k8M?M%Nm}pQysQ#z7W0Q@DcG}HJ3sTXVNX&b4=149A+pVUa zD?^cqXPpEBjhi&(2ew90Qk%cNwXRWV?T@(%ttf-eYX%y3m$>BpLx3wn6u63f#54z^ z^!^ccYE_!sM+uq>^|#_rEJcYyzwbm7*8U#6rqg@$KGZjxOYm9-HphCqM|vM%)nXM_jA7TJ}4~#xW7je(2 zu_iAU?U}LKJJ03LIMM~edzo*oSe`;L&p0;S#+zG2nBqUoW^SU{d&GWNeJUZ7RP2sO zN&sbvm?!l2uF_FE=;jD!$CVSv9L%aMph{K7&-61^S1D0_Cg(`JL5{rD@l2Ex)3zd_ zVN0; z@nA|(P$ax8-hDuFQS79|h(EG3J&;*Oqb%-i56gA^Nx1s__v}$s7Rz7|%YX;&jm011 zVMmUE#byV9X43eIu|w&n}ZTon)6q zI8AoyC@HAgu!vvqYBW-cYkb373^C;?D$T&bZr&ngk4zGDT=#5^l0K2bjdB>&cIgEP zJ@z1CFcar%P!B=40e_#lMy_UFDqIh_47Nc@-~n2xF>XJL`dsEnaXJHM?3?X2mb! zBz*fOUHPh{0eiW6m<>G z+=wAp`bp&faidfU!Ih0jMP$lBy@>I*H4FcaYREh6w#&#H8j@~2l5MhwuFKNn97sr4WXrj}RVa_JjNh zTloC(Tke8HJ(w^&hXo`BOyR0Z*cwCjz^t^=Kd0H`9pvB|a#XKF8txO2BD8(RFFB<( zP4|t%UTNCAJgnGzrIXisjF}dRdL%K=w=HBp<==bP$Ak_Hcq|{KHu&I>nX@j>qfpz5 z?ZqIHS|tA44jUEw+oj6mx0NgZhYv|tBzAt2(vZLoVZ~o-yMH^7k<|lUvAW7A`_w2m ztkf~zPTdnV`)jT-BYDa$QU2KmS2u~~nCIl*(QX8~E>Cn(?>eC1#bSy~+8RZ_5!I4l zFeXpBn?zQ4WZiB0eD>tiKLV0e@R-B;ddQVDgRQ3>y{Tg$`uZYfFLJ9~1enr3)s3_0 z9`%Ya@}ZMkS&fd3_a7R>@msg{RZ-Z#*}Lxmrv4b)&(rU&-?Q78QrM23CW~I`CtpNA zcAjE5LA`GGU;&p3kk8$Ddp4@U1jr?`?ce$W{vrkbmD?;g|vRK@5?FD6F31J-<}E-XFJ+6W*A<5 z-i6=JPlexaqZ`&+OL?fy*A`CuC33^nGv^(zdQlz?Sm-20uv68f8YC`z8$FDpdF(z9@!}K&*d7S7rO~Ag7U+36%!<*eKmU+VKK4j42dDkV4SKNOW&$(xovxs1@h)YK!)39k&R zv)W2T5bcM-fERqYRS|Vsu8^Sa_q70 zW&AvSJOM3r$(W&A+nf`}aDW#{tZCP;x2n8{w(Kqb{|zt3DKLBdGKy8B9`({DQKpYu zmKy%LEqOesSxx`erJI_df5Hvmtk;tyh{w5CmDfd=kRIBM`{jw7kY=eR*F;nF7nQyB zvO|gCybgu32SN8qr%U+CpDf5uXNl%~A=Ug&f0+<=q`ch-HL3%w8J-#3MhMsGr9?(JZ z?S5+oV}wBcg{$rpR|`s>ea{ouGmS5nM(?M3nmS8?gQm#uSObmq9pFMP4;(}aMv>{5 zjn4o^IipP0fqA8`2FJ{uQ5DB?4)On}W_tkU1jCB#%LZznDNf4#zDW@X*SYK2$XHDp z7D^3(o}2^L8Nh|;okoI1o7`#cXhH@ivKWdt{744Ii*|nq`1DVDk?+Y&96?enZ_~rv z&ZdN~ejvkdI$K%e=pw7X^m6I%vah{s5K<%3&K6nbtA`o|?iu%wP>s%EVFK{ZKNOw5 za|O?odR6qok{oVJH*VRT+A``NkJv5oBn~x| zyOK4&{71@b-Y+y`#)75A2$-H(_6E6c7q=aK*pC$>OT{df^N8M2TI8&g(9 zYJFL35|=WZGu$bQ*9o&E<1N*poX9q^=w5Nu@?hA5_-Q6Vs|cPR^Rmv&b9TUKl?Hw=Oi;_#DrjM!z4( z>pe8*>HrTS1+Yb>GK4-}s~mBe#hi@&AFZ+Y>)(DW8YPa!o*2kdp`1j=syX-7`T6ia z=6b>U*8`~rF!24U4Qg6jUpiZ#A(qS1ys_~#A5kk#S-AfC&6?w6Yp6p3EI8y&qrPB? zYnN%Bl%Qa}I>0B2z290*08=H+lgy5*I&-sJffg{F3KNZ#Zc5N$Py3c0>PR=Qlc)YxXAUVOUF`a)Hs3PQZ*Wo>hvKT$XM?u z^s<|85A*6<3hK9CvlQW#6g0{f3VR*r)n1D|U+^MRF`Z)NY<`Ihcnxf>>JL>cieR(9kHL#{I&vg0 zdNs?$Ygptf_`-(xcBRK{=Z`jxT=-)r*eyj{dxNXFmk#>B=v&ljWJY8XD;r6BLmXak;!S7P-6u-42Of`xi1!?@m!6rg{%Koa&>^ zbO=H6u(tn^4%h#c4%cLj!SCOH`4YTKwQb#7P2%)YSuF+JB!0Ubf7U=!7T7@>w&qROCcV)~FEDla^d628Y`e<7FLiL@FQ02Hpc zUUrspp(RJj*yMn}jBGBupFDbi=DIR29$jb~G)vu?4TbD{CCP1`H`+T~>>5)6MJtmk za0c}uOtR(1p*03z@=&GMpARMf>|+7G>3xN460v9S_vA0nPCusU5pGF(W&n?4j1>dd z$_-X#5mSs+N5n-`xFdh)%}1+{;Eram?oSEqn7*9YARW2lwlo(839T^N6rhChP$4o> zBlm6yBJeVOOA@XDcnzldjQAa)hldob!Y45SHa4M6^7Kdx2{inR+-D+17?;-@A-0Yf zfM|_B;-60?|c%Av)q=2x!t|M?%WJ3sMNaW zK*^=>ob2(<{Q_Rj9QaKZqw}$?5*BtJqS*=$E@y+ru|)zn8d{TI?j$qEV1zxnr>kXK zSN4=TF7tJO=`-aR6B%tSLhmQFkoSk*>uc@T84F+@eV<<~6%Y#hh$pj{ueZo%Ug!by zG9UhLSsZkYsF2o-vG69BGkTwiQjfoHO=|Hhd@WRZN5Y@taSJsoDe8NBJnv4dudTh! zK_G1{PoH0#P@y}-!OsmAGYq*_TH-gJ!+c#@dOvys_kRzjXsGipT)&ir-7;*Ik<~IE zI>2~q^zXy=_w^Qvwv!-}(ifQwWG%qinw-w89K1?Jq8~@a_GOk^$=F0ZcCR;I3;(@MCWl~)^H5Ryz*0xNxfJ=NQKC>EMa!n>tj~lXs=fR7v0HS z8Rf4$FEsEIP{BUaO)h0mjqL-=%RLu0276cjJ_Z-8SA>Z3P9$5lc|^@UknZit-ngY2 zx1G<@D#?F)ng5Mi{m%>te$&#>&-YLFLlj>2<#d9!mv(}%uE?Alt2FM%e_-LR`xXVq%3cn|H?8nfxR39YdOnKdw>lBFlqa-6LBpnSDSpbDo!6X0Px+V39aQ~ zh|n|9uq!#vzlMZy03)42h%1H9;uI zOuRoMq8?cKT&Ef^s#jZnd#%xSjH$G^_h*e(!+Qg#kM{H*q=z4N)y#p zP=+{o)0x6>ZO$Yu+GJf1AM~}6h~(|#!ADd)xW0hM7ue0IeEADp;1pQ6Q>G^(d)b#P z<7O@R6OuwBV|$4`o{=HDb9> zmY`2eX$U@c4>W7Hy3L>HWA_@MjK)KbnEiYLB>E{pL;SY~k&|0Y*O)~@FrI>SuI$L9 zdt^4DlUf01yxpv=19gCc!wk!TAI?_T{%+TtjHn{~W7w9{6C z7*#UT8_-}S*hVJX=%8yT=#_%t(aRpDr@4|un!OuX+Yy3_DUIM|m^vbtNVj%@w7s*)L#;E=Y4{{i@*Cn6V(byK16nAIk61pCR_5029Bj&8V;;qV2QIEx8L_< z9Zg2wTPQku5?O@AV$Lh`7YBEus1{{va#7lJWSOcJHG6RJm^tIo;*xk=h++($jnO{} zwDuD7)@t(Per9QQbvsAi?-cs>oNdsI*RHt5`fV@VSyf)#s-`MYYGW$q=h-67xLd$= zBZBt5cpw%W4Ncd4Io^heG&Xu<{_Yu}Dkp~Zzke2MqLv)gvxJ{H`(c7GyHbDWk?PQy zZY%?>PT@SPsE5J*cJM56yz{!mzoF!4PwgR$A&6pheoP{x^*aWEo1{pVMO_9$8e#N! z8|TVT*8T;h;P$flMhNF;Q_5^(V|oPEVD5CF)K6mEalBz)9Lwd9W$suh(8%JEbt!;L zQzR0F0a6Hyu zQ=vLO)_2iK3s^7^&{t+(9)X&pS>c}hDhF%}PpN#ShcgRK9J)l$m7AeT8Z4L;Q3+QB+{PJ+jq;>bf*iwzm! z6Pq`0daXC9fk%4+-_1$r<1|ezB}eM)bkzcR#J3zrXPSNx@4HT=z(((Aczv|7DCPBr zUW@LNyGfj4v4PrG8V56_U3Se+*GYh3D*G+xk1t*FQa(nLcvJs=SjXI%d9`YG99RJT z?UnnGez$A{oo!MRmFEY^bGr;6Hr;F3T{ynhvCnq%B<>5_KM4j$5+QxCqUB&CUx)=r zrCbO?rg*|leYU>RUUz+WfL;{;Gr4WtQ^K|NUrh(0%re4RBxv)r zL>BEy0sb7AD^pv0xvDmxcwgopLrR55PBDcaAIeWNT(~AOryxx3f(97i$caf#+GDin zA^mZRBb~+HO(OleHd0!Z9&3p{d)L^x?w%h`45A9Qd25@4yDdLZ&vyIYR!k5M7d3^@ zQ@8rd3$xcT3{KncM~vgRi6=Ej1at4RLtcO9Hz(XukoRfBG4YJ*a3TCpwMiiuYJM9ZHmPSXt_>6(Tsq8nb@p^mL8r z#WMI=CO@&UoaCTL(Gymi+GG4gMDJYPM;$Q+!%S!43@J}&K&?o}B%!MM<3W`~3E^RkBiioVD0(CJ;|wf$KB zMDLLcuHE7dUi|$SRu0qmz&Z`+Wzz6pdC?#Q9(ZPn^Ybo0|6v%J<5X%@2Ql!U79(Fp z@aj39zm*4ydOLa8o^LwuUimD&JyrU&zHXIcf}_tZsu=@&(3jdH|vS(nh{^9E^+>_ zJHltc8E-&or4XJZKQR8oH4wMGTW}b|DZ1zofDTEX$c@Uf5>laEvAK|S?6{UH@5;be zJ@1HG*ZMTc=j@xHW3t@Q74!RReX&zsOkyNF5}%iIcyn8qpSh!}MFO@}4(twlbGa&r zY1zWXCklqK@mUkOoM01WxqpK!0K7+^!^JENEgORo_JZ?jOn(tISYii96#`Ya;7Kb@1}cr8oeZ*70gQtb6)_^Y$J&>R(SiQb)>d?F<-a}F3G6+ zL=y;Kdx00kPqytsnB%*d9^8mEXCZb{{b|jWQ z?GnGYc^Bf#XS3ClONmS!xuS%SroF9QhCbNoueS|{8_=gc~Dq7)$xjiZfzjeR*dohh57Lxc)=~E@@PEA z^5lrn5-n<;zyXq%8?IBy-cK3rl^Rypl}_WqUlb|gEHeYL-U2Xc?R}Ti01Y`l(>Asd zw1BIXfkxvHGVd^_Jq^CJ_{AiaD(_AX$xUMvwRO{ghbWpOZ|1+dIkLX{Bw6uxb5bYM!=kdw5=&mW<>CX#q9>E<6I=cAuJGAaOaf zSY&wD!68f;t714#&`XjaSyv~`2sOG+^zC4x^?qoPpnes5kpt6nUCN{FS8Kn3Xv{oh zYFXDIioMYMiE`3#C|01VU~@85h1 zw&B8~2iH}$<;t)p)Z|>Z-sPuO(AeXGFjG;Z>i3k+k1ad z7LmI$n$yY=cgj-EryA{Ta~SAiTjoTk8rBaq$WFZ*ciH?jqF@C#5k$wM(dey~;dH^a zlbl)T<}^hZ2{JF6wRiISiQZ&AuT=BPb-J)$pl66%k7VtZr$M( zES~7VI}+i|vdi1>wveCW{hSk`l&wL|F<$oB&F_D)1Day&yZ8rGz+U5p>ri{1WXGnb z;qx>!d*kz%`h`wdHP`PEHj$*SBPZ_MYt2sH&ujNw$JZx*O(1iZzpPWUTOIe^wi#5^SN-+OaE0TF4Gyd`Qph)hI?V z)Zrc+t(5ur@RD%76*Irj^LCYPvKWRUNm7%q`Gx$1DB3Nxfebg+>7#gHU^yR|j?}t$ zx2(a16V*Dnw$d}q{AhM7F5bUWOqaKF<<~Bb-+3Pl)>k*W?adLQotZ zh}1`n57xVVb%)cql1W{#gkAbx>uA?jb&K}=vM`^#KcV#C1C^ts7ZW%kW;!rhe;6(b zjz|7iGb<%iCU02RUv&+2E#}DLT&|meaZJPDHjH3*EcmULAM;%9&iThQt@3T6tCZp+ z6gJBuSXvaTwjOr+MF(-kh~gu5na1D~ND^F_-PAKz4-NfnRc()AM?uhP!%T}X%1 zblOaig@$J0WpCdoX}Yvy3utR$LXqgnKcjOK)o_{W^pXqcc!@2%c+`awK2|!>_jM;E zrnHxi?Z>{ahzCKn#Birgi6Y z1M}i`lFHj=8D&V9HW#cVlPheI z?higA?9XzcL?+TkVg&j!wM!I$pgdk;-pP^cAtu9QW2^zcNb~_{M-0cqQh%xN-xga( zxgc~tKAF}GM*GccYEDwQf?ZxKi8+;MUP>-(w_Y5{W$H7YU{WDE_YVt3NS}DG<8Y)! zNv3|f0gsal>q|^GlH&FxXd5SX@ss;v1@zB7wv6+_rO<19o{S?1Zn3jEzFL0yiXy)s zJCxFXo4@|xUIbm#+rGUxKc_%rAeCz?Yp$Y#ysbMe$ z{&^ZSo8$D~Y|iZ&B;bA3#5eTcNIIqV)q#5k)6Xa{eVckpE6d>keU{G~O52ae?z>GX zih0lL?b9S1uU4;zOFc!acVQ2kEzTi3UAJHBE^wkG#E`SS{Q#eYgx#J? zaCH)1o+~RIhJu4DZ=r+W)2yV_#6mwAyjWN>VuXT3NDr0M9tT`MAvb4V^^jB(8_4Ej zC|T{X3sIK=q~0tpui>=+Aq$^$`G&IQTF%f|dyy1>d&~EmT??T1)#2t6Z(;kPIxT=# z$PKq5NDanFv!9qy%GV*YS2F;7AK;chQYdGK1qJaWM^>NnXJV;EprBl^IthaLYEbTf zk_H*yci}gl4vi+7uGztf?W~w=9FoB*eZ6q#mTX}Jv zM`a4QACLg|S<*E#J?>I=qu&ll+*_Lk-$!$sFY+gHN3^VUdc0|mp7Ab^qI0RHNc|n; zRwmq&&j05Q$@Hs~L*z9j^mV*%dXf^a z_s754v_EcM-3d^9qj-A*D~^qH^G9)MJkmGtHSEig;1LYo6nt^OS3DE=6U8wuRY!ZK zGnJxO1F&hCcoB(Zt4vtSQQ|8|rKbCn>MJhq8D(r~@Rr)-DxE?tW8b+-VA)R^Bn|Ih zu_9N^t4*y=Y7vc~)4y#UiXwFVyf|6NyBE>jHa8G5zno~yf%)x@5%bkmk@;lKxVMrR z@lT7JX0)j%QQ_B%kMo;}-_XForhxBM5!JL)8(rY&{w2UTd^DU3%;=ld%Fp5j`hyYT zB-3r}X*L3N5+5*bknFsmK9CLXIumo zSKOu`h;=W$F~!;4t2VIIf*jZGok=?=`Ne#PP%~Bc0HEQ&coU=^M!KLG24F7;Hm-3s zy}#>Rig4(IyN|$PxZugn9bk;J$<|5oTym|^&iru`6R0Jp* zT7rmSU)kV72031CxOJFVWdWf!>S=3wN?%i27fawJaA>Sv{}P8%tSb3zd=y4R%B1|0 zk=!E;#zGP6R(rU?YdYV`4mXhYG#ww@3|cF(8L7v(Ck|F^D(Ntg%?zpy<`@&pM7!YC zmVDz}l#C$#48u+=HDG4AKUx=4wlF#WQ;;17Z)ET^k!50&Jk=`PK}pdtcO} z`IMmo71vu^bp?SPL^*yAXM+uY7L2I@(bgR4-kH3^C^wIHIIjQKB`>UtNbWkEI$=|H zY)8MBHwfpZp2U)&2aQl%?sn&+j>xifG``#_dbhk3zQ4rnvb}w{x@BPUmkKK_U}6k-hdiBKNjt`ydLDK%b!Hyq`#A%NrH1Q3z17#jaWN zo%r-D8t0O+I=7S1gz7AWS8&%F5E88PYw$J%&~6~WWJ#)fAPzaVx7p^*x@k{_ul(yZ zfLb;f!*^- zc^HuqBwtB?5saqWozIuN6p8tYOi=?t16KcRu?UwY|B?Gt@{Q66UHvor{W&qA>j+hC zZw_P^asSDwEHdQOV&I`5M?tm`Nj%=v*q}Zbg@9%Lg;xU($*iyPvY}NPvE6tT5dCr2 zVke4z?(nUXGwB#ZI76Q?VHS^A_)AU{jFc^$Ogiy)Pu_x}(`~>?zi9?R2%1u^T%s1U)G2t(O@|iRXtH6i{@5U6b2(4j^86 zLi@x%B#&+RsQH80Rb7YudXj?rs8NgdC-Hc5&$tMh6ybZkD`r~rJcu7vx-OLgC8753M5l#{(Jte~yew4HF43qg+Z?CUq?0GTWrleXaznq(~^whVf0qLjhF5V6D4%VhmR z01x|OG-BdoZy7Pmy|gu;<- zeEQ~t#ia!0lu~Y4Zo@_e!x}v2@d&tT?E3o#S60P*Ah6*Ds2`ySIb^Ff~w+@ z-XbQ>+XaLmHTO;qdL%YpB$NEodC~Y>h@H!-`{xgd$0VXNU z7uzmN0*Tfsu4vZB=uXY6(239<0Hs+|@Z9GLziUEkF;>I8gc^s)ZUX#cLX=5`V07Fz zYcvNz*4aI_0w(^3DAgJXxz%z}FFEm*N1)RQ&GjssWUv_Fj@T<}sn8B5z4YS59FrjN z6{L@VNh%moH(#Tkn#3eTAS2+%_UkVa+8};R@JEwnI?k4sT^Nr#Ry0iKBKwobvzY$G z!iD?N%5rak>4Taqs)BRm;Sr0LE3OL4iq1Z6W4+U#YS#=v*hjxB-XatH+OCLp1j|#- zT>ki;Z;#k%iMh404XGiyK(jJd;1+7doAv6SxgC`Wd+q=dFa|U zhR-2cU@c*w$4o!;RTR;c>$6r+I^df>1NQb_H^H$O0pGzx^|9vD)oY@-meko7I1Z#rs34hUmTYU z=wfNtX#nV~dEKkdd0u7VeMF^hn;QB~o$`B`cmi;EEU&aKt51LJ;yRmboLlMVmI~Pv zTiX7MroTRtYZ_G>nkqFFc_IGiJ@ciDaNKtuMc+IEFUM@aqzl->VEV5rJr(Yrb zN$9a5Y>{LjqDzdMLCu}_3o5Z@Gkc#m)0(fQ0u2~>!wj%91XErobboP_eWKR2g!;>2 zk)C^!jV#Z(m~C19*}vpN#cV@3I~C@MN*eySN9*z?dhmC038E4F6c+2c@<9(O4%NE8 zfa3t;Q@@QJWa+5jdY^Qyt$0cFh8eUv2Q?^RE3!F?J2Fi?0Qu{Z^91#f=1V*r6-jVW z)(7t=c<-0HWJ4@b_Q>};uU5Wk8eHTr*}3zY8g`Pk%QCeL4pt({14(v!s72Z0-~8qf ze-`{r_&YoXN7Oyco!IZ-sbd{5sLk^b7V-9XXcFuz-`S25dLOgA)5Q(joaxosN5Q__ zuW{=xn$mD1dW31EY%KDd3H0}#qz;_#>>Z`$q_8<&_%~so; z8K3E_S-#EQVx5sbS-M2J%+?YembRJ~h|g;f0On!P{&6dG#kSb>+3a|mWz9kWgM=9H zR9+;cPZ@$(W%B=88li{7nrOpwo^Bxhejc0DA=9!5B)DxmLZLMK=Y8vO#$ENQ4&dYy zv=maj?sea`+i-r|ke;MCw;=S%NpdeIdZNnzL0;a~2`}uZw|Erv;0)eJ2dpb_$fKNF zd^*xuL!#7Yj-8Xnz1#b3`}w>(-KhNo{-dD6#1|U;&BTEztzbx*k8QsdT|37Y&kx6T ze}vh0MuA29HTF`?uvH`vR27J`cyj6ioD7>=?K>xU%raLlN~!;FSJ7p}c5-?gxG<4( zvO*gO@EP|a=a?+_@FuT^)n_u*1w^VM%$IFSo1ADeH!V212j>PpGjCqv>dzccQ%Z z2+|4)NQX2GASEIp-8D4K4Bd^Sq)5jgh;+x$&Cn@5^w2PL=ZDXG&UxPNZ`k|3_Py7& z*7{{{&6kzNR7q0RyM;mrL1UNJ5+#lqo9)+4Gt86LiyM;Su)nPjGs5J0w1+@DO+EsE zVF-cGng=y|txX&Y=eHswMw;(F#;@zm=T3JCT5b?VL)KO%IZ!_Pw_5f`pCqR;CdNjN zJ7?Z#0|S}nYcyFK5`{JbIAOKc(LX>_>9b2|+6!?})8LmzxdzSL1gG^}+5yEJp;7>K z2UQqM+-qa;`10)gHK>egfUxCZ^*Blks-5Y+dYi2_dMeoibmwmrsVE&u(+Nk-LxW}! zkB=JgpE=-jK1sWslo|j)Up}oPzX9Ml-*L6m^r*S=A^PMwdB}Lk&#a@E9%*-tW#YTa z#Ex(F9xt2+iAJ}pcixJ+yU;HVybi5BOgQFlS|l8xoRe?gx?jdWuM@gbLm)0spAnO1 z*tJuP^H7{V#c=+Dmf9(LydsZIBIaBozSh5xO zc?rhSX^}j;<6mf&%*~iQ^`q`cheM7=zdNpg7n({?mW)cRwUl#Tl-|o~CnFR->`+7Iod|`=CUK#BIS&BOr~HqC1w9`n z1v5}3Yk@CY(OuX33)bs5OF5vvuD~llKW`V0-2=bo+x^ZM=Q%(Q#Kee5(`|d1P)}(c zAZLq}_ug=bfPFyJDdR%u?FujZ9vYvP#Hc~V#kJzlst!gB=ZE(v>23L$oD$Z<#eHD{ z=tb}R#&FPv)w#E>@Ul}HtwFExLiIbUNtA0Zxq^^+GV?2GSS(kJWd4}HO>ZyHrNURr zIk?l5pA5{&x?ri}vS7^Q=j-+a`qxt?k2gM#_BCryYN-rfr}SEG4<_{4W7T@0e%mL5 zRNyPzE4mb)Ukc|_A!;Ugqi^Z@`GC>^HYXG0xyOFs@PT$5PM?N|$5liMzm9SaGvgmG z;%76&uA8#>dEU6LG;T3Vtq{4AUL1NLc_$Q=6FF3C4*0Eefn5jMPIsn-b8B+x6{nRP z_11LBEQp@Uc~y4MInrJpbAN49r%;; zkp!n%Did4X8HKTZXRA1*pU&BM}6(lcsecg=S@X_SWz2 z?n2&qVdQGT`gR_z{D<_%u>5cfY@fZ=_abKE#;0AvJCYZ-YFe>1qMx*wFT+fz z5TB1?AfTYe)-p`nYW}Y7jZgZT(hwSpKmyJg@Lu+NUc$VkFI>Yv=BQ_`g_teQ590*6 zxZe+7#$bC%k;0xtg=F|sdgq&xkt$c?ERHl*5Pj%$4T7G(RKsMAIzwSd>`G^H0Bk+? zg^hP-R6-PwH0j<#RX6B=J>Ws0leJ=`5<6FxJ?v73F)NniLXurFO(dF%=?aP12CxN{ zwAPgAj6_I%NQu0b(#hHC(~PSrJfkf{B2(T?7fBXp$k8f={iTcK7j`d_rXf7DVxWQsG?$_;aj0GwQ|reILr$7oIb`lE7Q z*OVvX;eC692t+EurpfKG!Z1lsi1)YWQ%PW!lR4dS{h27IR6ar@r6Mi!*XCq* z;p_fiukDV4^@6mRt-mxbG44JXdn5O^kVK=qJ8a#Dt*EuehGmyfsA6KxHB%%~H1E4n z%k{6NhgIomCJ}&=U@J*K&Wj%5xIdD4b5ka1XxomC``wY&=IJDYuB3mSeaUYd)1bn& zHB}%i%`so+z|gA^ud6tbraay#C#sk3t+s~NcE3PZ*_fxIl7YWI`$^^0-K)nXJ1|^Y z({9NwAGNKB58O2u_cElPAHBoLBSn96=*V&v?Nk{+QD zN(Yti1HYX|e6ihk^CB|NT6GrAKlMWRHYi8oXO_m*GqejP>ROmjfXUuWQdhm0NopD7 zznhw^b)Y7ksX=c#W$%=dwL?7Nb7fUfVqjHrX*>2D>n1;#03o(=q6pqWu)8^F%0Z!} zP9< zl*k;Xrod|$N5p^wdQ0NmGp0)j>Njt46_{$CH8k9g(Y4mz9^RB~k-bu8({kY+%t>)i zd-$}lU2V$G+)bn?K{ulI@NApo{~i0s$={Cet~$k33y3L5%=e1+-2WhI2`TWxstz1~ zlB}~c`zcCK|E@3l7Ze=1Q8OQlG6Ired`2g zReimM7dotnaE>furv;Rq1}6xy5jIZ0KVDWLYA`F|MZORzM#D&}oqA#2Emlxi;IO4_ zk|KIS{1GfPOZHOgtB?rsY)PNP*H>wSpmenvEj@8<7okGip@<_Z){rr?~3StVQj`WS4SE@EYqn_xUp3LA4+0+Kl7poZEG*X#eK@> z4k4M7wKw4sDKyDvI$m8c?iH>RNxP^XZq!#R28LKgbfy5>-511YrYQC(5XAolcT{B*VKV96v-Cob1+SBD<0(h;bY4z;1dk}pHO5}^q()hW}_|P z`M^+{kKv_IXq|J;F5GRQ4!Hw(@e6M;UQKNbGCY$xm5}f#EU*he>xu-!H}g>q#dzti`wMJsvx!#nQ;yuY2;_W7V-f zM}b;q8C4XPv^cmlNsI(%huo1oSZ<+9Hg5}5OWF~w*F6S@R6o;X>!@u5=d5B5ircEI z4P-ja$VyOPb3!xcsxNZ8ue9>73%JecJy?}9%RlQ_S3B1PG<9k-II%vqxeA=lI}RhDy(9BgS@esvT8APQMol=KcC?rDk#wk^sorxf zfZ4~uipAwKvJenyg;1|oIVj$9ooldz&0+vDJ8MYa@^sh7YG2TP=}layQ0Z}SWLSU} z0}8Ghgk$8pCb+!O$%UFQW#I^0iAw*jU8KarIoiQz-*nFC&-U79Wj9(HmdM+%bTi3n z>EhLCJ3zJMt9jw=XYH}R&UA{=n|He1hM#Seb0hfES#O7H4mU4zK9Bkd;Y}1`_kT%; z8bfGIHGqnt&5C-TFMIiqhL*{5XXnI>FDdcvG>mTs*ujctk0nuwMKOjtncmmP^>a&D zl2Pl~@bSGDEOF#iZ+IZvg}QZ=$HA9mp2bI|&da=aaGa%%VGNInebS#zl zfSsn`sjIOG!ZnHuG@^YWt=t+lUP^xW8Ui7!wW`Et|&%gi>_ma${O+k{Z?O>D+bjh@~u7ai_T#bY6< z&K^r+bU4g1=z4p(1okfhXrf5oJPUD4(O6(hh0rqZR}c@GX>#sExvSGVP7k;cJ0;0;YmL-Yvgj-|Yr^(`>z#VCY=?a*a@Ay0|h#5BIGB^V}mVg;;+O$q#&{>!&E zL#e>#ae3um5Rn3huf6*o^AfXGP{NE0KHRii)mnj#{S$(_s~O4!wjOeG@c8O>ez{LI z!nt%m#XAs1wfRm236-y4x8M+aA}r-Tn#pa0ktUP;uVSaw|KCiwf4bM@^UTN;Yr_fd z+W%GZR%)2^FNFo*`#DabcjmZfnBHr^$tgoaO#;|H7tb(#53+DQdpryQ=mHvtn*Hk6 z-*9iOu)w`H4oX{4-SQJ^%HJoaq_ek3#N(rQEdPW>mr^^xT{siwqNI%8{jD@*Lq-(` z@DmKLB<2Y}BsH$a4cRN-61)>WJk@%%@-j)Lw^N1Q)I>Qv?UK7 zHCYYlD=9vq3_{|2R|S2)8P)gTSvqX5+?Dm@yX<1mbmH*D(M@7ZV$w^+NhxaJ_Zb@q z?oO?cB|1vbG;PWl)_0V));TpNIF+#D9{&bp94*t;^PBqyBX>EIDrnb1PXDMQRKlB5 zBIXSbNZ`pL=V8@T45=AsX)-(E0BV>x7Y|?irqN6IPf@8k7lj->Sk*j0Wh~1sQtK`I zg=XBB!WJj!u>46F!z&J!g^^JAv4rO}X;Ngt>r#pSKnA)1yB!^PTte{2 z?owm;n1#~y{JloYSOPcCL+6MTmHG*=H@lXDKkB*BEv%TMJcZK}Uj)9=8gBs|ceA5` zUSGvo!{ywK)jhbMK`Hew8@%Mmv(83+7Rn68a`b2bm5+NR@A_Q~7z)O1Ir7_*;niTOqZFtJF>P_J! zxlN&%)V8Zp;PAzv0h;}V z?x?$R8xRjGleC%@0OC$#IAiN{jOG{y#!Kj@NoJb7i39QJ{Q?33#xY{GJPfj!6Zs_ zp=vkTn=1PmFj89*UkrM|_Zz500L;Xrwt=CWQjCFw8MevGJTMO}dy6p%DJ3w~!Jlaj z&>J1;+p-`g)3#ksrzK)a7Py05X|5-_uXJ7%-{ess=14R0X?LI*(PBkaol|AHP4yt9Sb78|1l)PG=DP^1?H*Q=AAA&tKv> z7igS@q6e9LOkMxC3*Z97$Y&jX90i%zH}pKJkjeID*0Jc4S+l*h9}2#AwUhFCMibHe zNXp%X2HdSqPy5mBGhFiUwt1MQlQwWeMQQDMgormo_9R4{WX;3*$%mo(nRO24SBq{& zqj`7AyYw>|>pc&52i|yHdQIW|RKI`Tqd0wbTA4zG#tJMe)58`tXW+eG#`TSt5l_&s zqckszQKM#^@_g=-KdQ9T#C;erpnHVo=?Tq(+!AR79hc5X;bFmWBvp#?R`9_+3m$&a%WT|U@Lj1h+zJAv594IheVMPCJ# z6L7HCa#znO597?de$8mz9%P#ZCwvt+2a~o=x^$4LG1D+bWF(e8J3Y;xCzHvf?EP?_ zUD?7Fw^GK&gluP;o#&s@Uj=1QUbYFbBjx#U!rQ?X$pIMQ$`V}I-W(MtJ3TORb9=OT93N#S;w+I2f5XsX6GtD zWB`1o9}RT(v%3JMTNRkP=Uq+S8I_S`@7iV(b|7v3t@l1n#ecJ+Ek7uhZ{axgBTfd& z?X(Q3)u|Wgg0yQCv)nAA#~TAVNlI*GEvJ{qi!p|VzSlEe1Dt+m?Z@W`I*x;feUdxI z8TKJwvptUto2x!-Dlyhr>cj|IItli1*(i^pAaK`vzP~?Cx!VMTf02SPomHw@zB*{d zOWILQ^S2FJG$e$jC`-SqVz0F7u=ebu&lP}eV_PzMMxg6lNIGv{hA{@$>ul!iMz?Yo zbYs8!<0?2Qt-e2H-Q-VOZC`5(JbM>rG-ul9dS#4Nep0=TF(w{N$j^1*00{nPgZRTY#R}Hw~S6 z@U;-HJ)4Z`;*zb8tC2sByeg;J@30lR_SE)4Q(8pO&AYRYV5G^quTD1>Iq=(-*G-%{ ziM+n)adXiqn*kHX1*rH3e0sUdXQ*&To$4{38AFp6hEMTlHuzAQ@vHNKRt8c;j@pw- zvy+V|pa|RGW(*FB)^v9ID&RJ=az{sV<_7qyXMd4+VyVoT#0fPhHEOM!_dd2+*gu3H zuSMaFdwjDvqU{5xXe)3vM^{fXjP}_)x==2Y691k3)@ream`$iSM*2HJ;3ejGUUc2i zw>y)MR>b9mesk@)fWws~v`6xa9Cc5Lo;QZwm`u6e0A%sO`D(37+3Ck*GxChVWOegA zBqIJo0i_6AIyAM&0K4J?9*Co9zZ?q99{1GU7LW+d-Di@`NHVm*p(NrzCrz-pWXMQD_nBodBPyz-nmT3!Vy|TKvTHb4w z?%{~mXYUhHlTe9$mW{Tuyxpmz%k2rPpyUl@QAp!Mn2e;<|#v$o-;|(!ZR7 zm7jdtS5ryBYj&ti(-Iq1CqgvY-)3RNIAAm?DppkPyeI1H$nS6wp%+a(RgI=~Rnaj8U@fuC4%M z;4Dlq^2L>y=SW4i%>XprmC85YC8{A8rb5P_q|Rs<(=6!|dLd2ioC3T93NGpK++Zue zKmeFX%a4;IWfU`Vl<>9Yww^k5i>&$6hV20IFKAp~SKnQSuQrw+X=3{L`eR{(%V8bp zdB)C^NQkqfE|2Z{NhulFxAQ4D1{IyXq8aMu61Tf|+;I}Kok-p=xpHARk!G#T5hLaq zLd7J6Dd>%P-cH=!vhY96R{t&l58@;KmX`hPt{kT^%KcwkGQT@oYyha!bD&;3W9yk5 zz6(uP?Z+oZO|aWjOTX6J0z6vz&Z+`{Nh$soEmU%D=5=Xk2`Sov z$c^bxVwPz_rIjchnJlf0s%YVsC4N!(nFN7QJMR`Y*^_kc)Av6-=EqV(XSOL-J=5HN z_Wqs%*r%&43Lnhk{OVDN_(aV_Q24%Em^!`igGDs?OYT#Q`M4jK$0e1;I6a4L!gi2| z5G2OK8%x{R+EBHgJ&W`K?9Y4tjmxZ4=fdYQW||sR>M^U&QyGv-Mfa(ks|o zSyCWYr-M7W!if>W(=eqHzh-C&JR_ZuhcIv z1-ophy^hB^WD6h144bl;i;IxkJ>Lby=e+M2`EXRUK7HW*o8&$0TDXK{g~EX+W9x72 z$lbXU@efCTDx-;UY1f2A-Ot4-y-+jxNi;s2&!A<>!r8Y)9cCC_;UHZJPG`@+jaiqO z)X=LypV>mh%BlXx^zNBVeISXC9naB>1a1uM~!08l#tYc zWDPx;y&DUC0DewR?unzb{><-3;_n+(a00S?3Q+pir4%139E2egJpKZdT@^#QY!<^S zIA;Np=SD8OaesAF|4Vp4t>7UXLLR>w+a9S049f&&NJXdT{mftmd5hLEHlQcG>N63y z`WXyGqtOHwJEF1wl5GGeTMpIIP+vYW%+nP3gAgN>_WOQlj+}dtY}4L ztyQgPP<=OyTF$Yj%Y4Qp25y_!)mUzS*<%N+UbnlPmJMdF^A=%skOA_24$>duo++J> zSoVL8tmMX^=d{9&FH(iiS?Des!{Da1D(>7^5ZXVM7z(q_BIGSBtxY)Z?nxRpZwl1h z5{r^XtX598j++HC^;#a9lM*35Cn=9ovHJpH4GXLXi`)s_-A+i>A#zLmuR-1ax&iQ0 zT=t~T(;9n4;(qN)-&JOdF=(vTuXi-@*htayWH`B7-}tMQ*m{=&4!%6ONEBGQ9Xj4` zq`Rh1-nVbkwb}2bD&3`)Inm*0xg4fCv?Q2x3iE29Y0-jsKl>r%kFgcP$e=qd!}0Wl zXb758!gYYv%}6e@^=y~e%T(LJt%ht!q`ZYWkZvS5{3U@5R`NI>(q0R2RsK!_my0h) zqj4b{=)K{T$8RnWemLoE05N6WBaP?~UUtC$MitrxYznP_ry)j}Ab%1v^{b5tRU>$8 zM+zOduHIUlm-)Z=YeDy1a#mKn$5f_UK?K+iJkt6rRKt8coLkQV>%^jO=gJsJ&C|fK zFf%?>5T4@=noG>nJyHKSu|Cnz|3a5;X=~z_xZQW6Ef$jHPvLKB(^LrtCPQ*Q&bB?e z0Ho0r{pI*#V~~5FNLf)B>a1aj{!x68E34Vw0V2U~!(Y$6)(43|EC52uG!JHg@1BO> zp=RY~C-(s-T5pv+hG6o!Q6G0y#gh}N-YR81S@|lv&N0!AZm1nAW!dD;NgxV-5OWn2 zLdozmO`FY%!X+=;ds4!V*KW4HY4cCv>HeqD)^+N7G<|m@H~r82>G&U4TrUQ~jNC2+ zU3MN_0>Buyk*y%&5wV-z;~#+K%hm4!E(1~qrwy(SLVo*ej{OIlQE!xeYJVb=O0|-#o{U%@-TT z?V+$FWk7TD{L!p7lfJ<-po?>0U)`Rz^Hn^T;fX!`-1&!s-kSqsZ=Qqb=VBDEEUnau zFRpxFW6-c{d{tS{$RQW^NgX-O`Sbz6sr}kCc89mmDos#oHsEDu)0f;Y3Ou`qQYq%H zKsTwUb|IQn0$|rxlP)V@hs7NIvi+|(p8avXVghcgcFV&Fl?bltMH!MlqgE>3Bn~Bv<|FIM96uYBYFuNm>?ge969TQ8 zHW|wiZ%2-+PS-}+7~sRd|6RC;_kKf-!j0FJ?|lXnODi{t@YArC?n#V-6Z{py5vwVK zzimTjoQbNnWIY#*IGu6y4rf`kK{0<7B?RQW`y6hzDES283m{AY{TF}ORs%oy5YEqU zqtF6}`XXj6Z+JO?TpF`4Ld7cWlkc9aH$T|}l}~Yx3KT^AkVAW7BmQBE znr(EIjhpL_=ttca5R|_u`E?*C`Sv9vIeuJcTsNIQ@lL|*V{oPja>W5ls(QoF0(+P;T(Nl98pzN$-4M4Ho&Y(38@6VrI;45_*oXa9R0@WQ&k;%yTRoW)|g zAQ=$y#on8%U*D^@9blL~MP!VK6?`{3;C$GA>_I(7(zVvlU!UHsBSi*zwUN18dcBd7 zt($DW%3`u6dmfsx&`UdR1B4h|Mc2SApOPm-`i#jEYvZb;h)X@{Y@eOPqnc`%gQp*H z@{#p3n%&&_R0u_)=SS&z)1FaIW^KO;+ttk*;laP}`21Eem&`XHIy-_o^=TNOXW2!@ zY=uqFvnS)K`WxpE-x>!pjW}sbZvVWGP#j!*!;>M!Vj<_R82qx9kKoi0=8pe_qNl}x z`yAmp9T!=Wg~~SPE<{Dh?g#e?KA+uZDb2hms&}y-yOEJS5_Y~hld%n@eHsLaV ze%=0p@VXNG%4pX_rz__n3%&=#cp~mlSD;At>rIi%IhLD|zxwAjRig1S}S`~dYQnG$Z9cAvFfP*mx-Qy zi!=vht1Srk{#huZ6Ir3!Xv>Z$`R`_irz>6Wfce9J0)cJ(sXG#q z%gd*mr!x)?yn51QtJJTO0H%J=GvSmGOvyUmq!*$4-!*zVFU>yKO>&v2^clh0$y69o zEbM)HXwtb(OQ2l^%Qo(`S)-y1LbthBa@KAf4NH<{MtFa@OP9XEg(pWr-Wh=6V%$5582A5NN=F0srz69L))vq z1(wwuPqo@9TbKoc?KzsJ6kSeoX^;jp0WJoIL5g-M1z@hrB;?Jj!hhS_YN$_R$O zRvW2_&eaZ>srHF+Sl4l&qI?dit)i0>Fync_B@$vq@Sc7)g8d}5vUNd{MI$w{w#qBg zfC7*08;9(5z8-c^fr2zq^81?9)77xTv-sEz=8wZaC#%q1W0 zoBYG;R0r;qd0WcXsU#=YHO9A54v3`j0fr6lR;(Ue*z1bdXV?+nEK>jjZIz-3e#pyF zi=K77XA5+Z;*>#4^xQgZ|7BrBHv8JA>_Tu+fv}>_$v*JI-0E2TPt&L!yQ_PmQJ9hGM8#_@tTj$^V?rPV;}bLVJ(7uaBowhj%njGM!rJ z*PB=V47yb5KQ3P^?C&hyZC@l(DeD{EBOk7e5?k-nj5r~!Cr8I3K6raoBVez6uY*j0 zP%l-Hu$~iDB#AD1#;Kjehr*O^^JhBHgt$*BTzFopgq+?p+2fs1#{zr7tIkj9rBAni z$m9Eep_e!;3CVoT`_x)bjceAw{IhZh(b>G|6gFAfrOg1+hByTWvDP7>?AQ-d5o9A+ zo2)Ihr!6yij+rE%fIRCh99fOm#}gmi=3#b{-Up-b>_f@>dV%KnNL>4Gn^@yBWL<*t z&tnu*`txowCAGwo+r(Wdoy)iN7nDBHa|A>1B)@r??`tq~A zo{u@q#p?}zAmjHO0KcFsj|JCzSr))9kp|l=`DyT$F#%G4#d_9?L47m%NBLt<(%-J! z@;;NaPkM=ae^^t1>34(I)F;^QDV8fP^O3`}GtRhp^6C0NCC6-zQ!n3@Vl{ja!8&{y zq$}0q^f6;7-)zrkT^FVQ5HJP+6)6gSCY+jEaX)@TgZ})1LMj^Dy*!flcv-TMiUMBi z#!i9MN_$a5v&ar3FglurVn+JF=k#3*1R@6Cz%rmBXE%oM6nUIc`mKq+M%~jxoTHOR zPmXA*GI~q#)3K8QJWkQa+KcTDt#@DJ1fl#30{<;*dYsonm?}W^D(`mhMr<1ylBPKE;G>TQNcy2Sd>veMW>M^3wKlOT<7>PX<6~ z2L>IBR4u(#utcS!^Y=x@_4)W*2nPx@Le*5Z}*tX#Pb;pm}+3A~DFL)vXA+wH3-c`(9!=&4UM!LSCcKkpAp-A5fchNw)9l0+I z`KHJ7A|Ur&qd+NWlo8J1Sj^3eVwm;F5o>J1Q-eA>S40oZ88zeP|hwp@W?MG?i!1Oy^6es9AhNjAME= zVVgf);S($T_7H5WzpL*U59R9<=-%IfHF0bUWIXEPe)olo2$9D0$D-e2qJ2`uXz*A3$esljmH476`}o$WMLvBeh2ngKN3g{Nkn3nlm%t52u~3*|mH ziS@}-rR31LV)EGY{i=o#z9JT+#9(FkYE=4I1zCe)wX-Jn=r%8IizcB6DgXTgw9Uq@ zl&+M^_BJlveRV!RTW4%*V754Cp%{gbRdt^!9D~?3Fa-UoiX4hfwy3gh{HViJ$NoEQ zVlsTR5#E34Wc;dt$mv||dT5*nk=V}z>ki6zcs+)EZFiEmP>}$tR%XRUEXUO3-@;0t zhno=1CUBimiQSvVKsI(_dcfsNEe=Q4D*1K}yOcc4ZPPX9A1Qt*6whTDtJ2ky&O z99LcCsJ-6}@GRu3l^Q`&V_^2Q$z1IumA0n_U>iZbsQ0+=aPcq{cf4IaiD4^idep#o zij;Q+=*l>?$~LHs>V8eAz0UAy{O^zSIlgxd50}ye-}^1!5;~4_kqS|tlhol0Wj4rT z7;6B#^`?2s9%@$lTi&*eMmxtnqoX>gPso|FKzzP8m`9k@=rZf;z4qLj&P*Y>tI+A( zLVCRS`jxvBEpHa9Nj5lA5mxjWBA(wO*qu@hm20Zaoffoh4yQD}993TL%qpD(Hv37+ zd0)s;=gH$+alM_E`>NMkg%Qvfe7`1?6FV0+dPelw58tD{^ML=ngWg$X;^iL(l%mzt2%?%xOGigm$J|MQI{@B2rz`fg_1^C*Ll^Qu^C-d=y{ z$Eif{$s~l;GZGr~j0<24b3E)X`Pg3VyD77Y-&}Dj!L>IUJr2;-)s2+_5BEDZ9x;t@~-kF_>X2P3{1m)f*Xeu0JzowW8m zJyYp=g<}scE7)UVwbE_VQr_MzZJNKVol;$Z~L zzj%uo%tL7MAVE>lR=TnC{KdO_V2ehmI~KP;&Y1!ui?xx{_qb$neh%3 zilw9deMLk^dod&dK7IwyQqas{PVnd_0$7%RE5)^h#&)a~UJ+gTb*XdpOhZmF13*s3 zOCW7NM)xKi2PWoOt8nMWct{kGPRPiYxo^!NVNa18Y>FOK)RfXR*3s6w@E z$KwC05P6Kqy&PzB&Kz#~c1Gssb3dG0#PsNvYdXEP92oIEpE^D-Thdv)8Dek2EL8){ z{7vQ9$xu6ow5`b<<0S%+@i|w9$%AGdvDOp*jajerw7FU#t89heB@}10@3>9Nd zf8%$F)pj^d`TV#mr0Kk}@1HOk^r2REf919Z<{qC(kw{H1tT^{--(X7`zB1&v}1 za+hGzTC|?k9(T<|q^^28E;nPG>208n<5gYoux0oCx$v__*94nfhWsA-h9>+3rIj|_ytyG=)?BJdoVVQlK4uesBk_aPkaQ$Bf0 zW+=DoL7Ih)!v-+qq4KflDQy2fjvNiS(I(0gS_k=8UFjb7p9V2{c@eXbwxpDRZGBc4 zuwlh@c;1FTUumQHnZ!t6M*Mbx+!YGRI!&2Q1(!JdzuG%EGa`V2_Nj3 z?Fs0g5x3!fVwz-wnGL@DaONF2nO3Cp)2gzqP=N_tZ6}Ngn-7n*AfpxT!#ns}gA#q& zHW%C%-^EgUxaRL`mtvJbsGRz3>>G{GA7i1rv@PR!d0D5N>Uf-|%4WciPjJEW`Em6) z4!H**{D@=*#Z#LL;gIkc!999XJ|d0Cc8fVzMBtM`$E4?=Nj6mlN)vN5>oA~KHsKTR zq-X~_Pzf`gQ#AdO9YyHVp5@IblB_un>j~SJd%Iy$0EMq&|NZ1$uJ@URk@hP#xw#)fGh{g+cTIp?D zUx1jo?|V4CJ`Or)sXjy)D$fhH>Q4lhafAyt4}*8lJ^xGG-J`hNG0)n3F-UWj2-}q5 zQ(o3Q(JFf^@)*Z9Fm%5kTi1dZ=q!3%zy=_Gd5D=R(i3lJz1$RQBuDFXy1XnvqVx3Q z32u327LQap@3Kx6zK3)s-f%pwvejsN(Zje$#@hnRz;}D!MVnhzqs-=NaMh#ys7h9T zwh5Md7CY4n+Rm24qB`I25;IG%Q7)<45dOViDHFuXntm2p=AtuAgy;Pe>_&6aWtH-D z_Z4qw0z@(_@=~Pb!ysiUu=WzPG}963BTLbm9K6I1v?+h~hxm5Jk49ngx$|kH+uAR_ z0vholN{ioV(Jr>mlJjmNw`Sg~knToYe$wFpP&l6u#SIv#@7YoHMbn&DIzOHCt%MrY z($I6L$-}oa!R=M_h zM@$$Jg<`7I22a{ohFxsvESd>_@s)Dho-Pw(cwxuf>9+|Sl`OJ3^u9X!#2uP?AIs`H zfh7{6No}FoxL(1L^?WX@fwoXMI_^cu`u;V&o<#U7kOT17>*JOn*{)EUnhm|j>oU!O zZ;h-89l=%<+kXoG?le;Ui7B??UZ;iSgQ%<2_ky7uCwOeDS#L@CK%Q#di#6NBE8$sUkx7b~z9bvVo(yq5c!BA7QF@ z;d|f!<9DSfj1Gxo*cNNSKAg+{)9wpHqH#4}2%s%trqv6T;p0ct!y2%{T`o*NvkR;rh3%|{rW zv8P?>YKrbqa`uQe@_T!Na$0?e&?`1|!q}nA=h(O(QAu5AQz6S5ZM=Zimg5!7%;Mpe zM^9n^hv)X{ba*3lJ2X1!F^a&!xpXzUJjZ+)2HjFn|WuAIArFnYe z`u{t^Eav{ad`?)jgD-mKCrFq`!_U6~yn8c5>xPc7=|rpM$5T;5Mt5M3gFC$eCTQja z<^G~0f-cqMd2T3KKxUp5RyVbjf!8>HzZ+^E!TW!J6CWI1?=(!1Mkc ze-E_=@cYbSl9jXLkjpu@NV+<6>gGRNuG1)21+H$MS$@X)O!yM+Bu4L z7noWeot`71+$Q-){M!Qp@F;d(w8Bc!^zDXZ%~$eYT`wIQKSjSg!!5MiaBx9@Ss2gd zPJVhl!LK*4R@0XfzoMmK`p|Rj#ru44iqy0E|!ly1Z$4>w@>d{ zrgPV8w4meIw2&=5BTHxO*a-RaaIZx#0?(y?c&x+Ne=B1#vuxLy%m7XS3_zn2hYt(% z+UCjoijlmXo9sT8+EnXqH33fchZXT#t9tjNKu@=%hkLD7eZbusL-P%;y!S#qV(DIW zs6&R(S1`q?xfR52BsQC>yiCva)X4KSH56H}+g^~$Z+QKCNPvDys5XxgtIcnG7#Bo6 z^*;JBA-tmPQthSsH1&KG5rQK>U`4WPBkm!XZMz5$?J+d{Ggji={oYrWj9gFrDn#xI zo5_U;vrrY%A!4*qFptiIX|Wdsg)yC`fnrN^LhWCfs*CANQXQO2Wo3pX5H=)hn0U)6 zcxWalmy&&2vS_abF;c3zHw6ZQ>4qoYIstMoK0WQPP(#*I^^unG=(n)px56k0;*Mgf zy4013bTqEtioHIJ2Cx6#b$%H$36}@!xNw#HI8vtOr_|-MF!0QXk&T)geSDt#0mWF_ z>piX-(?`UxD)7*+qe^R$-VN6{y%6f_HEx>gXQqE^Cyu7Q#<`m7l7sHHLTm;HX6P~4 zf18VneDFTkyj-nhN3HEJb5I{mx2(2SObNL~%F87e!Cw=@dISefKeO7opJ67xC?od{ zOcThytR*LJ`Qf$aB6opkC=-FbYjD#W5Z@U|^m02L(ih_pcQn5;y1ye#^1EYN(lzu= zSvnWa{cavPuQQ6pqyGcrxE(Oq8Sy{=Q~%dT>b=g>COTr&drXm0B}~XjiBRF(vRz#A zM$N8Q^w8?HTn#}u9*|529OCyyM(hvBvPFI0v-6vQJm|u>z>{I?1!rAbz9A+v2%}GO z2t`MM+Eu$nnb6y142bLmRdqJeG#U5VzIBrL$+e;+&39=r?#{g_AX zHW-a_%BeBUjelD%s{ff<8L^eZK{2U3C7(N9iD=T&WP z|5Ie-yL|v;s&j5CH*d&S$H%`GyWrTQLqp)^TPxD$N)XJn8HI$)a5?2Y7m4YhCKDkr zT?tyG95{`dqZZO8f$U5QJXy;+H7>CvaA9y*xKv?I;t?u%y0Rbw?Yrk~u3a!F1$gST z9$iixHy^YVPG6@DoQxP5g6Hd+(uLybu5CCk`xI2Kszd*eIBoGyoGwq9b9mIas`2e3 zcIBY14u&9>3DU`h(_o^EZ$j@KDZangPx^k1dxke+pbxlN>wXLiKsoZ1p}M}ue_M@w zPww-sF;|!#Z9{I($6^e6J`2YB+r+TW(LQ~WfR=KLM^MLmA(E%i@JBeTtzCEy17891 z!Oxk-uOU1Fu|Cp5Y`<3*J3e5)M)H<+!N*a z&wJr(gJL2})#&Z$Npts5Cw<^g*PjG(Gqgo6Dh1VcZEZ3MC99aJy+?ek2Y+kJFqS3B zRh_J*SfWV>_*7?Q*q3a^Hf98MV~@D9ClA9TP{c!J*xfBPuo9 z1O%Cp?|@^?wbr$!1G7?pru;th=~oQLI(L`c;126cf28xUk19x=CQp7W=GgQsLC7Ka zEh7V^1a?`=H*(Iq1x@TN*v`#)yFaD-P6+p}Jf*CEYR8yf|3W)GLK(DF&)(Xw<#Iq` zFyBx@$ecb}LIB|?YrRhgyIrRGA$N~+%}wsAbW4$k74MXy!G0n{Hk!oe^7v#2 zjNXQ*y_wJKPKimMfVGzD3$^OEc>C7--px7QRoGr@wrMQfU#=cci+g!_oFugxEc#vq zts`T^r^cg}(Em#LWkR{!+7mW8Y@|5z<_lBmHw>Cr`n}p|#U^B=`Rx zSML~}XV`QLH*S)~wryLD8slzkCyi~}wrx9&ZQHtI+u7;!9?!e?_x-+p&Nb)EtXZ>G z4&HS_#M3AU=PPS|!9uoCNlyCGmo*SCRV}PQ-1wZ-iWlBxSg3M7cKG`8&f1O!d@BAp zoTdD=WHKAuv$IVuiw6(+m-wut#z$$$(0<>1WCYCQumN0_s#fG1BzP+RLH{ru4u+^J zTofHdm6bTNr6*w(?+k9<90dzsFK+h$U@}uG9OhCo-9g3X9BOZExCYKj zzKN0lby;KxqWCFIKTA8OGhV*S0_J=&bN68_krGT?pdN(o0lBe1p zkP9oG7tZh$0dX6^y)~$lrd)O&@Ao6)J=)GFQ7Nj!$|R_*m6BJe`z5jo!prQL2hX(cYazU(xy)w#)as$K>kH0Io^jQd^ICD795op^P~qS>ap)6YV0f zGfhI)_I0FLg(;&GYK3KSqRcrg=EkMHU*fRMPPMZ5HVKmfvh~kx{OmG{tD5Qi4qi0ZXIi<(3|>8ERaLQ_^Pm#?U{2V0fnFk|DXWLR>tbGr20 zzzEZkedcz@FA;fxP-8_L{T*C%8AGcs=~d%R^7kd=w%jnuXe|j6i+CxXI$eP7z<1Lt zcJIh;c|5jz?i~TPnpDwwzZ45-eoSx?HX|Z*IadlG8b|HNGSd zDU!QB)*h2SZ%n#WKOR5#KGnP){yHbKm{k9%%1O*}u{P-A72R^FQQ^ELqbmGqk09gH z0>_UL-R9CEipiFHg)3?)x`PN!iZP5_Vx3NJFcYGP>C$sF<0 zdNWw}%3g@K8C5=Ugn*^WC+o&95scYnG>Gt*PQ+swZ@e^yGwG^|tA6^&jP*#&076D6 z1+xv{44fZ^3qRA)PEouO^lZs(B&6dvlNub$gEDNxg%b~~+)ev^=Ywv#?ay?ZvrDu# ztUl6@pA!{G#_`zew5ts>G}ubGulW(I{hf!$!a9*j*3odoZvxv`)sNdT?{gfhWBq5G z8IBp{q@S*KRh$~eCFM2n5zos%T??#t3=cfw0N>+>mm><$p)FV=AXyy*V%`>$yTsU z>1`ftaujDz{n-`i5{rf>OrU5Y4232>2K^VFGTjl-^*UJp!n)H6JT|eS^}gk}q!svl zb|2HQ?r8RSdX-~+MpU88X-AwMdhy^7mdt%N+zO}sc^{A-%1hz!a&Pm)Aq4?3Ibj^U zM5ciH4oDh>C_BcY$}JH58>R~-rOE{gzk^nR51*VtE2`YqU#dfLQgQP4*uozaOVXol z)g4V~8^xj?xb^!4X=jt6Hg)w`UZq<1f*Puh=nS|Veqi%Oy185v42_k3J6W*Z?W`Y_c`Zp9*j3wqsu4xYmrspqW1w zC@bKDhs?7;nd5rqxYR|t4h&$K+LIbvJs$?DVFZ;7<}`b*b!LmmvPvz_V-f`@V?|4y zv`N+`hu9_gV$|R}za48-4#1L9cz3;(erh~gP5MQKi^ ziO$mbvT7*=0+Xv4zVrf(o)=H2PSe|>Pwvy!(DhUyOdJa)f*ESvrfO^RuKr)4r?0h? z5p#{J{RYKFfHDBVk@T*$eeyK!iu?%L^D5@AQwERopH`dWiY@8)ySeD3?Dw-+V8`R8 z8volBn5Vpgbw(C{wd(+uC&_8TAxTz22;%5C{@$g{mwOW}|q?$ebjhXSwoeSbqk0jfown^oWo&pKs9|ChvC+PV z%hcx~-B3Tj$e+8;3pbde=;uC6mL$kJ`s0V+>DEg7F4CWfa$N{Qm`Bw^m*X>SPguMW z!FX)oGu3Ng@Tfz&;_Ax6J9n3l6uo*Xv+?QeqeSAX*b#H&*3ZJ|?wbbr8yWmT^3lk! z`^G&2+?H=nUu27B z)hQMR|JYxg)$zWLlZ-W*Cnp{1xQJ~*x|=*(f1XbOzf>Elld`*>A8xKGvQPHM#eYxk zi&W3CX3L*hJ3OIKq(MbUAjHRNHX`zD(r}I~nG#3Sm(W#FkS5io$}AMR+|UP3JE3zd*tOYMRGefSq@TrBSflaX!BpU)gM}kIEtn9TL840EDzOMW z;_H$6X!|gmqHGohrdFHNnPNq%#6RZPw|j6Z;wA=(xG3>!Z1zU#PojmYNBxxzI;IJ& zT%)Adl*?vFnxA9l^5@uF$t@!|?xjhUKf?prEgnSUy(IO&8}z6feb(bcc-r(#@-9|2 z1%}J?*G5L3lfkQu6=A!dHY)wK2I!H~^d2)|_d=RRbF5b~G~7Rv>eLJ$GBtGwkaj~b z;?xDIFl1=nwT)SOY-mqrbQa5fXsK$ueT)FNKGz6ntvz0kfg==hbSig)i)Is(Et%7A z9^aFpPci-GKteK?60z{s|KGEVFLuu~R>|${j+we=_7G2d5L=bpo05H+K=E^r!O|ox zLx+vgbJPJ`w&%n3jdRz_#LbL&8p@Z0Y~_^f5r^pWgU?GAhM+Rbyjd2ZrPQ7lzs=r? z-X0^cL+2#Tx~;NmEQJS_xluzaARh#E7I?h@ymfTHAa;Fn$LoIaTaVcaK7HmepY1PIMc+nSe2Z@3T1VI%fdWxl zj9UHxz+4H@ALw_zH|D9?F7spV3OxlMm3F)$jbt-m{**bRq8?N1m$aZtoNhX)r25}WrEK--AvIc(2#ac@C;+js4^F1rQgs~FC zCxUOtqjQEPqYaL$wA$Jhb`9`y)vM;oxikBWG8Q?+K)2=besFU_!|@hb4cm4FoC+3p z$3#|{4ywV1))l)r|3}}zC;rEQ4*oR@zru1gmFatLdBnYQkf3Ju8nM*aZ*@T0A=^8D zlIo)Ik~eQifkJ2^cZwdIJb5&+G&k1D@+G^$kgY+lGm~EBZR_-0?fuO0wfz5Ee+8`0 z>T)BVzU;U23buPfE|ooV7!t)Jhv9S8&7;MWqLm{B&$iAKDv9LNb zfCWpTJo=5=r^nALWV?|zn1c;27*F=LsLGIs5+x~EAI zElwAE=fb=R)8f+Gx=L1MLvVr({9RIi($m~@B56N_>q*wTr~I*2bmIdYXX($Maf3c_ z`H7}HAYTOlt{|n#dw@5MN~*9UZ#ySh*Zk0DqqtSB2ZkJ(w=5$>VxM|(8H!;cT;oWs zNp5fciSyb{w)-&#r9*Vmg1MH#(U#Hqn5nGL*o#Nn>$v+;UFJ{xcc|po2mOq#2*{rGxMg`IkBH`QQHwi9 zIhvA*@Gw=>^d67~+8ZZ1cw`#KPkJQuaVZlmLz04+xKbqbtGa|JLCR7bmfOm=z%$P6 zh!WJAnD~pb*i0@PWg-;H7RF_(1G{ujbj^p*fOaaKTI|_$_zbX!?MsaVCa8Ucs6;-J z7v57pHf(i1!-RJek8AdFyx>Jrrvke5P$qwZKeb5zDP2Um0wi zI*PIuB-A)piw65MR?e3s%X=UdIAbK{S2{Jp?L{aYz@%_9i5CzqG(si)Ja}NY^L@I# zUYLwga@ShgMQf#Do3rvBHoFz~qlI!We%U{PhvBPG0T8p#Z?_ieS+%y}yL+Y!=b*Y@ z;qf{sgk#W?zUb!b&>V$sRTD`rcJMR@v=$@KXsTtoUodH%x#_!}90URf@9oD7qP4WF zHm9}tClAmG0)|Kmvw6x38hhB>7Msui<4I)mAB(Ds;qw`lvabkVN@6K3Aq73EyIvRo&9ONF&;i z7zG4^Bb*%ef~@tH+)2&tAf~L;;R+8YgPP-jT5El0j~%Xr!t5upn)oqzI3&yVaoA!d z*>acJ`KI;}M&3~O5(Mn5;T5skp%uaPsbYIUyJ)H%Q@mQzDB%m3xxL1rp zbp7=+IbM*f&N`KJHP(kO|GWn`T;KJirbyP81<$;61J+K{vJ<_uUN@`;xc9_rPn<-9 z=3njKhG1%LF5cXw?}$=e8N*^01)8?Uc;{tG+R_UX(jBdr2UBt&l}iqM7S53!{@%No z@+__HV}?2m3)WuM5^>#h1xHfeu))?>IL_PS+(k%HXb!H3?;a`@8VypR6L)V`{*k{9 zLhNeW{J4RXLKjO?y4rOAdcLT4un5}WVc?(cH6q$J20BEW|8hE-w7NVe@EbG*38TKN#gAo&0&^mmg~#Q&4`I}lC$^i%8iP^^TgM=vo*uz+d=bKB~Np!HW}Ea zW}r#tr6KyVdC}9&sMN%RMKmz03CO2chb)<=a7|oAyF*#41Sx`UyE{Bf%0Ar`%20($ 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

`icmn9w1it0^zdbMk^X=1#Q*;5 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 VRU^>Vv}3@J!b8;uMY1M={|6S@HOBw| literal 0 HcmV?d00001 From 92f7bddeb5961410922e4586503c47a59760f3e8 Mon Sep 17 00:00:00 2001 From: hsitaram Date: Thu, 26 Sep 2024 21:47:54 -0600 Subject: [PATCH 19/46] clang formatting --- Exec/RegTests/EB_Rotor4Blade/prob.H | 16 ++-- Exec/RegTests/EB_Rotor4Blade/prob.cpp | 75 +++++++++---------- Exec/RegTests/EB_TaylorCouette/prob.H | 16 ++-- Source/MOL.cpp | 13 ++-- Source/Params/param_includes/pelec_defaults.H | 6 +- Source/React.cpp | 2 +- Source/Riemann.H | 19 ++--- 7 files changed, 73 insertions(+), 74 deletions(-) diff --git a/Exec/RegTests/EB_Rotor4Blade/prob.H b/Exec/RegTests/EB_Rotor4Blade/prob.H index 7e65e6043..09f30e6bb 100644 --- a/Exec/RegTests/EB_Rotor4Blade/prob.H +++ b/Exec/RegTests/EB_Rotor4Blade/prob.H @@ -58,18 +58,16 @@ pc_initdata( auto eos = pele::physics::PhysicsType::eos(); eos.PYT2RE(p, massfrac, T, rho, eint); - if (prob_parm.do_rf) - { + if (prob_parm.do_rf) { amrex::GpuArray axis_loc = { prob_parm.rf_axis_x, prob_parm.rf_axis_y, prob_parm.rf_axis_z}; - amrex::RealVect r = get_rotaxis_vec( - i, j, k, axis_loc, geomdata); + amrex::RealVect r = get_rotaxis_vec(i, j, k, axis_loc, geomdata); amrex::RealVect omgavec(0.0, 0.0, 0.0); - omgavec[prob_parm.rf_axis] = prob_parm.rf_omega; - amrex::RealVect w_cross_r = omgavec.crossProduct(r); - u=-w_cross_r[0]; - v=-w_cross_r[1]; - w=-w_cross_r[2]; + omgavec[prob_parm.rf_axis] = prob_parm.rf_omega; + amrex::RealVect w_cross_r = omgavec.crossProduct(r); + u = -w_cross_r[0]; + v = -w_cross_r[1]; + w = -w_cross_r[2]; } state(i, j, k, URHO) = rho; diff --git a/Exec/RegTests/EB_Rotor4Blade/prob.cpp b/Exec/RegTests/EB_Rotor4Blade/prob.cpp index 71e1e29a8..8287047cd 100644 --- a/Exec/RegTests/EB_Rotor4Blade/prob.cpp +++ b/Exec/RegTests/EB_Rotor4Blade/prob.cpp @@ -65,50 +65,49 @@ EBConcCylinders::build( amrex::ParmParse ppprob("prob"); ppprob.query("d_inner", PeleC::h_prob_parm_device->d_inner); ppprob.query("d_outer", PeleC::h_prob_parm_device->d_outer); - + ProbParmDevice const* pp = PeleC::h_prob_parm_device; - - amrex::Real r_in=0.5*pp->d_inner; - amrex::Real bladelen=1.5*r_in; - amrex::Real bladethick=0.4*r_in; - amrex::Real zlen=phi[2]-plo[2]; + + amrex::Real r_in = 0.5 * pp->d_inner; + amrex::Real bladelen = 1.5 * r_in; + amrex::Real bladethick = 0.4 * r_in; + amrex::Real zlen = phi[2] - plo[2]; // infinite cylinders - amrex::EB2::CylinderIF inner( - r_in, 2, {AMREX_D_DECL(0.0, 0, 0)}, false); - - amrex::RealArray lo,hi; - - lo[0]=0.5*r_in; - hi[0]=lo[0]+bladelen; - lo[1]=-0.5*bladethick; - hi[1]=0.5*bladethick; - lo[2]=plo[2]-2.0*zlen; - hi[2]=phi[2]+2.0*zlen; + amrex::EB2::CylinderIF inner(r_in, 2, {AMREX_D_DECL(0.0, 0, 0)}, false); + + amrex::RealArray lo, hi; + + lo[0] = 0.5 * r_in; + hi[0] = lo[0] + bladelen; + lo[1] = -0.5 * bladethick; + hi[1] = 0.5 * bladethick; + lo[2] = plo[2] - 2.0 * zlen; + hi[2] = phi[2] + 2.0 * zlen; amrex::EB2::BoxIF bf1(lo, hi, false); - - hi[0]=-0.5*r_in; - lo[0]=hi[0]-bladelen; - lo[1]=-0.5*bladethick; - hi[1]=0.5*bladethick; - lo[2]=plo[2]-2.0*zlen; - hi[2]=phi[2]+2.0*zlen; + + hi[0] = -0.5 * r_in; + lo[0] = hi[0] - bladelen; + lo[1] = -0.5 * bladethick; + hi[1] = 0.5 * bladethick; + lo[2] = plo[2] - 2.0 * zlen; + hi[2] = phi[2] + 2.0 * zlen; amrex::EB2::BoxIF bf2(lo, hi, false); - - lo[1]=0.5*r_in; - hi[1]=lo[1]+bladelen; - lo[0]=-0.5*bladethick; - hi[0]=0.5*bladethick; - lo[2]=plo[2]-2.0*zlen; - hi[2]=phi[2]+2.0*zlen; + + lo[1] = 0.5 * r_in; + hi[1] = lo[1] + bladelen; + lo[0] = -0.5 * bladethick; + hi[0] = 0.5 * bladethick; + lo[2] = plo[2] - 2.0 * zlen; + hi[2] = phi[2] + 2.0 * zlen; amrex::EB2::BoxIF bf3(lo, hi, false); - - hi[1]=-0.5*r_in; - lo[1]=hi[1]-bladelen; - lo[0]=-0.5*bladethick; - hi[0]=0.5*bladethick; - lo[2]=plo[2]-2.0*zlen; - hi[2]=phi[2]+2.0*zlen; + + hi[1] = -0.5 * r_in; + lo[1] = hi[1] - bladelen; + lo[0] = -0.5 * bladethick; + hi[0] = 0.5 * bladethick; + lo[2] = plo[2] - 2.0 * zlen; + hi[2] = phi[2] + 2.0 * zlen; amrex::EB2::BoxIF bf4(lo, hi, false); amrex::EB2::CylinderIF outer( diff --git a/Exec/RegTests/EB_TaylorCouette/prob.H b/Exec/RegTests/EB_TaylorCouette/prob.H index 7e65e6043..09f30e6bb 100644 --- a/Exec/RegTests/EB_TaylorCouette/prob.H +++ b/Exec/RegTests/EB_TaylorCouette/prob.H @@ -58,18 +58,16 @@ pc_initdata( auto eos = pele::physics::PhysicsType::eos(); eos.PYT2RE(p, massfrac, T, rho, eint); - if (prob_parm.do_rf) - { + if (prob_parm.do_rf) { amrex::GpuArray axis_loc = { prob_parm.rf_axis_x, prob_parm.rf_axis_y, prob_parm.rf_axis_z}; - amrex::RealVect r = get_rotaxis_vec( - i, j, k, axis_loc, geomdata); + amrex::RealVect r = get_rotaxis_vec(i, j, k, axis_loc, geomdata); amrex::RealVect omgavec(0.0, 0.0, 0.0); - omgavec[prob_parm.rf_axis] = prob_parm.rf_omega; - amrex::RealVect w_cross_r = omgavec.crossProduct(r); - u=-w_cross_r[0]; - v=-w_cross_r[1]; - w=-w_cross_r[2]; + omgavec[prob_parm.rf_axis] = prob_parm.rf_omega; + amrex::RealVect w_cross_r = omgavec.crossProduct(r); + u = -w_cross_r[0]; + v = -w_cross_r[1]; + w = -w_cross_r[2]; } state(i, j, k, URHO) = rho; diff --git a/Source/MOL.cpp b/Source/MOL.cpp index b065918ba..81a6c4b70 100644 --- a/Source/MOL.cpp +++ b/Source/MOL.cpp @@ -29,7 +29,7 @@ pc_compute_hyp_mol_flux( const int R_NUM = 5 + NUM_SPECIES + NUM_ADV + NUM_LIN + NUM_AUX; const int bc_test_val = 1; int using_rotframe = do_rf; // local capture - const auto geomdata=geom.data(); + const auto geomdata = geom.data(); int axisdir_captured = axisdir; amrex::Real omega_captured = omega; amrex::GpuArray axisloc_captured = { @@ -140,11 +140,12 @@ pc_compute_hyp_mol_flux( amrex::Real radl, radr, rad; if (using_rotframe) { - radr=get_rotaxis_dist(iv[0],iv[1],iv[2],axisdir_captured, - axisloc_captured,geomdata); - - radl=get_rotaxis_dist(ivm[0],ivm[1],ivm[2],axisdir_captured, - axisloc_captured,geomdata); + radr = get_rotaxis_dist( + iv[0], iv[1], iv[2], axisdir_captured, axisloc_captured, geomdata); + + radl = get_rotaxis_dist( + ivm[0], ivm[1], ivm[2], axisdir_captured, axisloc_captured, + geomdata); } if (!use_laxf_flux) { diff --git a/Source/Params/param_includes/pelec_defaults.H b/Source/Params/param_includes/pelec_defaults.H index 84016f8a1..981999d14 100644 --- a/Source/Params/param_includes/pelec_defaults.H +++ b/Source/Params/param_includes/pelec_defaults.H @@ -56,8 +56,10 @@ bool PeleC::diffuse_spec = false; bool PeleC::diffuse_vel = false; bool PeleC::transport_harmonic_mean = true; bool PeleC::do_isothermal_walls = false; -amrex::GpuArray PeleC::domlo_isothermal_temp = {-1.0}; -amrex::GpuArray PeleC::domhi_isothermal_temp = {-1.0}; +amrex::GpuArray PeleC::domlo_isothermal_temp = { + -1.0}; +amrex::GpuArray PeleC::domhi_isothermal_temp = { + -1.0}; bool PeleC::do_les = false; bool PeleC::use_explicit_filter = false; amrex::Real PeleC::Cs = 0.0; diff --git a/Source/React.cpp b/Source/React.cpp index 5e93c2c03..cdaee5d56 100644 --- a/Source/React.cpp +++ b/Source/React.cpp @@ -212,7 +212,7 @@ PeleC::react_state( rhoInv = 1.0 / snew_arr(i, j, k, URHO); amrex::Real rhoedot_ext = - (snew_arr(i, j, k, UEDEN) // new total energy + (snew_arr(i, j, k, UEDEN) // new total energy - 0.5 * (rhou * rhou + rhov * rhov + rhow * rhow) * rhoInv + snew_arr(i, j, k, URHO) * rotenrg // new KE - rho_old * e_old) / diff --git a/Source/Riemann.H b/Source/Riemann.H index 69d248f6b..bb63da3b5 100644 --- a/Source/Riemann.H +++ b/Source/Riemann.H @@ -187,14 +187,13 @@ riemann( uflx_u = uflx_rho * qint_iu + qint_gdpres; uflx_v = uflx_rho * qint_iv1; uflx_w = uflx_rho * qint_iv2; - // Hari S: see Blazek's textbook, + // Hari S: see Blazek's textbook, // Computational fluid dynamics: principles and applications // Appendix A3, Navier-Stokes in rotating frame of reference const amrex::Real rhoetot = regd + - 0.5 * rgd * - (qint_iu * qint_iu + qint_iv1 * qint_iv1 + qint_iv2 * qint_iv2) - //rotational frame energy + 0.5 * rgd * (qint_iu * qint_iu + qint_iv1 * qint_iv1 + qint_iv2 * qint_iv2) + // rotational frame energy - 0.5 * rgd * omega * omega * rad * rad; uflx_eden = qint_iu * (rhoetot + qint_gdpres); uflx_eint = qint_iu * regd; @@ -256,14 +255,16 @@ laxfriedrich_flux( eos.RYP2E(rr, mfrac_r, pr, er); // rho e total - // Hari S: see Blazek's textbook, + // Hari S: see Blazek's textbook, // Computational fluid dynamics: principles and applications // Appendix A3, Navier-Stokes in rotating frame of reference - amrex::Real r_elt = rl * (el + 0.5 * (ul * ul + vl * vl + v2l * v2l) - //rotational frame energy + amrex::Real r_elt = rl * (el + + 0.5 * (ul * ul + vl * vl + v2l * v2l) + // rotational frame energy - 0.5 * omegal * omegal * radl * radl); - amrex::Real r_ert = rr * (er + 0.5 * (ur * ur + vr * vr + v2r * v2r) - //rotational frame energy + amrex::Real r_ert = rr * (er + + 0.5 * (ur * ur + vr * vr + v2r * v2r) + // rotational frame energy - 0.5 * omegar * omegar * radr * radr); const amrex::Real wl = amrex::max(wsmall, cl * rl); From 1fe01c06c8dc06e424cadfa23c2d1781000a2212 Mon Sep 17 00:00:00 2001 From: Hariswaran Sitaraman Date: Fri, 27 Sep 2024 09:52:38 -0600 Subject: [PATCH 20/46] fixing some warnings --- Source/Diffusion.cpp | 4 +--- Source/InitEB.cpp | 4 +--- Source/MOL.cpp | 2 +- Source/PeleC.cpp | 4 ++-- Source/React.cpp | 4 +--- Source/RotSource.cpp | 6 +----- 6 files changed, 7 insertions(+), 17 deletions(-) diff --git a/Source/Diffusion.cpp b/Source/Diffusion.cpp index 89afc8d8a..f8b74d37d 100644 --- a/Source/Diffusion.cpp +++ b/Source/Diffusion.cpp @@ -22,10 +22,7 @@ PeleC::getMOLSrcTerm( int axis = rf_axis; amrex::GpuArray axis_loc = { rf_axis_x, rf_axis_y, rf_axis_z}; - auto prob_lo = geom.ProbLoArray(); - auto prob_hi = geom.ProbHiArray(); const auto dx = geom.CellSizeArray(); - const auto geomdata = geom.data(); /* Across all conserved state components, compute the method of lines rhs @@ -133,6 +130,7 @@ PeleC::getMOLSrcTerm( // Get primitives, Q, including (Y, T, p, rho) from conserved state { + const auto geomdata = geom.data(); BL_PROFILE("PeleC::ctoprim()"); amrex::ParallelFor( gbox, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { diff --git a/Source/InitEB.cpp b/Source/InitEB.cpp index b3f999f0e..64ecba34b 100644 --- a/Source/InitEB.cpp +++ b/Source/InitEB.cpp @@ -45,9 +45,7 @@ PeleC::initialize_eb2_structs() geom.CellSizeArray(); const amrex::GpuArray prob_lo = geom.ProbLoArray(); - const amrex::GpuArray prob_hi = - geom.ProbHiArray(); - amrex::Real axis = rf_axis; + int axis = rf_axis; amrex::Real omega = rf_omega; const auto& ebfactory = diff --git a/Source/MOL.cpp b/Source/MOL.cpp index 81a6c4b70..c427a7836 100644 --- a/Source/MOL.cpp +++ b/Source/MOL.cpp @@ -137,7 +137,7 @@ pc_compute_hyp_mol_flux( amrex::Real ustar = 0.0; amrex::RealVect r(0.0, 0.0, 0.0); - amrex::Real radl, radr, rad; + amrex::Real radl, radr; if (using_rotframe) { radr = get_rotaxis_dist( diff --git a/Source/PeleC.cpp b/Source/PeleC.cpp index b2eea836a..fadce025b 100644 --- a/Source/PeleC.cpp +++ b/Source/PeleC.cpp @@ -1545,7 +1545,7 @@ PeleC::enforce_consistent_e(amrex::MultiFab& S) if (do_rf) { const auto geomdata = geom.data(); - amrex::Real axis = rf_axis; + int axis = rf_axis; amrex::Real omega = rf_omega; amrex::GpuArray axis_loc = { rf_axis_x, rf_axis_y, rf_axis_z}; @@ -2207,7 +2207,7 @@ PeleC::reset_internal_energy(amrex::MultiFab& S_new, int ng) // for Rotational frames const auto geomdata = geom.data(); - amrex::Real axis = rf_axis; + int axis = rf_axis; amrex::Real omega = rf_omega; amrex::GpuArray axis_loc = { rf_axis_x, rf_axis_y, rf_axis_z}; diff --git a/Source/React.cpp b/Source/React.cpp index cdaee5d56..0b5221e06 100644 --- a/Source/React.cpp +++ b/Source/React.cpp @@ -122,12 +122,10 @@ PeleC::react_state( dynamic_cast(S_new.Factory()); auto const& flags = fact.getMultiEBCellFlagFab(); - amrex::Real rot_enrg = 0.0; - // for rotational frames amrex::Real rotframeflag = do_rf; const auto geomdata = geom.data(); - amrex::Real axis = rf_axis; + int axis = rf_axis; amrex::Real omega = rf_omega; amrex::GpuArray axis_loc = { rf_axis_x, rf_axis_y, rf_axis_z}; diff --git a/Source/RotSource.cpp b/Source/RotSource.cpp index 36c7641d9..e6e152565 100644 --- a/Source/RotSource.cpp +++ b/Source/RotSource.cpp @@ -49,11 +49,7 @@ PeleC::fill_rot_source( const auto geomdata = geom.data(); int rf_on = do_rf; amrex::Real omega = rf_omega; - amrex::Real axis = rf_axis; - - auto prob_lo = geom.ProbLoArray(); - auto prob_hi = geom.ProbHiArray(); - const auto dx = geom.CellSizeArray(); + int axis = rf_axis; // need a check to prevent mrf in 2 and 1d // read a vector instead for mrf_axis_x and y From be3e345ec796a8126d46d7f332e229293255341a Mon Sep 17 00:00:00 2001 From: Hariswaran Sitaraman Date: Fri, 27 Sep 2024 09:59:44 -0600 Subject: [PATCH 21/46] fixing more warnings --- Source/Derive.cpp | 1 - Source/Utilities.H | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Source/Derive.cpp b/Source/Derive.cpp index 48222ae3e..a61f7ef6b 100644 --- a/Source/Derive.cpp +++ b/Source/Derive.cpp @@ -128,7 +128,6 @@ pc_dereint1( // FIXME:Hari S: // cant seem to add omega and rad // as derive functions are quite rigid - // // Compute internal energy from (rho E). auto const dat = datfab.const_array(); auto e = derfab.array(); diff --git a/Source/Utilities.H b/Source/Utilities.H index 05be8c2c4..49ec6969c 100644 --- a/Source/Utilities.H +++ b/Source/Utilities.H @@ -110,7 +110,7 @@ pc_rst_int_e( const amrex::Real dual_energy_eta2, amrex::Real omega = 0.0, amrex::Real rad = 0.0, - const int verbose = 0) + const int /*verbose = 0*/) { if (std::is_same< pele::physics::PhysicsType::eos_type, pele::physics::eos::SRK>::value) { From b9b734657273acb75da97db0f922c045759d24d4 Mon Sep 17 00:00:00 2001 From: Hariswaran Sitaraman Date: Fri, 27 Sep 2024 10:01:39 -0600 Subject: [PATCH 22/46] cant to can't!! --- Source/Derive.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Derive.cpp b/Source/Derive.cpp index a61f7ef6b..53d43fdd1 100644 --- a/Source/Derive.cpp +++ b/Source/Derive.cpp @@ -126,7 +126,7 @@ pc_dereint1( // amrex::Real rad=0.0 ) { // FIXME:Hari S: - // cant seem to add omega and rad + // can't seem to add omega and rad // as derive functions are quite rigid // Compute internal energy from (rho E). auto const dat = datfab.const_array(); From 17d4525895de1f77701dc5ae6db22c7bf40cec57 Mon Sep 17 00:00:00 2001 From: Hariswaran Sitaraman Date: Fri, 27 Sep 2024 11:08:53 -0600 Subject: [PATCH 23/46] removing verbose --- Source/PeleC.cpp | 3 +-- Source/Utilities.H | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/Source/PeleC.cpp b/Source/PeleC.cpp index fadce025b..e29621aeb 100644 --- a/Source/PeleC.cpp +++ b/Source/PeleC.cpp @@ -2200,7 +2200,6 @@ PeleC::reset_internal_energy(amrex::MultiFab& S_new, int ng) const auto captured_allow_negative_energy = allow_negative_energy; const auto captured_dual_energy_update_E_from_e = dual_energy_update_E_from_e; - const auto captured_verbose = verbose; const auto captured_dual_energy_eta2 = dual_energy_eta2; auto sarrs = S_new.arrays(); const amrex::IntVect ngs(ng); @@ -2217,7 +2216,7 @@ PeleC::reset_internal_energy(amrex::MultiFab& S_new, int ng) pc_rst_int_e( i, j, k, sarrs[nbx], captured_allow_small_energy, captured_allow_negative_energy, captured_dual_energy_update_E_from_e, - captured_dual_energy_eta2, omega, rad, captured_verbose); + captured_dual_energy_eta2, omega, rad); }); amrex::Gpu::synchronize(); } diff --git a/Source/Utilities.H b/Source/Utilities.H index 49ec6969c..3fac33dde 100644 --- a/Source/Utilities.H +++ b/Source/Utilities.H @@ -109,8 +109,7 @@ pc_rst_int_e( const bool dual_energy_update_E_from_e, const amrex::Real dual_energy_eta2, amrex::Real omega = 0.0, - amrex::Real rad = 0.0, - const int /*verbose = 0*/) + amrex::Real rad = 0.0) { if (std::is_same< pele::physics::PhysicsType::eos_type, pele::physics::eos::SRK>::value) { From 4ad1095a14b8fc9567b33081181756aff1ab6d79 Mon Sep 17 00:00:00 2001 From: Hariswaran Sitaraman Date: Fri, 27 Sep 2024 12:26:10 -0600 Subject: [PATCH 24/46] some fixes for 2D --- Docs/sphinx/geometry/EB.rst | 2 +- Source/Derive.H | 16 +++- Source/Derive.cpp | 164 +++++++++++++++++++----------------- Source/Diffusion.cpp | 4 +- Source/InitEB.cpp | 12 +-- Source/MOL.cpp | 5 +- Source/PeleC.cpp | 8 +- Source/React.cpp | 6 +- Source/RotSource.cpp | 9 +- Source/Utilities.H | 37 ++++---- 10 files changed, 144 insertions(+), 119 deletions(-) diff --git a/Docs/sphinx/geometry/EB.rst b/Docs/sphinx/geometry/EB.rst index ebe03c181..a1380ae7b 100644 --- a/Docs/sphinx/geometry/EB.rst +++ b/Docs/sphinx/geometry/EB.rst @@ -210,7 +210,7 @@ Rotational frames ------------------------------ .. warning:: PeleC has limited support for simulations using rotating frames using the single-reference-frame (SRF) - method and needs the MOL scheme when using this feature. + method only in 3D and needs the MOL scheme when using this feature. Single-reference-frame implementation diff --git a/Source/Derive.H b/Source/Derive.H index 1b45fdd98..21dc558ed 100644 --- a/Source/Derive.H +++ b/Source/Derive.H @@ -92,20 +92,30 @@ PeleC::pc_dervel_if( { auto const dat = datfab.const_array(); auto vel = derfab.array(); + int rotframeflag=do_rf; int axis = rf_axis; amrex::Real omega = rf_omega; - amrex::GpuArray axis_loc = { - rf_axis_x, rf_axis_y, rf_axis_z}; + amrex::GpuArray axis_loc = {AMREX_D_DECL( + rf_axis_x, rf_axis_y, rf_axis_z)}; auto const gdata = geomdata.data(); amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + if(rotframeflag) { +#if AMREX_SPACEDIM > 2 amrex::RealVect r = get_rotaxis_vec(i, j, k, axis_loc, gdata); - amrex::RealVect w(0.0, 0.0, 0.0); + amrex::RealVect w(AMREX_D_DECL(0.0, 0.0, 0.0)); w[axis] = omega; amrex::RealVect w_cross_r = w.crossProduct(r); vel(i, j, k) = dat(i, j, k, UMX + dir) / dat(i, j, k, URHO) + w_cross_r[dir]; +#endif + } + else { + vel(i, j, k) = + dat(i, j, k, UMX + dir) / dat(i, j, k, URHO); + } + }); } diff --git a/Source/Derive.cpp b/Source/Derive.cpp index 53d43fdd1..d8fcf0937 100644 --- a/Source/Derive.cpp +++ b/Source/Derive.cpp @@ -46,102 +46,114 @@ PeleC::pc_dermagvel_if( auto magvel = derfab.array(); int axis = rf_axis; + int rotframeflag=do_rf; amrex::Real omega = rf_omega; - amrex::GpuArray axis_loc = { - rf_axis_x, rf_axis_y, rf_axis_z}; + amrex::GpuArray axis_loc = {AMREX_D_DECL( + rf_axis_x, rf_axis_y, rf_axis_z)}; auto const gdata = geomdata.data(); amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - amrex::RealVect r = get_rotaxis_vec(i, j, k, axis_loc, gdata); - amrex::RealVect w(0.0, 0.0, 0.0); - w[axis] = omega; - amrex::RealVect w_cross_r = w.crossProduct(r); - - const amrex::Real datinv = 1.0 / dat(i, j, k, URHO); - const amrex::Real dat1 = dat(i, j, k, UMX) * datinv + w_cross_r[0]; - const amrex::Real dat2 = dat(i, j, k, UMY) * datinv + w_cross_r[1]; - const amrex::Real dat3 = dat(i, j, k, UMZ) * datinv + w_cross_r[2]; - magvel(i, j, k) = sqrt((dat1 * dat1) + (dat2 * dat2) + (dat3 * dat3)); + if(rotframeflag) { +#if AMREX_SPACEDIM > 2 + amrex::RealVect r = get_rotaxis_vec(i, j, k, axis_loc, gdata); + amrex::RealVect w(0.0, 0.0, 0.0); + w[axis] = omega; + amrex::RealVect w_cross_r = w.crossProduct(r); + + const amrex::Real datinv = 1.0 / dat(i, j, k, URHO); + const amrex::Real dat1 = dat(i, j, k, UMX) * datinv + w_cross_r[0]; + const amrex::Real dat2 = dat(i, j, k, UMY) * datinv + w_cross_r[1]; + const amrex::Real dat3 = dat(i, j, k, UMZ) * datinv + w_cross_r[2]; + magvel(i, j, k) = sqrt((dat1 * dat1) + (dat2 * dat2) + (dat3 * dat3)); +#endif + } + else { + const amrex::Real datinv = 1.0 / dat(i, j, k, URHO); + const amrex::Real dat1 = dat(i, j, k, UMX) * datinv; + const amrex::Real dat2 = dat(i, j, k, UMY) * datinv; + const amrex::Real dat3 = dat(i, j, k, UMZ) * datinv; + magvel(i, j, k) = sqrt((dat1 * dat1) + (dat2 * dat2) + (dat3 * dat3)); + } }); } void pc_dermagmom( - const amrex::Box& bx, - amrex::FArrayBox& derfab, - int /*dcomp*/, - int /*ncomp*/, - const amrex::FArrayBox& datfab, - const amrex::Geometry& /*geomdata*/, - amrex::Real /*time*/, - const int* /*bcrec*/, - const int /*level*/) + const amrex::Box& bx, + amrex::FArrayBox& derfab, + int /*dcomp*/, + int /*ncomp*/, + const amrex::FArrayBox& datfab, + const amrex::Geometry& /*geomdata*/, + amrex::Real /*time*/, + const int* /*bcrec*/, + const int /*level*/) { - auto const dat = datfab.const_array(); - auto magmom = derfab.array(); - - amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - magmom(i, j, k) = sqrt( - dat(i, j, k, UMX) * dat(i, j, k, UMX) + - dat(i, j, k, UMY) * dat(i, j, k, UMY) + - dat(i, j, k, UMZ) * dat(i, j, k, UMZ)); - }); + auto const dat = datfab.const_array(); + auto magmom = derfab.array(); + + amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + magmom(i, j, k) = sqrt( + dat(i, j, k, UMX) * dat(i, j, k, UMX) + + dat(i, j, k, UMY) * dat(i, j, k, UMY) + + dat(i, j, k, UMZ) * dat(i, j, k, UMZ)); + }); } void pc_derkineng( - const amrex::Box& bx, - amrex::FArrayBox& derfab, - int /*dcomp*/, - int /*ncomp*/, - const amrex::FArrayBox& datfab, - const amrex::Geometry& /*geomdata*/, - amrex::Real /*time*/, - const int* /*bcrec*/, - const int /*level*/) + const amrex::Box& bx, + amrex::FArrayBox& derfab, + int /*dcomp*/, + int /*ncomp*/, + const amrex::FArrayBox& datfab, + const amrex::Geometry& /*geomdata*/, + amrex::Real /*time*/, + const int* /*bcrec*/, + const int /*level*/) { - auto const dat = datfab.const_array(); - auto kineng = derfab.array(); - - amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - const amrex::Real datxsq = dat(i, j, k, UMX) * dat(i, j, k, UMX); - const amrex::Real datysq = dat(i, j, k, UMY) * dat(i, j, k, UMY); - const amrex::Real datzsq = dat(i, j, k, UMZ) * dat(i, j, k, UMZ); - kineng(i, j, k) = 0.5 / dat(i, j, k, URHO) * (datxsq + datysq + datzsq); - }); + auto const dat = datfab.const_array(); + auto kineng = derfab.array(); + + amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + const amrex::Real datxsq = dat(i, j, k, UMX) * dat(i, j, k, UMX); + const amrex::Real datysq = dat(i, j, k, UMY) * dat(i, j, k, UMY); + const amrex::Real datzsq = dat(i, j, k, UMZ) * dat(i, j, k, UMZ); + kineng(i, j, k) = 0.5 / dat(i, j, k, URHO) * (datxsq + datysq + datzsq); + }); } void pc_dereint1( - const amrex::Box& bx, - amrex::FArrayBox& derfab, - int /*dcomp*/, - int /*ncomp*/, - const amrex::FArrayBox& datfab, - const amrex::Geometry& /*geomdata*/, - amrex::Real /*time*/, - const int* /*bcrec*/, - const int /*level*/) -// amrex::Real omega=0.0, -// amrex::Real rad=0.0 ) + const amrex::Box& bx, + amrex::FArrayBox& derfab, + int /*dcomp*/, + int /*ncomp*/, + const amrex::FArrayBox& datfab, + const amrex::Geometry& /*geomdata*/, + amrex::Real /*time*/, + const int* /*bcrec*/, + const int /*level*/) + // amrex::Real omega=0.0, + // amrex::Real rad=0.0 ) { - // FIXME:Hari S: - // can't seem to add omega and rad - // as derive functions are quite rigid - // Compute internal energy from (rho E). - auto const dat = datfab.const_array(); - auto e = derfab.array(); - - amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - const amrex::Real rhoInv = 1.0 / dat(i, j, k, URHO); - const amrex::Real ux = dat(i, j, k, UMX) * rhoInv; - const amrex::Real uy = dat(i, j, k, UMY) * rhoInv; - const amrex::Real uz = dat(i, j, k, UMZ) * rhoInv; - e(i, j, k) = - dat(i, j, k, UEDEN) * rhoInv - 0.5 * (ux * ux + uy * uy + uz * uz); - // see Blazek, Appendix A3, Navier-Stokes in rotating frame of reference - // e(i,j,k)-=0.5*omega*omega*rad*rad; - }); + // FIXME:Hari S: + // can't seem to add omega and rad + // as derive functions are quite rigid + // Compute internal energy from (rho E). + auto const dat = datfab.const_array(); + auto e = derfab.array(); + + amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + const amrex::Real rhoInv = 1.0 / dat(i, j, k, URHO); + const amrex::Real ux = dat(i, j, k, UMX) * rhoInv; + const amrex::Real uy = dat(i, j, k, UMY) * rhoInv; + const amrex::Real uz = dat(i, j, k, UMZ) * rhoInv; + e(i, j, k) = + dat(i, j, k, UEDEN) * rhoInv - 0.5 * (ux * ux + uy * uy + uz * uz); + // see Blazek, Appendix A3, Navier-Stokes in rotating frame of reference + // e(i,j,k)-=0.5*omega*omega*rad*rad; + }); } void diff --git a/Source/Diffusion.cpp b/Source/Diffusion.cpp index f8b74d37d..a8b9310c1 100644 --- a/Source/Diffusion.cpp +++ b/Source/Diffusion.cpp @@ -20,8 +20,8 @@ PeleC::getMOLSrcTerm( int using_rf = do_rf; amrex::Real omega = rf_omega; int axis = rf_axis; - amrex::GpuArray axis_loc = { - rf_axis_x, rf_axis_y, rf_axis_z}; + amrex::GpuArray axis_loc = {AMREX_D_DECL( + rf_axis_x, rf_axis_y, rf_axis_z)}; const auto dx = geom.CellSizeArray(); /* diff --git a/Source/InitEB.cpp b/Source/InitEB.cpp index 64ecba34b..eb5034cef 100644 --- a/Source/InitEB.cpp +++ b/Source/InitEB.cpp @@ -63,8 +63,8 @@ PeleC::initialize_eb2_structs() sv_eb_flux.resize(vfrac.local_size()); sv_eb_bcval.resize(vfrac.local_size()); - amrex::GpuArray axis_loc = { - rf_axis_x, rf_axis_y, rf_axis_z}; + amrex::GpuArray axis_loc = {AMREX_D_DECL( + rf_axis_x, rf_axis_y, rf_axis_z)}; amrex::Real rfdist2 = rf_rad * rf_rad; auto const& flags = ebfactory.getMultiEBCellFlagFab(); @@ -183,6 +183,7 @@ PeleC::initialize_eb2_structs() amrex::ParallelFor(ncutcells, [=] AMREX_GPU_DEVICE(int L) { const auto& iv = sten[L].iv; +#if AMREX_SPACEDIM > 2 amrex::Real xloc = prob_lo[0] + (iv[0] + 0.5 + sten[L].eb_centroid[0]) * dxlev[0]; amrex::Real yloc = @@ -190,14 +191,14 @@ PeleC::initialize_eb2_structs() amrex::Real zloc = prob_lo[2] + (iv[2] + 0.5 + sten[L].eb_centroid[2]) * dxlev[2]; - amrex::RealVect r(0.0, 0.0, 0.0); - amrex::RealVect w(0.0, 0.0, 0.0); + amrex::RealVect r(AMRE_D_DECL(0.0, 0.0, 0.0)); + amrex::RealVect w(AMREX_D_DECL(0.0, 0.0, 0.0)); r[0] = xloc - axis_loc[0]; r[1] = yloc - axis_loc[1]; r[2] = zloc - axis_loc[2]; - amrex::Real rmag2 = r[0] * r[0] + r[1] * r[1] + r[2] * r[2]; + amrex::Real rmag2 = r.radSquared(); rmag2 -= r[axis] * r[axis]; // only in plane if (rmag2 > rfdist2) { @@ -212,6 +213,7 @@ PeleC::initialize_eb2_structs() v_bcval[L] = 0.0; w_bcval[L] = 0.0; } +#endif }); } } else { diff --git a/Source/MOL.cpp b/Source/MOL.cpp index c427a7836..7b9a157a3 100644 --- a/Source/MOL.cpp +++ b/Source/MOL.cpp @@ -32,8 +32,8 @@ pc_compute_hyp_mol_flux( const auto geomdata = geom.data(); int axisdir_captured = axisdir; amrex::Real omega_captured = omega; - amrex::GpuArray axisloc_captured = { - axis_loc[0], axis_loc[1], axis_loc[2]}; + amrex::GpuArray axisloc_captured = {AMREX_D_DECL( + axis_loc[0], axis_loc[1], axis_loc[2])}; for (int dir = 0; dir < AMREX_SPACEDIM; dir++) { amrex::FArrayBox dq_fab(cbox, QVAR, amrex::The_Async_Arena()); @@ -136,7 +136,6 @@ pc_compute_hyp_mol_flux( amrex::Real flux_tmp[NVAR] = {0.0}; amrex::Real ustar = 0.0; - amrex::RealVect r(0.0, 0.0, 0.0); amrex::Real radl, radr; if (using_rotframe) { diff --git a/Source/PeleC.cpp b/Source/PeleC.cpp index e29621aeb..45c37bc6f 100644 --- a/Source/PeleC.cpp +++ b/Source/PeleC.cpp @@ -1547,8 +1547,8 @@ PeleC::enforce_consistent_e(amrex::MultiFab& S) const auto geomdata = geom.data(); int axis = rf_axis; amrex::Real omega = rf_omega; - amrex::GpuArray axis_loc = { - rf_axis_x, rf_axis_y, rf_axis_z}; + amrex::GpuArray axis_loc = {AMREX_D_DECL( + rf_axis_x, rf_axis_y, rf_axis_z)}; amrex::ParallelFor( S, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { @@ -2208,8 +2208,8 @@ PeleC::reset_internal_energy(amrex::MultiFab& S_new, int ng) const auto geomdata = geom.data(); int axis = rf_axis; amrex::Real omega = rf_omega; - amrex::GpuArray axis_loc = { - rf_axis_x, rf_axis_y, rf_axis_z}; + amrex::GpuArray axis_loc = {AMREX_D_DECL( + rf_axis_x, rf_axis_y, rf_axis_z)}; amrex::ParallelFor( S_new, ngs, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { amrex::Real rad = get_rotaxis_dist(i, j, k, axis, axis_loc, geomdata); diff --git a/Source/React.cpp b/Source/React.cpp index 0b5221e06..a57047510 100644 --- a/Source/React.cpp +++ b/Source/React.cpp @@ -123,12 +123,12 @@ PeleC::react_state( auto const& flags = fact.getMultiEBCellFlagFab(); // for rotational frames - amrex::Real rotframeflag = do_rf; + int rotframeflag = do_rf; const auto geomdata = geom.data(); int axis = rf_axis; amrex::Real omega = rf_omega; - amrex::GpuArray axis_loc = { - rf_axis_x, rf_axis_y, rf_axis_z}; + amrex::GpuArray axis_loc = {AMREX_D_DECL( + rf_axis_x, rf_axis_y, rf_axis_z)}; #ifdef AMREX_USE_OMP #pragma omp parallel if (amrex::Gpu::notInLaunchRegion()) diff --git a/Source/RotSource.cpp b/Source/RotSource.cpp index e6e152565..fd3cddcb1 100644 --- a/Source/RotSource.cpp +++ b/Source/RotSource.cpp @@ -42,6 +42,7 @@ PeleC::fill_rot_source( amrex::MultiFab& rot_src, int ng) { +#if AMREX_SPACEDIM > 2 auto const& fact = dynamic_cast(state_old.Factory()); auto const& flags = fact.getMultiEBCellFlagFab(); @@ -66,9 +67,9 @@ PeleC::fill_rot_source( const auto& sarr = sarrs[nbx]; const auto& src = srcs[nbx]; - amrex::RealVect r(0.0, 0.0, 0.0); - amrex::RealVect w(0.0, 0.0, 0.0); - amrex::RealVect v(0.0, 0.0, 0.0); + amrex::RealVect r(AMREX_D_DECL(0.0, 0.0, 0.0)); + amrex::RealVect w(AMREX_D_DECL(0.0, 0.0, 0.0)); + amrex::RealVect v(AMREX_D_DECL(0.0, 0.0, 0.0)); r = get_rotaxis_vec(i, j, k, axis_loc, geomdata); w[axis] = omega; @@ -87,6 +88,7 @@ PeleC::fill_rot_source( -sarr(i, j, k, URHO) * (2.0 * w_cross_v[0] + w_cross_w_cross_r[0]); src(i, j, k, UMY) = -sarr(i, j, k, URHO) * (2.0 * w_cross_v[1] + w_cross_w_cross_r[1]); + src(i, j, k, UMZ) = -sarr(i, j, k, URHO) * (2.0 * w_cross_v[2] + w_cross_w_cross_r[2]); } @@ -94,4 +96,5 @@ PeleC::fill_rot_source( }); amrex::Gpu::synchronize(); +#endif } diff --git a/Source/Utilities.H b/Source/Utilities.H index 3fac33dde..bce951f61 100644 --- a/Source/Utilities.H +++ b/Source/Utilities.H @@ -9,6 +9,19 @@ #include "PelePhysics.H" #include + +AMREX_GPU_HOST_DEVICE +AMREX_FORCE_INLINE +amrex::RealVect +pc_cmp_loc(const amrex::IntVect& idx, const amrex::GeometryData& geomdata) +{ + const amrex::RealVect x(AMREX_D_DECL( + geomdata.ProbLo(0) + (idx[0] + 0.5) * geomdata.CellSize(0), + geomdata.ProbLo(1) + (idx[1] + 0.5) * geomdata.CellSize(1), + geomdata.ProbLo(2) + (idx[2] + 0.5) * geomdata.CellSize(2))); + return x; +} + AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::RealVect @@ -21,14 +34,12 @@ get_rotaxis_vec( { const amrex::Real* prob_lo = geomdata.ProbLo(); const amrex::Real* dx = geomdata.CellSize(); + amrex::IntVect iv(AMREX_D_DECL(i,j,k)); - amrex::RealVect r(0.0, 0.0, 0.0); - amrex::Real x = prob_lo[0] + (i + 0.5) * dx[0]; - amrex::Real y = prob_lo[1] + (j + 0.5) * dx[1]; - amrex::Real z = prob_lo[2] + (k + 0.5) * dx[2]; - r[0] = x - axis_loc[0]; - r[1] = y - axis_loc[1]; - r[2] = z - axis_loc[2]; + amrex::RealVect axloc(AMREX_D_DECL(axis_loc[0],axis_loc[1],axis_loc[2])); + amrex::RealVect r(AMREX_D_DECL(0.0, 0.0, 0.0)); + amrex::RealVect x=pc_cmp_loc(iv, geomdata); + r = x - axloc; return (r); } @@ -65,18 +76,6 @@ get_rot_energy( return (0.5 * omega * omega * rad * rad); } -AMREX_GPU_HOST_DEVICE -AMREX_FORCE_INLINE -amrex::RealVect -pc_cmp_loc(const amrex::IntVect& idx, const amrex::GeometryData& geomdata) -{ - const amrex::RealVect x(AMREX_D_DECL( - geomdata.ProbLo(0) + (idx[0] + 0.5) * geomdata.CellSize(0), - geomdata.ProbLo(1) + (idx[1] + 0.5) * geomdata.CellSize(1), - geomdata.ProbLo(2) + (idx[2] + 0.5) * geomdata.CellSize(2))); - return x; -} - AMREX_GPU_DEVICE AMREX_FORCE_INLINE void From 1e2460937e94bf9276c918c0dfbe64462eb270e3 Mon Sep 17 00:00:00 2001 From: Hariswaran Sitaraman Date: Fri, 27 Sep 2024 12:52:50 -0600 Subject: [PATCH 25/46] spelling error for D_DECL --- Source/InitEB.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/InitEB.cpp b/Source/InitEB.cpp index eb5034cef..afbcdbbc4 100644 --- a/Source/InitEB.cpp +++ b/Source/InitEB.cpp @@ -191,7 +191,7 @@ PeleC::initialize_eb2_structs() amrex::Real zloc = prob_lo[2] + (iv[2] + 0.5 + sten[L].eb_centroid[2]) * dxlev[2]; - amrex::RealVect r(AMRE_D_DECL(0.0, 0.0, 0.0)); + amrex::RealVect r(AMREX_D_DECL(0.0, 0.0, 0.0)); amrex::RealVect w(AMREX_D_DECL(0.0, 0.0, 0.0)); r[0] = xloc - axis_loc[0]; From 6b4d0ff7b197783568f1143b8eda1377d37a9665 Mon Sep 17 00:00:00 2001 From: hsitaram Date: Fri, 27 Sep 2024 12:56:53 -0600 Subject: [PATCH 26/46] clang formatting again --- Source/Derive.H | 27 +++---- Source/Derive.cpp | 171 +++++++++++++++++++++---------------------- Source/Diffusion.cpp | 4 +- Source/InitEB.cpp | 4 +- Source/MOL.cpp | 4 +- Source/PeleC.cpp | 8 +- Source/React.cpp | 4 +- Source/RotSource.cpp | 2 +- Source/Utilities.H | 7 +- 9 files changed, 113 insertions(+), 118 deletions(-) diff --git a/Source/Derive.H b/Source/Derive.H index 21dc558ed..2f1b8f373 100644 --- a/Source/Derive.H +++ b/Source/Derive.H @@ -92,30 +92,27 @@ PeleC::pc_dervel_if( { auto const dat = datfab.const_array(); auto vel = derfab.array(); - int rotframeflag=do_rf; + int rotframeflag = do_rf; int axis = rf_axis; amrex::Real omega = rf_omega; - amrex::GpuArray axis_loc = {AMREX_D_DECL( - rf_axis_x, rf_axis_y, rf_axis_z)}; + amrex::GpuArray axis_loc = { + AMREX_D_DECL(rf_axis_x, rf_axis_y, rf_axis_z)}; auto const gdata = geomdata.data(); amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - if(rotframeflag) { + if (rotframeflag) { #if AMREX_SPACEDIM > 2 - amrex::RealVect r = get_rotaxis_vec(i, j, k, axis_loc, gdata); - amrex::RealVect w(AMREX_D_DECL(0.0, 0.0, 0.0)); - w[axis] = omega; - amrex::RealVect w_cross_r = w.crossProduct(r); - vel(i, j, k) = - dat(i, j, k, UMX + dir) / dat(i, j, k, URHO) + w_cross_r[dir]; + amrex::RealVect r = get_rotaxis_vec(i, j, k, axis_loc, gdata); + amrex::RealVect w(AMREX_D_DECL(0.0, 0.0, 0.0)); + w[axis] = omega; + amrex::RealVect w_cross_r = w.crossProduct(r); + vel(i, j, k) = + dat(i, j, k, UMX + dir) / dat(i, j, k, URHO) + w_cross_r[dir]; #endif + } else { + vel(i, j, k) = dat(i, j, k, UMX + dir) / dat(i, j, k, URHO); } - else { - vel(i, j, k) = - dat(i, j, k, UMX + dir) / dat(i, j, k, URHO); - } - }); } diff --git a/Source/Derive.cpp b/Source/Derive.cpp index d8fcf0937..888c16294 100644 --- a/Source/Derive.cpp +++ b/Source/Derive.cpp @@ -46,114 +46,113 @@ PeleC::pc_dermagvel_if( auto magvel = derfab.array(); int axis = rf_axis; - int rotframeflag=do_rf; + int rotframeflag = do_rf; amrex::Real omega = rf_omega; - amrex::GpuArray axis_loc = {AMREX_D_DECL( - rf_axis_x, rf_axis_y, rf_axis_z)}; + amrex::GpuArray axis_loc = { + AMREX_D_DECL(rf_axis_x, rf_axis_y, rf_axis_z)}; auto const gdata = geomdata.data(); amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - if(rotframeflag) { + if (rotframeflag) { #if AMREX_SPACEDIM > 2 - amrex::RealVect r = get_rotaxis_vec(i, j, k, axis_loc, gdata); - amrex::RealVect w(0.0, 0.0, 0.0); - w[axis] = omega; - amrex::RealVect w_cross_r = w.crossProduct(r); - - const amrex::Real datinv = 1.0 / dat(i, j, k, URHO); - const amrex::Real dat1 = dat(i, j, k, UMX) * datinv + w_cross_r[0]; - const amrex::Real dat2 = dat(i, j, k, UMY) * datinv + w_cross_r[1]; - const amrex::Real dat3 = dat(i, j, k, UMZ) * datinv + w_cross_r[2]; - magvel(i, j, k) = sqrt((dat1 * dat1) + (dat2 * dat2) + (dat3 * dat3)); + amrex::RealVect r = get_rotaxis_vec(i, j, k, axis_loc, gdata); + amrex::RealVect w(0.0, 0.0, 0.0); + w[axis] = omega; + amrex::RealVect w_cross_r = w.crossProduct(r); + + const amrex::Real datinv = 1.0 / dat(i, j, k, URHO); + const amrex::Real dat1 = dat(i, j, k, UMX) * datinv + w_cross_r[0]; + const amrex::Real dat2 = dat(i, j, k, UMY) * datinv + w_cross_r[1]; + const amrex::Real dat3 = dat(i, j, k, UMZ) * datinv + w_cross_r[2]; + magvel(i, j, k) = sqrt((dat1 * dat1) + (dat2 * dat2) + (dat3 * dat3)); #endif - } - else { - const amrex::Real datinv = 1.0 / dat(i, j, k, URHO); - const amrex::Real dat1 = dat(i, j, k, UMX) * datinv; - const amrex::Real dat2 = dat(i, j, k, UMY) * datinv; - const amrex::Real dat3 = dat(i, j, k, UMZ) * datinv; - magvel(i, j, k) = sqrt((dat1 * dat1) + (dat2 * dat2) + (dat3 * dat3)); - } + } else { + const amrex::Real datinv = 1.0 / dat(i, j, k, URHO); + const amrex::Real dat1 = dat(i, j, k, UMX) * datinv; + const amrex::Real dat2 = dat(i, j, k, UMY) * datinv; + const amrex::Real dat3 = dat(i, j, k, UMZ) * datinv; + magvel(i, j, k) = sqrt((dat1 * dat1) + (dat2 * dat2) + (dat3 * dat3)); + } }); } void pc_dermagmom( - const amrex::Box& bx, - amrex::FArrayBox& derfab, - int /*dcomp*/, - int /*ncomp*/, - const amrex::FArrayBox& datfab, - const amrex::Geometry& /*geomdata*/, - amrex::Real /*time*/, - const int* /*bcrec*/, - const int /*level*/) + const amrex::Box& bx, + amrex::FArrayBox& derfab, + int /*dcomp*/, + int /*ncomp*/, + const amrex::FArrayBox& datfab, + const amrex::Geometry& /*geomdata*/, + amrex::Real /*time*/, + const int* /*bcrec*/, + const int /*level*/) { - auto const dat = datfab.const_array(); - auto magmom = derfab.array(); - - amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - magmom(i, j, k) = sqrt( - dat(i, j, k, UMX) * dat(i, j, k, UMX) + - dat(i, j, k, UMY) * dat(i, j, k, UMY) + - dat(i, j, k, UMZ) * dat(i, j, k, UMZ)); - }); + auto const dat = datfab.const_array(); + auto magmom = derfab.array(); + + amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + magmom(i, j, k) = sqrt( + dat(i, j, k, UMX) * dat(i, j, k, UMX) + + dat(i, j, k, UMY) * dat(i, j, k, UMY) + + dat(i, j, k, UMZ) * dat(i, j, k, UMZ)); + }); } void pc_derkineng( - const amrex::Box& bx, - amrex::FArrayBox& derfab, - int /*dcomp*/, - int /*ncomp*/, - const amrex::FArrayBox& datfab, - const amrex::Geometry& /*geomdata*/, - amrex::Real /*time*/, - const int* /*bcrec*/, - const int /*level*/) + const amrex::Box& bx, + amrex::FArrayBox& derfab, + int /*dcomp*/, + int /*ncomp*/, + const amrex::FArrayBox& datfab, + const amrex::Geometry& /*geomdata*/, + amrex::Real /*time*/, + const int* /*bcrec*/, + const int /*level*/) { - auto const dat = datfab.const_array(); - auto kineng = derfab.array(); - - amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - const amrex::Real datxsq = dat(i, j, k, UMX) * dat(i, j, k, UMX); - const amrex::Real datysq = dat(i, j, k, UMY) * dat(i, j, k, UMY); - const amrex::Real datzsq = dat(i, j, k, UMZ) * dat(i, j, k, UMZ); - kineng(i, j, k) = 0.5 / dat(i, j, k, URHO) * (datxsq + datysq + datzsq); - }); + auto const dat = datfab.const_array(); + auto kineng = derfab.array(); + + amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + const amrex::Real datxsq = dat(i, j, k, UMX) * dat(i, j, k, UMX); + const amrex::Real datysq = dat(i, j, k, UMY) * dat(i, j, k, UMY); + const amrex::Real datzsq = dat(i, j, k, UMZ) * dat(i, j, k, UMZ); + kineng(i, j, k) = 0.5 / dat(i, j, k, URHO) * (datxsq + datysq + datzsq); + }); } void pc_dereint1( - const amrex::Box& bx, - amrex::FArrayBox& derfab, - int /*dcomp*/, - int /*ncomp*/, - const amrex::FArrayBox& datfab, - const amrex::Geometry& /*geomdata*/, - amrex::Real /*time*/, - const int* /*bcrec*/, - const int /*level*/) - // amrex::Real omega=0.0, - // amrex::Real rad=0.0 ) + const amrex::Box& bx, + amrex::FArrayBox& derfab, + int /*dcomp*/, + int /*ncomp*/, + const amrex::FArrayBox& datfab, + const amrex::Geometry& /*geomdata*/, + amrex::Real /*time*/, + const int* /*bcrec*/, + const int /*level*/) +// amrex::Real omega=0.0, +// amrex::Real rad=0.0 ) { - // FIXME:Hari S: - // can't seem to add omega and rad - // as derive functions are quite rigid - // Compute internal energy from (rho E). - auto const dat = datfab.const_array(); - auto e = derfab.array(); - - amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - const amrex::Real rhoInv = 1.0 / dat(i, j, k, URHO); - const amrex::Real ux = dat(i, j, k, UMX) * rhoInv; - const amrex::Real uy = dat(i, j, k, UMY) * rhoInv; - const amrex::Real uz = dat(i, j, k, UMZ) * rhoInv; - e(i, j, k) = - dat(i, j, k, UEDEN) * rhoInv - 0.5 * (ux * ux + uy * uy + uz * uz); - // see Blazek, Appendix A3, Navier-Stokes in rotating frame of reference - // e(i,j,k)-=0.5*omega*omega*rad*rad; - }); + // FIXME:Hari S: + // can't seem to add omega and rad + // as derive functions are quite rigid + // Compute internal energy from (rho E). + auto const dat = datfab.const_array(); + auto e = derfab.array(); + + amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + const amrex::Real rhoInv = 1.0 / dat(i, j, k, URHO); + const amrex::Real ux = dat(i, j, k, UMX) * rhoInv; + const amrex::Real uy = dat(i, j, k, UMY) * rhoInv; + const amrex::Real uz = dat(i, j, k, UMZ) * rhoInv; + e(i, j, k) = + dat(i, j, k, UEDEN) * rhoInv - 0.5 * (ux * ux + uy * uy + uz * uz); + // see Blazek, Appendix A3, Navier-Stokes in rotating frame of reference + // e(i,j,k)-=0.5*omega*omega*rad*rad; + }); } void diff --git a/Source/Diffusion.cpp b/Source/Diffusion.cpp index a8b9310c1..2c331d46d 100644 --- a/Source/Diffusion.cpp +++ b/Source/Diffusion.cpp @@ -20,8 +20,8 @@ PeleC::getMOLSrcTerm( int using_rf = do_rf; amrex::Real omega = rf_omega; int axis = rf_axis; - amrex::GpuArray axis_loc = {AMREX_D_DECL( - rf_axis_x, rf_axis_y, rf_axis_z)}; + amrex::GpuArray axis_loc = { + AMREX_D_DECL(rf_axis_x, rf_axis_y, rf_axis_z)}; const auto dx = geom.CellSizeArray(); /* diff --git a/Source/InitEB.cpp b/Source/InitEB.cpp index afbcdbbc4..dded13f1d 100644 --- a/Source/InitEB.cpp +++ b/Source/InitEB.cpp @@ -63,8 +63,8 @@ PeleC::initialize_eb2_structs() sv_eb_flux.resize(vfrac.local_size()); sv_eb_bcval.resize(vfrac.local_size()); - amrex::GpuArray axis_loc = {AMREX_D_DECL( - rf_axis_x, rf_axis_y, rf_axis_z)}; + amrex::GpuArray axis_loc = { + AMREX_D_DECL(rf_axis_x, rf_axis_y, rf_axis_z)}; amrex::Real rfdist2 = rf_rad * rf_rad; auto const& flags = ebfactory.getMultiEBCellFlagFab(); diff --git a/Source/MOL.cpp b/Source/MOL.cpp index 7b9a157a3..a9809a7b8 100644 --- a/Source/MOL.cpp +++ b/Source/MOL.cpp @@ -32,8 +32,8 @@ pc_compute_hyp_mol_flux( const auto geomdata = geom.data(); int axisdir_captured = axisdir; amrex::Real omega_captured = omega; - amrex::GpuArray axisloc_captured = {AMREX_D_DECL( - axis_loc[0], axis_loc[1], axis_loc[2])}; + amrex::GpuArray axisloc_captured = { + AMREX_D_DECL(axis_loc[0], axis_loc[1], axis_loc[2])}; for (int dir = 0; dir < AMREX_SPACEDIM; dir++) { amrex::FArrayBox dq_fab(cbox, QVAR, amrex::The_Async_Arena()); diff --git a/Source/PeleC.cpp b/Source/PeleC.cpp index 45c37bc6f..5035ce4d6 100644 --- a/Source/PeleC.cpp +++ b/Source/PeleC.cpp @@ -1547,8 +1547,8 @@ PeleC::enforce_consistent_e(amrex::MultiFab& S) const auto geomdata = geom.data(); int axis = rf_axis; amrex::Real omega = rf_omega; - amrex::GpuArray axis_loc = {AMREX_D_DECL( - rf_axis_x, rf_axis_y, rf_axis_z)}; + amrex::GpuArray axis_loc = { + AMREX_D_DECL(rf_axis_x, rf_axis_y, rf_axis_z)}; amrex::ParallelFor( S, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { @@ -2208,8 +2208,8 @@ PeleC::reset_internal_energy(amrex::MultiFab& S_new, int ng) const auto geomdata = geom.data(); int axis = rf_axis; amrex::Real omega = rf_omega; - amrex::GpuArray axis_loc = {AMREX_D_DECL( - rf_axis_x, rf_axis_y, rf_axis_z)}; + amrex::GpuArray axis_loc = { + AMREX_D_DECL(rf_axis_x, rf_axis_y, rf_axis_z)}; amrex::ParallelFor( S_new, ngs, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { amrex::Real rad = get_rotaxis_dist(i, j, k, axis, axis_loc, geomdata); diff --git a/Source/React.cpp b/Source/React.cpp index a57047510..60069c9f3 100644 --- a/Source/React.cpp +++ b/Source/React.cpp @@ -127,8 +127,8 @@ PeleC::react_state( const auto geomdata = geom.data(); int axis = rf_axis; amrex::Real omega = rf_omega; - amrex::GpuArray axis_loc = {AMREX_D_DECL( - rf_axis_x, rf_axis_y, rf_axis_z)}; + amrex::GpuArray axis_loc = { + AMREX_D_DECL(rf_axis_x, rf_axis_y, rf_axis_z)}; #ifdef AMREX_USE_OMP #pragma omp parallel if (amrex::Gpu::notInLaunchRegion()) diff --git a/Source/RotSource.cpp b/Source/RotSource.cpp index fd3cddcb1..1be3ed7dd 100644 --- a/Source/RotSource.cpp +++ b/Source/RotSource.cpp @@ -88,7 +88,7 @@ PeleC::fill_rot_source( -sarr(i, j, k, URHO) * (2.0 * w_cross_v[0] + w_cross_w_cross_r[0]); src(i, j, k, UMY) = -sarr(i, j, k, URHO) * (2.0 * w_cross_v[1] + w_cross_w_cross_r[1]); - + src(i, j, k, UMZ) = -sarr(i, j, k, URHO) * (2.0 * w_cross_v[2] + w_cross_w_cross_r[2]); } diff --git a/Source/Utilities.H b/Source/Utilities.H index bce951f61..fc8dc5331 100644 --- a/Source/Utilities.H +++ b/Source/Utilities.H @@ -9,7 +9,6 @@ #include "PelePhysics.H" #include - AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::RealVect @@ -34,11 +33,11 @@ get_rotaxis_vec( { const amrex::Real* prob_lo = geomdata.ProbLo(); const amrex::Real* dx = geomdata.CellSize(); - amrex::IntVect iv(AMREX_D_DECL(i,j,k)); + amrex::IntVect iv(AMREX_D_DECL(i, j, k)); - amrex::RealVect axloc(AMREX_D_DECL(axis_loc[0],axis_loc[1],axis_loc[2])); + amrex::RealVect axloc(AMREX_D_DECL(axis_loc[0], axis_loc[1], axis_loc[2])); amrex::RealVect r(AMREX_D_DECL(0.0, 0.0, 0.0)); - amrex::RealVect x=pc_cmp_loc(iv, geomdata); + amrex::RealVect x = pc_cmp_loc(iv, geomdata); r = x - axloc; return (r); } From 83666f37169517f34415e7be2cac72afb21a48ae Mon Sep 17 00:00:00 2001 From: hsitaram Date: Fri, 27 Sep 2024 15:23:46 -0600 Subject: [PATCH 27/46] fixing cmake and warnings --- CMake/BuildPeleExe.cmake | 1 + Source/Utilities.H | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/CMake/BuildPeleExe.cmake b/CMake/BuildPeleExe.cmake index ae5bf67f6..2cd5703a7 100644 --- a/CMake/BuildPeleExe.cmake +++ b/CMake/BuildPeleExe.cmake @@ -81,6 +81,7 @@ function(build_pele_exe pele_exe_name pele_physics_lib_name) ${SRC_DIR}/Utilities.H ${SRC_DIR}/Utilities.cpp ${SRC_DIR}/WENO.H + ${SRC_DIR}/RotSource.cpp ) if(PELE_PHYSICS_ENABLE_SPRAY) diff --git a/Source/Utilities.H b/Source/Utilities.H index fc8dc5331..121e5688e 100644 --- a/Source/Utilities.H +++ b/Source/Utilities.H @@ -31,8 +31,6 @@ get_rotaxis_vec( amrex::GpuArray axis_loc, amrex::GeometryData const& geomdata) { - const amrex::Real* prob_lo = geomdata.ProbLo(); - const amrex::Real* dx = geomdata.CellSize(); amrex::IntVect iv(AMREX_D_DECL(i, j, k)); amrex::RealVect axloc(AMREX_D_DECL(axis_loc[0], axis_loc[1], axis_loc[2])); From 5094a2b3d7fe22c2429998108fda10ed7dd8a964 Mon Sep 17 00:00:00 2001 From: hsitaram Date: Fri, 27 Sep 2024 18:15:04 -0600 Subject: [PATCH 28/46] fixing warnings for 2D --- Source/Derive.H | 32 +++++++++++++++++++------------- Source/Derive.cpp | 31 +++++++++++++++++++------------ Source/Diffusion.cpp | 4 ++-- Source/InitEB.cpp | 26 ++++++++++++-------------- Source/MOL.cpp | 9 ++++----- Source/PeleC.cpp | 7 ++++--- Source/React.cpp | 8 ++++---- Source/RotSource.cpp | 16 +++++++++++++--- Source/Utilities.H | 20 ++++++-------------- 9 files changed, 83 insertions(+), 70 deletions(-) diff --git a/Source/Derive.H b/Source/Derive.H index 2f1b8f373..e98019764 100644 --- a/Source/Derive.H +++ b/Source/Derive.H @@ -85,7 +85,11 @@ PeleC::pc_dervel_if( int /*dcomp*/, int /*ncomp*/, const amrex::FArrayBox& datfab, +#if AMREX_SPACEDIM > 2 const amrex::Geometry& geomdata, +#else + const amrex::Geometry& /*geomdata*/, +#endif amrex::Real /*time*/, const int* /*bcrec*/, const int /*level*/) @@ -93,27 +97,29 @@ PeleC::pc_dervel_if( auto const dat = datfab.const_array(); auto vel = derfab.array(); int rotframeflag = do_rf; - - int axis = rf_axis; - amrex::Real omega = rf_omega; - amrex::GpuArray axis_loc = { - AMREX_D_DECL(rf_axis_x, rf_axis_y, rf_axis_z)}; - auto const gdata = geomdata.data(); - - amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - if (rotframeflag) { + if (rotframeflag) { #if AMREX_SPACEDIM > 2 - amrex::RealVect r = get_rotaxis_vec(i, j, k, axis_loc, gdata); + int axis = rf_axis; + amrex::Real omega = rf_omega; + amrex::GpuArray axis_loc = { + AMREX_D_DECL(rf_axis_x, rf_axis_y, rf_axis_z)}; + auto const gdata = geomdata.data(); + + amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + amrex::IntVect iv(AMREX_D_DECL(i, j, k)); + amrex::RealVect r = get_rotaxis_vec(iv, axis_loc, gdata); amrex::RealVect w(AMREX_D_DECL(0.0, 0.0, 0.0)); w[axis] = omega; amrex::RealVect w_cross_r = w.crossProduct(r); vel(i, j, k) = dat(i, j, k, UMX + dir) / dat(i, j, k, URHO) + w_cross_r[dir]; + }); #endif - } else { + } else { + amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { vel(i, j, k) = dat(i, j, k, UMX + dir) / dat(i, j, k, URHO); - } - }); + }); + } } void pc_dermagvel( diff --git a/Source/Derive.cpp b/Source/Derive.cpp index 888c16294..129c0983a 100644 --- a/Source/Derive.cpp +++ b/Source/Derive.cpp @@ -37,25 +37,30 @@ PeleC::pc_dermagvel_if( int /*dcomp*/, int /*ncomp*/, const amrex::FArrayBox& datfab, +#if AMREX_SPACEDIM > 2 const amrex::Geometry& geomdata, +#else + const amrex::Geometry& /*geomdata*/, +#endif amrex::Real /*time*/, const int* /*bcrec*/, const int /*level*/) { auto const dat = datfab.const_array(); auto magvel = derfab.array(); - - int axis = rf_axis; int rotframeflag = do_rf; - amrex::Real omega = rf_omega; - amrex::GpuArray axis_loc = { - AMREX_D_DECL(rf_axis_x, rf_axis_y, rf_axis_z)}; - auto const gdata = geomdata.data(); - amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - if (rotframeflag) { + if (rotframeflag) { #if AMREX_SPACEDIM > 2 - amrex::RealVect r = get_rotaxis_vec(i, j, k, axis_loc, gdata); + int axis = rf_axis; + amrex::Real omega = rf_omega; + amrex::GpuArray axis_loc = { + AMREX_D_DECL(rf_axis_x, rf_axis_y, rf_axis_z)}; + auto const gdata = geomdata.data(); + + amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + amrex::IntVect iv(AMREX_D_DECL(i, j, k)); + amrex::RealVect r = get_rotaxis_vec(iv, axis_loc, gdata); amrex::RealVect w(0.0, 0.0, 0.0); w[axis] = omega; amrex::RealVect w_cross_r = w.crossProduct(r); @@ -65,15 +70,17 @@ PeleC::pc_dermagvel_if( const amrex::Real dat2 = dat(i, j, k, UMY) * datinv + w_cross_r[1]; const amrex::Real dat3 = dat(i, j, k, UMZ) * datinv + w_cross_r[2]; magvel(i, j, k) = sqrt((dat1 * dat1) + (dat2 * dat2) + (dat3 * dat3)); + }); #endif - } else { + } else { + amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { const amrex::Real datinv = 1.0 / dat(i, j, k, URHO); const amrex::Real dat1 = dat(i, j, k, UMX) * datinv; const amrex::Real dat2 = dat(i, j, k, UMY) * datinv; const amrex::Real dat3 = dat(i, j, k, UMZ) * datinv; magvel(i, j, k) = sqrt((dat1 * dat1) + (dat2 * dat2) + (dat3 * dat3)); - } - }); + }); + } } void diff --git a/Source/Diffusion.cpp b/Source/Diffusion.cpp index 2c331d46d..463f7b933 100644 --- a/Source/Diffusion.cpp +++ b/Source/Diffusion.cpp @@ -135,8 +135,8 @@ PeleC::getMOLSrcTerm( amrex::ParallelFor( gbox, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { if (using_rf) { - amrex::Real rad = - get_rotaxis_dist(i, j, k, axis, axis_loc, geomdata); + amrex::IntVect iv(AMREX_D_DECL(i, j, k)); + amrex::Real rad = get_rotaxis_dist(iv, axis, axis_loc, geomdata); pc_ctoprim(i, j, k, sar, qar, qauxar, omega, rad); } else { pc_ctoprim(i, j, k, sar, qar, qauxar); diff --git a/Source/InitEB.cpp b/Source/InitEB.cpp index dded13f1d..cff778616 100644 --- a/Source/InitEB.cpp +++ b/Source/InitEB.cpp @@ -41,13 +41,6 @@ PeleC::initialize_eb2_structs() std::is_standard_layout::value, "EBBndryGeom is not standard layout"); - const amrex::GpuArray dxlev = - geom.CellSizeArray(); - const amrex::GpuArray prob_lo = - geom.ProbLoArray(); - int axis = rf_axis; - amrex::Real omega = rf_omega; - const auto& ebfactory = dynamic_cast(Factory()); @@ -63,10 +56,6 @@ PeleC::initialize_eb2_structs() sv_eb_flux.resize(vfrac.local_size()); sv_eb_bcval.resize(vfrac.local_size()); - amrex::GpuArray axis_loc = { - AMREX_D_DECL(rf_axis_x, rf_axis_y, rf_axis_z)}; - amrex::Real rfdist2 = rf_rad * rf_rad; - auto const& flags = ebfactory.getMultiEBCellFlagFab(); // Boundary stencil option: 0 = original, 1 = amrex way, 2 = least squares @@ -174,7 +163,17 @@ PeleC::initialize_eb2_structs() if (eb_noslip && diffuse_vel) { if (do_rf) { - // amrex::Print()<<"do_rf in init eb\n"; +#if AMREX_SPACEDIM > 2 + const amrex::GpuArray dxlev = + geom.CellSizeArray(); + const amrex::GpuArray prob_lo = + geom.ProbLoArray(); + int axis = rf_axis; + amrex::Real omega = rf_omega; + amrex::GpuArray axis_loc = { + AMREX_D_DECL(rf_axis_x, rf_axis_y, rf_axis_z)}; + amrex::Real rfdist2 = rf_rad * rf_rad; + auto u_bcval = sv_eb_bcval[iLocal].dataPtr(QU); auto v_bcval = sv_eb_bcval[iLocal].dataPtr(QV); auto w_bcval = sv_eb_bcval[iLocal].dataPtr(QW); @@ -183,7 +182,6 @@ PeleC::initialize_eb2_structs() amrex::ParallelFor(ncutcells, [=] AMREX_GPU_DEVICE(int L) { const auto& iv = sten[L].iv; -#if AMREX_SPACEDIM > 2 amrex::Real xloc = prob_lo[0] + (iv[0] + 0.5 + sten[L].eb_centroid[0]) * dxlev[0]; amrex::Real yloc = @@ -213,9 +211,9 @@ PeleC::initialize_eb2_structs() v_bcval[L] = 0.0; w_bcval[L] = 0.0; } -#endif }); } +#endif } else { sv_eb_bcval[iLocal].setVal(0, QU, AMREX_SPACEDIM); } diff --git a/Source/MOL.cpp b/Source/MOL.cpp index a9809a7b8..e2b443407 100644 --- a/Source/MOL.cpp +++ b/Source/MOL.cpp @@ -139,12 +139,11 @@ pc_compute_hyp_mol_flux( amrex::Real radl, radr; if (using_rotframe) { - radr = get_rotaxis_dist( - iv[0], iv[1], iv[2], axisdir_captured, axisloc_captured, geomdata); + radr = + get_rotaxis_dist(iv, axisdir_captured, axisloc_captured, geomdata); - radl = get_rotaxis_dist( - ivm[0], ivm[1], ivm[2], axisdir_captured, axisloc_captured, - geomdata); + radl = + get_rotaxis_dist(ivm, axisdir_captured, axisloc_captured, geomdata); } if (!use_laxf_flux) { diff --git a/Source/PeleC.cpp b/Source/PeleC.cpp index 5035ce4d6..a5cb1fb3d 100644 --- a/Source/PeleC.cpp +++ b/Source/PeleC.cpp @@ -1553,9 +1553,9 @@ PeleC::enforce_consistent_e(amrex::MultiFab& S) amrex::ParallelFor( S, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { auto sarr = sarrs[nbx]; - + amrex::IntVect iv(AMREX_D_DECL(i, j, k)); amrex::Real rotenrg = - get_rot_energy(i, j, k, omega, axis, axis_loc, geomdata); + get_rot_energy(iv, omega, axis, axis_loc, geomdata); sarr(i, j, k, UEDEN) = sarr(i, j, k, UEINT) - sarr(i, j, k, URHO) * rotenrg; }); @@ -2212,7 +2212,8 @@ PeleC::reset_internal_energy(amrex::MultiFab& S_new, int ng) AMREX_D_DECL(rf_axis_x, rf_axis_y, rf_axis_z)}; amrex::ParallelFor( S_new, ngs, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { - amrex::Real rad = get_rotaxis_dist(i, j, k, axis, axis_loc, geomdata); + amrex::IntVect iv(AMREX_D_DECL(i, j, k)); + amrex::Real rad = get_rotaxis_dist(iv, axis, axis_loc, geomdata); pc_rst_int_e( i, j, k, sarrs[nbx], captured_allow_small_energy, captured_allow_negative_energy, captured_dual_energy_update_E_from_e, diff --git a/Source/React.cpp b/Source/React.cpp index 60069c9f3..86c6fc557 100644 --- a/Source/React.cpp +++ b/Source/React.cpp @@ -180,6 +180,7 @@ PeleC::react_state( amrex::ParallelFor( bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + amrex::IntVect iv(AMREX_D_DECL(i, j, k)); // work on old state amrex::Real rhou = sold_arr(i, j, k, UMX); amrex::Real rhov = sold_arr(i, j, k, UMY); @@ -189,8 +190,7 @@ PeleC::react_state( amrex::Real rotenrg = 0.0; if (rotframeflag) { - rotenrg = - get_rot_energy(i, j, k, omega, axis, axis_loc, geomdata); + rotenrg = get_rot_energy(iv, omega, axis, axis_loc, geomdata); } amrex::Real e_old = @@ -233,6 +233,7 @@ PeleC::react_state( amrex::ParallelFor( bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { // work on old state + amrex::IntVect iv(AMREX_D_DECL(i, j, k)); amrex::Real rhou = sold_arr(i, j, k, UMX); amrex::Real rhov = sold_arr(i, j, k, UMY); amrex::Real rhow = sold_arr(i, j, k, UMZ); @@ -241,8 +242,7 @@ PeleC::react_state( amrex::Real rotenrg = 0.0; if (rotframeflag) { - rotenrg = - get_rot_energy(i, j, k, omega, axis, axis_loc, geomdata); + rotenrg = get_rot_energy(iv, omega, axis, axis_loc, geomdata); } amrex::Real e_old = diff --git a/Source/RotSource.cpp b/Source/RotSource.cpp index 1be3ed7dd..1f0c9b616 100644 --- a/Source/RotSource.cpp +++ b/Source/RotSource.cpp @@ -35,6 +35,7 @@ PeleC::construct_new_rot_source(amrex::Real /*time*/, amrex::Real /*dt*/) } } +#if AMREX_SPACEDIM > 2 void PeleC::fill_rot_source( const amrex::MultiFab& state_old, @@ -42,7 +43,6 @@ PeleC::fill_rot_source( amrex::MultiFab& rot_src, int ng) { -#if AMREX_SPACEDIM > 2 auto const& fact = dynamic_cast(state_old.Factory()); auto const& flags = fact.getMultiEBCellFlagFab(); @@ -71,7 +71,8 @@ PeleC::fill_rot_source( amrex::RealVect w(AMREX_D_DECL(0.0, 0.0, 0.0)); amrex::RealVect v(AMREX_D_DECL(0.0, 0.0, 0.0)); - r = get_rotaxis_vec(i, j, k, axis_loc, geomdata); + amrex::IntVect iv(AMREX_D_DECL(i, j, k)); + r = get_rotaxis_vec(iv, axis_loc, geomdata); w[axis] = omega; if (rf_on) { @@ -96,5 +97,14 @@ PeleC::fill_rot_source( }); amrex::Gpu::synchronize(); -#endif } +#else +void +PeleC::fill_rot_source( + const amrex::MultiFab& /*state_old*/, + const amrex::MultiFab& /*state_new*/, + amrex::MultiFab& /*rot_src*/, + int /*ng*/) +{ +} +#endif diff --git a/Source/Utilities.H b/Source/Utilities.H index 121e5688e..642d30482 100644 --- a/Source/Utilities.H +++ b/Source/Utilities.H @@ -25,14 +25,10 @@ AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::RealVect get_rotaxis_vec( - const int i, - const int j, - const int k, + const amrex::IntVect& iv, amrex::GpuArray axis_loc, amrex::GeometryData const& geomdata) { - amrex::IntVect iv(AMREX_D_DECL(i, j, k)); - amrex::RealVect axloc(AMREX_D_DECL(axis_loc[0], axis_loc[1], axis_loc[2])); amrex::RealVect r(AMREX_D_DECL(0.0, 0.0, 0.0)); amrex::RealVect x = pc_cmp_loc(iv, geomdata); @@ -44,15 +40,13 @@ AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real get_rotaxis_dist( - const int i, - const int j, - const int k, + const amrex::IntVect& iv, int axis, amrex::GpuArray axis_loc, amrex::GeometryData const& geomdata) { - amrex::RealVect r = get_rotaxis_vec(i, j, k, axis_loc, geomdata); - amrex::Real rad2 = r[0] * r[0] + r[1] * r[1] + r[2] * r[2]; + amrex::RealVect r = get_rotaxis_vec(iv, axis_loc, geomdata); + amrex::Real rad2 = r.radSquared(); rad2 -= r[axis] * r[axis]; // only in plane return (std::sqrt(rad2)); } @@ -61,15 +55,13 @@ AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real get_rot_energy( - const int i, - const int j, - const int k, + const amrex::IntVect& iv, amrex::Real omega, int axis, amrex::GpuArray axis_loc, amrex::GeometryData const& geomdata) { - amrex::Real rad = get_rotaxis_dist(i, j, k, axis, axis_loc, geomdata); + amrex::Real rad = get_rotaxis_dist(iv, axis, axis_loc, geomdata); return (0.5 * omega * omega * rad * rad); } From a17638d8bf1f5e1fda886dad93c4d813209db6bf Mon Sep 17 00:00:00 2001 From: hsitaram Date: Fri, 27 Sep 2024 22:04:15 -0600 Subject: [PATCH 29/46] fixing 2d bug --- Source/PeleC.cpp | 44 +++++++++++++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/Source/PeleC.cpp b/Source/PeleC.cpp index a5cb1fb3d..a961bc1f4 100644 --- a/Source/PeleC.cpp +++ b/Source/PeleC.cpp @@ -2205,21 +2205,35 @@ PeleC::reset_internal_energy(amrex::MultiFab& S_new, int ng) const amrex::IntVect ngs(ng); // for Rotational frames - const auto geomdata = geom.data(); - int axis = rf_axis; - amrex::Real omega = rf_omega; - amrex::GpuArray axis_loc = { - AMREX_D_DECL(rf_axis_x, rf_axis_y, rf_axis_z)}; - amrex::ParallelFor( - S_new, ngs, [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { - amrex::IntVect iv(AMREX_D_DECL(i, j, k)); - amrex::Real rad = get_rotaxis_dist(iv, axis, axis_loc, geomdata); - pc_rst_int_e( - i, j, k, sarrs[nbx], captured_allow_small_energy, - captured_allow_negative_energy, captured_dual_energy_update_E_from_e, - captured_dual_energy_eta2, omega, rad); - }); - amrex::Gpu::synchronize(); + if (do_rf) { + const auto geomdata = geom.data(); + int axis = rf_axis; + amrex::Real omega = rf_omega; + amrex::GpuArray axis_loc = { + AMREX_D_DECL(rf_axis_x, rf_axis_y, rf_axis_z)}; + amrex::ParallelFor( + S_new, ngs, + [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { + amrex::IntVect iv(AMREX_D_DECL(i, j, k)); + amrex::Real rad = get_rotaxis_dist(iv, axis, axis_loc, geomdata); + pc_rst_int_e( + i, j, k, sarrs[nbx], captured_allow_small_energy, + captured_allow_negative_energy, + captured_dual_energy_update_E_from_e, captured_dual_energy_eta2, + omega, rad); + }); + amrex::Gpu::synchronize(); + } else { + amrex::ParallelFor( + S_new, ngs, + [=] AMREX_GPU_DEVICE(int nbx, int i, int j, int k) noexcept { + pc_rst_int_e( + i, j, k, sarrs[nbx], captured_allow_small_energy, + captured_allow_negative_energy, + captured_dual_energy_update_E_from_e, captured_dual_energy_eta2); + }); + amrex::Gpu::synchronize(); + } } #ifndef AMREX_USE_GPU From ea86716354a5a1eb0ca3f665ea140ea56973b866 Mon Sep 17 00:00:00 2001 From: hsitaram Date: Sat, 28 Sep 2024 10:13:33 -0600 Subject: [PATCH 30/46] changing default axis value to 0 --- Source/Params/_cpp_parameters | 2 +- Source/Params/param_includes/pelec_defaults.H | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Params/_cpp_parameters b/Source/Params/_cpp_parameters index 56c30c5a9..732bf0b3e 100644 --- a/Source/Params/_cpp_parameters +++ b/Source/Params/_cpp_parameters @@ -154,7 +154,7 @@ do_rf bool false rf_omega Real 0.0 #rf axis -rf_axis int 2 +rf_axis int 0 #rf locations rf_axis_x Real 0.0 diff --git a/Source/Params/param_includes/pelec_defaults.H b/Source/Params/param_includes/pelec_defaults.H index 981999d14..d24b70f75 100644 --- a/Source/Params/param_includes/pelec_defaults.H +++ b/Source/Params/param_includes/pelec_defaults.H @@ -45,7 +45,7 @@ std::string PeleC::zl_ext_bc_type; std::string PeleC::zr_ext_bc_type; bool PeleC::do_rf = false; amrex::Real PeleC::rf_omega = 0.0; -int PeleC::rf_axis = 2; +int PeleC::rf_axis = 0; amrex::Real PeleC::rf_axis_x = 0.0; amrex::Real PeleC::rf_axis_y = 0.0; amrex::Real PeleC::rf_axis_z = 0.0; From a294a49cc32c547961265379922f626807636398 Mon Sep 17 00:00:00 2001 From: hsitaram Date: Tue, 8 Oct 2024 11:17:20 -0600 Subject: [PATCH 31/46] missed initializing radii before flux calcs --- Source/MOL.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Source/MOL.cpp b/Source/MOL.cpp index e2b443407..0b9a2a20c 100644 --- a/Source/MOL.cpp +++ b/Source/MOL.cpp @@ -136,7 +136,8 @@ pc_compute_hyp_mol_flux( amrex::Real flux_tmp[NVAR] = {0.0}; amrex::Real ustar = 0.0; - amrex::Real radl, radr; + amrex::Real radl=0.0; + amrex::Real radr=0.0; if (using_rotframe) { radr = From 360975d60aff672b894246917c55c21640ad19ec Mon Sep 17 00:00:00 2001 From: hsitaram Date: Tue, 8 Oct 2024 11:19:29 -0600 Subject: [PATCH 32/46] clang formatting --- Source/MOL.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/MOL.cpp b/Source/MOL.cpp index 0b9a2a20c..7d0b0db25 100644 --- a/Source/MOL.cpp +++ b/Source/MOL.cpp @@ -136,8 +136,8 @@ pc_compute_hyp_mol_flux( amrex::Real flux_tmp[NVAR] = {0.0}; amrex::Real ustar = 0.0; - amrex::Real radl=0.0; - amrex::Real radr=0.0; + amrex::Real radl = 0.0; + amrex::Real radr = 0.0; if (using_rotframe) { radr = From 25b644f2f16677720d2b77f5137d4ba3d1305740 Mon Sep 17 00:00:00 2001 From: Bruce Perry Date: Tue, 8 Oct 2024 13:27:09 -0600 Subject: [PATCH 33/46] error instead of FIXME for restart from plt with do_rf --- Source/IO.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Source/IO.cpp b/Source/IO.cpp index 41fb5e6ab..8249be561 100644 --- a/Source/IO.cpp +++ b/Source/IO.cpp @@ -747,8 +747,13 @@ void PeleC::initLevelDataFromPlt( const int lev, const std::string& dataPltFile, amrex::MultiFab& S_new) { - // FIXME: - // Hari S: not ready for rotational frames + if (do_rf) { + amrex::Error("PeleC::initLevelDataFromPlt(): Restart from plot file not " + "yet supported with rotational frame"); + // not ready for rotational frames, relatively simple modification for + // computing energy from velocities required + } + amrex::Print() << "Using data (rho, u, T, Y) from pltfile " << dataPltFile << std::endl; pele::physics::pltfilemanager::PltFileManager pltData(dataPltFile); From 458c6e65c677bfcc858f2942ec22b3d733e1d140 Mon Sep 17 00:00:00 2001 From: Bruce Perry Date: Tue, 8 Oct 2024 13:29:25 -0600 Subject: [PATCH 34/46] rename EB rotational frame cases to follow convention of other EB cases --- Exec/RegTests/{EB_Rotor4Blade => EB-Rotor4Blade}/GNUmakefile | 0 Exec/RegTests/{EB_Rotor4Blade => EB-Rotor4Blade}/Make.package | 0 Exec/RegTests/{EB_Rotor4Blade => EB-Rotor4Blade}/prob.H | 0 Exec/RegTests/{EB_Rotor4Blade => EB-Rotor4Blade}/prob.cpp | 0 Exec/RegTests/{EB_Rotor4Blade => EB-Rotor4Blade}/prob_parm.H | 0 Exec/RegTests/{EB_Rotor4Blade => EB-Rotor4Blade}/rotor.inp | 0 Exec/RegTests/{EB_TaylorCouette => EB-TaylorCouette}/GNUmakefile | 0 Exec/RegTests/{EB_TaylorCouette => EB-TaylorCouette}/Make.package | 0 Exec/RegTests/{EB_TaylorCouette => EB-TaylorCouette}/prob.H | 0 Exec/RegTests/{EB_TaylorCouette => EB-TaylorCouette}/prob.cpp | 0 Exec/RegTests/{EB_TaylorCouette => EB-TaylorCouette}/prob_parm.H | 0 Exec/RegTests/{EB_TaylorCouette => EB-TaylorCouette}/tc.inp | 0 12 files changed, 0 insertions(+), 0 deletions(-) rename Exec/RegTests/{EB_Rotor4Blade => EB-Rotor4Blade}/GNUmakefile (100%) rename Exec/RegTests/{EB_Rotor4Blade => EB-Rotor4Blade}/Make.package (100%) rename Exec/RegTests/{EB_Rotor4Blade => EB-Rotor4Blade}/prob.H (100%) rename Exec/RegTests/{EB_Rotor4Blade => EB-Rotor4Blade}/prob.cpp (100%) rename Exec/RegTests/{EB_Rotor4Blade => EB-Rotor4Blade}/prob_parm.H (100%) rename Exec/RegTests/{EB_Rotor4Blade => EB-Rotor4Blade}/rotor.inp (100%) rename Exec/RegTests/{EB_TaylorCouette => EB-TaylorCouette}/GNUmakefile (100%) rename Exec/RegTests/{EB_TaylorCouette => EB-TaylorCouette}/Make.package (100%) rename Exec/RegTests/{EB_TaylorCouette => EB-TaylorCouette}/prob.H (100%) rename Exec/RegTests/{EB_TaylorCouette => EB-TaylorCouette}/prob.cpp (100%) rename Exec/RegTests/{EB_TaylorCouette => EB-TaylorCouette}/prob_parm.H (100%) rename Exec/RegTests/{EB_TaylorCouette => EB-TaylorCouette}/tc.inp (100%) diff --git a/Exec/RegTests/EB_Rotor4Blade/GNUmakefile b/Exec/RegTests/EB-Rotor4Blade/GNUmakefile similarity index 100% rename from Exec/RegTests/EB_Rotor4Blade/GNUmakefile rename to Exec/RegTests/EB-Rotor4Blade/GNUmakefile diff --git a/Exec/RegTests/EB_Rotor4Blade/Make.package b/Exec/RegTests/EB-Rotor4Blade/Make.package similarity index 100% rename from Exec/RegTests/EB_Rotor4Blade/Make.package rename to Exec/RegTests/EB-Rotor4Blade/Make.package diff --git a/Exec/RegTests/EB_Rotor4Blade/prob.H b/Exec/RegTests/EB-Rotor4Blade/prob.H similarity index 100% rename from Exec/RegTests/EB_Rotor4Blade/prob.H rename to Exec/RegTests/EB-Rotor4Blade/prob.H diff --git a/Exec/RegTests/EB_Rotor4Blade/prob.cpp b/Exec/RegTests/EB-Rotor4Blade/prob.cpp similarity index 100% rename from Exec/RegTests/EB_Rotor4Blade/prob.cpp rename to Exec/RegTests/EB-Rotor4Blade/prob.cpp diff --git a/Exec/RegTests/EB_Rotor4Blade/prob_parm.H b/Exec/RegTests/EB-Rotor4Blade/prob_parm.H similarity index 100% rename from Exec/RegTests/EB_Rotor4Blade/prob_parm.H rename to Exec/RegTests/EB-Rotor4Blade/prob_parm.H diff --git a/Exec/RegTests/EB_Rotor4Blade/rotor.inp b/Exec/RegTests/EB-Rotor4Blade/rotor.inp similarity index 100% rename from Exec/RegTests/EB_Rotor4Blade/rotor.inp rename to Exec/RegTests/EB-Rotor4Blade/rotor.inp diff --git a/Exec/RegTests/EB_TaylorCouette/GNUmakefile b/Exec/RegTests/EB-TaylorCouette/GNUmakefile similarity index 100% rename from Exec/RegTests/EB_TaylorCouette/GNUmakefile rename to Exec/RegTests/EB-TaylorCouette/GNUmakefile diff --git a/Exec/RegTests/EB_TaylorCouette/Make.package b/Exec/RegTests/EB-TaylorCouette/Make.package similarity index 100% rename from Exec/RegTests/EB_TaylorCouette/Make.package rename to Exec/RegTests/EB-TaylorCouette/Make.package diff --git a/Exec/RegTests/EB_TaylorCouette/prob.H b/Exec/RegTests/EB-TaylorCouette/prob.H similarity index 100% rename from Exec/RegTests/EB_TaylorCouette/prob.H rename to Exec/RegTests/EB-TaylorCouette/prob.H diff --git a/Exec/RegTests/EB_TaylorCouette/prob.cpp b/Exec/RegTests/EB-TaylorCouette/prob.cpp similarity index 100% rename from Exec/RegTests/EB_TaylorCouette/prob.cpp rename to Exec/RegTests/EB-TaylorCouette/prob.cpp diff --git a/Exec/RegTests/EB_TaylorCouette/prob_parm.H b/Exec/RegTests/EB-TaylorCouette/prob_parm.H similarity index 100% rename from Exec/RegTests/EB_TaylorCouette/prob_parm.H rename to Exec/RegTests/EB-TaylorCouette/prob_parm.H diff --git a/Exec/RegTests/EB_TaylorCouette/tc.inp b/Exec/RegTests/EB-TaylorCouette/tc.inp similarity index 100% rename from Exec/RegTests/EB_TaylorCouette/tc.inp rename to Exec/RegTests/EB-TaylorCouette/tc.inp From 6469929e656491a4a72e124a706537c32424a222 Mon Sep 17 00:00:00 2001 From: Bruce Perry Date: Tue, 8 Oct 2024 13:31:02 -0600 Subject: [PATCH 35/46] delete commented code --- Exec/RegTests/EB-Rotor4Blade/prob.H | 58 --------------------------- Exec/RegTests/EB-TaylorCouette/prob.H | 58 --------------------------- 2 files changed, 116 deletions(-) diff --git a/Exec/RegTests/EB-Rotor4Blade/prob.H b/Exec/RegTests/EB-Rotor4Blade/prob.H index 09f30e6bb..b66ada972 100644 --- a/Exec/RegTests/EB-Rotor4Blade/prob.H +++ b/Exec/RegTests/EB-Rotor4Blade/prob.H @@ -110,62 +110,4 @@ void pc_prob_close(); using ProblemSpecificFunctions = DefaultProblemSpecificFunctions; -/*using ProblemTags = EmptyProbTagStruct; - - struct MyProbDeriveStruct - { - static amrex::Box the_same_box(const amrex::Box& b) { return b; } - - static void - add(amrex::DeriveList& derive_lst, const amrex::DescriptorList& desc_lst) - { -// Add derives as follows and define the derive function below: -derive_lst.add( -"velx_if", amrex::IndexType::TheCellType(), 1, pc_velx_if, -the_same_box); -derive_lst.addComponent("velx_if", desc_lst, State_Type, 0, NVAR); - -derive_lst.add( -"vely_if", amrex::IndexType::TheCellType(), 1, pc_vely_if, -the_same_box); -derive_lst.addComponent("vely_if", desc_lst, State_Type, 0, NVAR); - -derive_lst.add( -"velz_if", amrex::IndexType::TheCellType(), 1, pc_velz_if, -the_same_box); -derive_lst.addComponent("velz_if", desc_lst, State_Type, 0, NVAR); -} - -static void pc_rhoerror( -const amrex::Box& bx, -amrex::FArrayBox& derfab, -int dcomp, -int ncomp, -const amrex::FArrayBox& datfab, -const amrex::Geometry& geomdata, -amrex::Real time, -const int* bcrec, -int level) -{ -auto const dat = datfab.array(); -auto arr = derfab.array(); -const amrex::GpuArray prob_lo = -geomdata.ProbLoArray(); -const amrex::GpuArray dx = -geomdata.CellSizeArray(); - -ProbParmDevice const* prob_parm = PeleC::d_prob_parm_device; - -amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { -const amrex::Real x = prob_lo[0] + (i + 0.5) * dx[0]; -const amrex::Real rho_exact = -prob_parm->rho + -prob_parm->alpha * std::exp( --((x - prob_parm->cs * time) / prob_parm->sigma) * -((x - prob_parm->cs * time) / prob_parm->sigma)); -arr(i, j, k, 0) = dat(i, j, k, URHO) - rho_exact; -}); -} -}; */ - #endif diff --git a/Exec/RegTests/EB-TaylorCouette/prob.H b/Exec/RegTests/EB-TaylorCouette/prob.H index 09f30e6bb..b66ada972 100644 --- a/Exec/RegTests/EB-TaylorCouette/prob.H +++ b/Exec/RegTests/EB-TaylorCouette/prob.H @@ -110,62 +110,4 @@ void pc_prob_close(); using ProblemSpecificFunctions = DefaultProblemSpecificFunctions; -/*using ProblemTags = EmptyProbTagStruct; - - struct MyProbDeriveStruct - { - static amrex::Box the_same_box(const amrex::Box& b) { return b; } - - static void - add(amrex::DeriveList& derive_lst, const amrex::DescriptorList& desc_lst) - { -// Add derives as follows and define the derive function below: -derive_lst.add( -"velx_if", amrex::IndexType::TheCellType(), 1, pc_velx_if, -the_same_box); -derive_lst.addComponent("velx_if", desc_lst, State_Type, 0, NVAR); - -derive_lst.add( -"vely_if", amrex::IndexType::TheCellType(), 1, pc_vely_if, -the_same_box); -derive_lst.addComponent("vely_if", desc_lst, State_Type, 0, NVAR); - -derive_lst.add( -"velz_if", amrex::IndexType::TheCellType(), 1, pc_velz_if, -the_same_box); -derive_lst.addComponent("velz_if", desc_lst, State_Type, 0, NVAR); -} - -static void pc_rhoerror( -const amrex::Box& bx, -amrex::FArrayBox& derfab, -int dcomp, -int ncomp, -const amrex::FArrayBox& datfab, -const amrex::Geometry& geomdata, -amrex::Real time, -const int* bcrec, -int level) -{ -auto const dat = datfab.array(); -auto arr = derfab.array(); -const amrex::GpuArray prob_lo = -geomdata.ProbLoArray(); -const amrex::GpuArray dx = -geomdata.CellSizeArray(); - -ProbParmDevice const* prob_parm = PeleC::d_prob_parm_device; - -amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { -const amrex::Real x = prob_lo[0] + (i + 0.5) * dx[0]; -const amrex::Real rho_exact = -prob_parm->rho + -prob_parm->alpha * std::exp( --((x - prob_parm->cs * time) / prob_parm->sigma) * -((x - prob_parm->cs * time) / prob_parm->sigma)); -arr(i, j, k, 0) = dat(i, j, k, URHO) - rho_exact; -}); -} -}; */ - #endif From 81321710b7ba57ac5a550d93b14982e5ac091564 Mon Sep 17 00:00:00 2001 From: Bruce Perry Date: Tue, 8 Oct 2024 13:55:54 -0600 Subject: [PATCH 36/46] use iv in rotor prob.H --- Exec/RegTests/EB-Rotor4Blade/prob.H | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Exec/RegTests/EB-Rotor4Blade/prob.H b/Exec/RegTests/EB-Rotor4Blade/prob.H index b66ada972..822c0c856 100644 --- a/Exec/RegTests/EB-Rotor4Blade/prob.H +++ b/Exec/RegTests/EB-Rotor4Blade/prob.H @@ -61,7 +61,8 @@ pc_initdata( if (prob_parm.do_rf) { amrex::GpuArray axis_loc = { prob_parm.rf_axis_x, prob_parm.rf_axis_y, prob_parm.rf_axis_z}; - amrex::RealVect r = get_rotaxis_vec(i, j, k, axis_loc, geomdata); + amrex::IntVect iv(AMREX_D_DECL(i, j, k)); + amrex::RealVect r = get_rotaxis_vec(iv, axis_loc, geomdata); amrex::RealVect omgavec(0.0, 0.0, 0.0); omgavec[prob_parm.rf_axis] = prob_parm.rf_omega; amrex::RealVect w_cross_r = omgavec.crossProduct(r); @@ -84,8 +85,9 @@ pc_initdata( if (prob_parm.do_rf) { amrex::GpuArray axis_loc = { prob_parm.rf_axis_x, prob_parm.rf_axis_y, prob_parm.rf_axis_z}; + amrex::IntVect iv(AMREX_D_DECL(i, j, k)); amrex::Real rotenrg = get_rot_energy( - i, j, k, prob_parm.rf_omega, prob_parm.rf_axis, axis_loc, geomdata); + iv, prob_parm.rf_omega, prob_parm.rf_axis, axis_loc, geomdata); state(i, j, k, UEDEN) -= rho * rotenrg; } } From 82e1e3df72ef07eb24f30315d352abb07ff77a5d Mon Sep 17 00:00:00 2001 From: Bruce Perry Date: Tue, 8 Oct 2024 13:56:52 -0600 Subject: [PATCH 37/46] eint1 derive for rf --- Source/Derive.H | 11 ---------- Source/Derive.cpp | 53 +++++++++++++++++++++++++++++++---------------- Source/PeleC.H | 10 +++++++++ 3 files changed, 45 insertions(+), 29 deletions(-) diff --git a/Source/Derive.H b/Source/Derive.H index e98019764..ef278ab6a 100644 --- a/Source/Derive.H +++ b/Source/Derive.H @@ -155,17 +155,6 @@ void pc_derkineng( const int* bcrec, const int level); -void pc_dereint1( - const amrex::Box& bx, - amrex::FArrayBox& derfab, - int dcomp, - int ncomp, - const amrex::FArrayBox& datfab, - const amrex::Geometry& geomdata, - amrex::Real time, - const int* bcrec, - const int level); - void pc_derlogden( const amrex::Box& bx, amrex::FArrayBox& derfab, diff --git a/Source/Derive.cpp b/Source/Derive.cpp index 129c0983a..2be644295 100644 --- a/Source/Derive.cpp +++ b/Source/Derive.cpp @@ -130,36 +130,53 @@ pc_derkineng( } void -pc_dereint1( +PeleC::pc_dereint1( const amrex::Box& bx, amrex::FArrayBox& derfab, int /*dcomp*/, int /*ncomp*/, const amrex::FArrayBox& datfab, - const amrex::Geometry& /*geomdata*/, + const amrex::Geometry& geomdata, amrex::Real /*time*/, const int* /*bcrec*/, const int /*level*/) -// amrex::Real omega=0.0, -// amrex::Real rad=0.0 ) { - // FIXME:Hari S: - // can't seem to add omega and rad - // as derive functions are quite rigid // Compute internal energy from (rho E). auto const dat = datfab.const_array(); auto e = derfab.array(); - - amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - const amrex::Real rhoInv = 1.0 / dat(i, j, k, URHO); - const amrex::Real ux = dat(i, j, k, UMX) * rhoInv; - const amrex::Real uy = dat(i, j, k, UMY) * rhoInv; - const amrex::Real uz = dat(i, j, k, UMZ) * rhoInv; - e(i, j, k) = - dat(i, j, k, UEDEN) * rhoInv - 0.5 * (ux * ux + uy * uy + uz * uz); - // see Blazek, Appendix A3, Navier-Stokes in rotating frame of reference - // e(i,j,k)-=0.5*omega*omega*rad*rad; - }); + int rotframeflag = do_rf; + if (rotframeflag) { +#if AMREX_SPACEDIM > 2 + int axis = rf_axis; + amrex::Real omega = rf_omega; + amrex::GpuArray axis_loc = { + AMREX_D_DECL(rf_axis_x, rf_axis_y, rf_axis_z)}; + auto const gdata = geomdata.data(); + amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + amrex::IntVect iv(AMREX_D_DECL(i, j, k)); + amrex::Real roteng = get_rot_energy(iv, omega, axis, axis_loc, gdata); + const amrex::Real rhoInv = 1.0 / dat(i, j, k, URHO); + const amrex::Real ux = dat(i, j, k, UMX) * rhoInv; + const amrex::Real uy = dat(i, j, k, UMY) * rhoInv; + const amrex::Real uz = dat(i, j, k, UMZ) * rhoInv; + e(i, j, k) = + dat(i, j, k, UEDEN) * rhoInv - 0.5 * (ux * ux + uy * uy + uz * uz); + // see Blazek, Appendix A3, Navier-Stokes in rotating frame of reference + e(i, j, k) -= roteng; + }); +#else + amrex::ignore_unused(geomdata); +#endif + } else { + amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + const amrex::Real rhoInv = 1.0 / dat(i, j, k, URHO); + const amrex::Real ux = dat(i, j, k, UMX) * rhoInv; + const amrex::Real uy = dat(i, j, k, UMY) * rhoInv; + const amrex::Real uz = dat(i, j, k, UMZ) * rhoInv; + e(i, j, k) = + dat(i, j, k, UEDEN) * rhoInv - 0.5 * (ux * ux + uy * uy + uz * uz); + }); + } } void diff --git a/Source/PeleC.H b/Source/PeleC.H index 123b0033d..57184e636 100644 --- a/Source/PeleC.H +++ b/Source/PeleC.H @@ -610,6 +610,16 @@ public: amrex::Real time, const int* bcrec, const int level); + static void pc_dereint1( + const amrex::Box& bx, + amrex::FArrayBox& derfab, + int dcomp, + int ncomp, + const amrex::FArrayBox& datfab, + const amrex::Geometry& geomdata, + amrex::Real time, + const int* bcrec, + const int level); static int Density, Xmom, Ymom, Zmom, Eden, Eint, Temp; From 3fb76f02550426cb8df627e52dc51cc7b97cd462 Mon Sep 17 00:00:00 2001 From: Bruce Perry Date: Tue, 8 Oct 2024 14:08:07 -0600 Subject: [PATCH 38/46] no RF issues with soot as soot model doesn't deal with kinetic energy --- Source/Soot.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/Source/Soot.cpp b/Source/Soot.cpp index 92b68ab9c..352edc2d9 100644 --- a/Source/Soot.cpp +++ b/Source/Soot.cpp @@ -12,9 +12,6 @@ PeleC::setSootIndx() sc.qSpecIndx = QFS; sc.qSootIndx = QFSOOT; sc.rhoIndx = URHO; - // FIXME: Hari S: - // not sure how to handle rotational - // frames here sc.engIndx = UEDEN; sc.specIndx = UFS; sc.sootIndx = UFSOOT; From 169a8a5c97f9b0ca48598408eacba999780cac40 Mon Sep 17 00:00:00 2001 From: Bruce Perry Date: Tue, 8 Oct 2024 14:47:00 -0600 Subject: [PATCH 39/46] Add error checking to prevent RF in 2D or with MOL --- Source/PeleC.H | 2 ++ Source/Setup.cpp | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/Source/PeleC.H b/Source/PeleC.H index 57184e636..e837695f3 100644 --- a/Source/PeleC.H +++ b/Source/PeleC.H @@ -714,6 +714,8 @@ protected: static void read_params(); + static void check_params(); + static void read_tagging_params(); PeleC& getLevel(int lev); diff --git a/Source/Setup.cpp b/Source/Setup.cpp index 2d48441ab..8d67252c3 100644 --- a/Source/Setup.cpp +++ b/Source/Setup.cpp @@ -111,6 +111,20 @@ set_z_vel_bc(amrex::BCRec& bc, const amrex::BCRec& phys_bc) , bc.setLo(2, norm_vel_bc[lo_bc[2]]); bc.setHi(2, norm_vel_bc[hi_bc[2]]);); } +void +PeleC::check_params() +{ + // After reading params, make sure everything is compatibile + + // rotational frame + if (do_rf != 0) { + AMREX_ALWAYS_ASSERT_WITH_MESSAGE( + AMREX_SPACEDIM == 3, "Rotational frame only supported in 3D for now"); + AMREX_ALWAYS_ASSERT_WITH_MESSAGE( + do_mol, "Rotational frame simulations require use of MOL"); + } +} + void PeleC::variableSetUp() { @@ -170,6 +184,7 @@ PeleC::variableSetUp() // Get options, set phys_bc eb_in_domain = ebInDomain(); read_params(); + check_params(); #ifdef PELE_USE_MASA if (do_mms) { From 1bc26aa275864cac18c9b5b9ae0e54f0c46f168b Mon Sep 17 00:00:00 2001 From: Bruce Perry Date: Tue, 8 Oct 2024 14:54:45 -0600 Subject: [PATCH 40/46] revise note for srctoprim with RF --- Source/Hydro.H | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Source/Hydro.H b/Source/Hydro.H index 4b93c7fa2..06c166050 100644 --- a/Source/Hydro.H +++ b/Source/Hydro.H @@ -20,8 +20,9 @@ pc_srctoprim( amrex::Array4 const& src, amrex::Array4 const& srcq) { - // FIXME: - // Hari S: unsure how to incorporate rotational frames here + // Note (Hari S): + // rotational frame not incorporated here, but shouldn't be called because + // RF required MOL and this is only used for SDC/Godunov // Local loading Vars ==> Load once from global memory use multiple times const amrex::Real srcrho = src(i, j, k, URHO); From d68b8d4ea4b299fa718bc7ac64ba292337067470 Mon Sep 17 00:00:00 2001 From: Bruce Perry Date: Tue, 8 Oct 2024 15:10:18 -0600 Subject: [PATCH 41/46] clang-tidy fixes for RF --- Source/Derive.cpp | 6 ++---- Source/Diffusion.cpp | 2 +- Source/InitEB.cpp | 8 ++++---- Source/MOL.H | 2 +- Source/MOL.cpp | 6 ++---- Source/PeleC.H | 2 +- Source/React.cpp | 2 +- Source/RotSource.cpp | 2 +- Source/Setup.cpp | 2 +- Source/Utilities.H | 1 - 10 files changed, 14 insertions(+), 19 deletions(-) diff --git a/Source/Derive.cpp b/Source/Derive.cpp index 2be644295..de0794214 100644 --- a/Source/Derive.cpp +++ b/Source/Derive.cpp @@ -48,9 +48,8 @@ PeleC::pc_dermagvel_if( { auto const dat = datfab.const_array(); auto magvel = derfab.array(); - int rotframeflag = do_rf; - if (rotframeflag) { + if (do_rf) { #if AMREX_SPACEDIM > 2 int axis = rf_axis; amrex::Real omega = rf_omega; @@ -144,8 +143,7 @@ PeleC::pc_dereint1( // Compute internal energy from (rho E). auto const dat = datfab.const_array(); auto e = derfab.array(); - int rotframeflag = do_rf; - if (rotframeflag) { + if (do_rf) { #if AMREX_SPACEDIM > 2 int axis = rf_axis; amrex::Real omega = rf_omega; diff --git a/Source/Diffusion.cpp b/Source/Diffusion.cpp index 463f7b933..cd782b021 100644 --- a/Source/Diffusion.cpp +++ b/Source/Diffusion.cpp @@ -17,7 +17,7 @@ PeleC::getMOLSrcTerm( return; } - int using_rf = do_rf; + bool using_rf = do_rf; amrex::Real omega = rf_omega; int axis = rf_axis; amrex::GpuArray axis_loc = { diff --git a/Source/InitEB.cpp b/Source/InitEB.cpp index cff778616..673f9806a 100644 --- a/Source/InitEB.cpp +++ b/Source/InitEB.cpp @@ -174,10 +174,10 @@ PeleC::initialize_eb2_structs() AMREX_D_DECL(rf_axis_x, rf_axis_y, rf_axis_z)}; amrex::Real rfdist2 = rf_rad * rf_rad; - auto u_bcval = sv_eb_bcval[iLocal].dataPtr(QU); - auto v_bcval = sv_eb_bcval[iLocal].dataPtr(QV); - auto w_bcval = sv_eb_bcval[iLocal].dataPtr(QW); - auto sten = sv_eb_bndry_geom[iLocal].data(); + auto* u_bcval = sv_eb_bcval[iLocal].dataPtr(QU); + auto* v_bcval = sv_eb_bcval[iLocal].dataPtr(QV); + auto* w_bcval = sv_eb_bcval[iLocal].dataPtr(QW); + auto* sten = sv_eb_bndry_geom[iLocal].data(); if (ncutcells > 0) { amrex::ParallelFor(ncutcells, [=] AMREX_GPU_DEVICE(int L) { const auto& iv = sten[L].iv; diff --git a/Source/MOL.H b/Source/MOL.H index 6733a1946..96709c606 100644 --- a/Source/MOL.H +++ b/Source/MOL.H @@ -126,7 +126,7 @@ void pc_compute_hyp_mol_flux( const amrex::GpuArray axis_loc, amrex::Real omega, int axisdir, - int do_rf); + bool do_rf); void pc_compute_hyp_mol_flux_eb( amrex::Geometry const& geom, diff --git a/Source/MOL.cpp b/Source/MOL.cpp index 7d0b0db25..3ea571fbf 100644 --- a/Source/MOL.cpp +++ b/Source/MOL.cpp @@ -17,7 +17,7 @@ pc_compute_hyp_mol_flux( const amrex::GpuArray axis_loc, amrex::Real omega, int axisdir, - int do_rf) + bool do_rf) { const int R_RHO = 0; const int R_UN = 1; @@ -28,7 +28,7 @@ pc_compute_hyp_mol_flux( const int R_Y = R_ADV + NUM_ADV; const int R_NUM = 5 + NUM_SPECIES + NUM_ADV + NUM_LIN + NUM_AUX; const int bc_test_val = 1; - int using_rotframe = do_rf; // local capture + const bool using_rotframe = do_rf; // local capture const auto geomdata = geom.data(); int axisdir_captured = axisdir; amrex::Real omega_captured = omega; @@ -139,10 +139,8 @@ pc_compute_hyp_mol_flux( amrex::Real radl = 0.0; amrex::Real radr = 0.0; if (using_rotframe) { - radr = get_rotaxis_dist(iv, axisdir_captured, axisloc_captured, geomdata); - radl = get_rotaxis_dist(ivm, axisdir_captured, axisloc_captured, geomdata); } diff --git a/Source/PeleC.H b/Source/PeleC.H index e837695f3..f3de3b5ad 100644 --- a/Source/PeleC.H +++ b/Source/PeleC.H @@ -382,7 +382,7 @@ public: void fill_rot_source( const amrex::MultiFab& state_old, const amrex::MultiFab& state_new, - amrex::MultiFab& forcing_src, + amrex::MultiFab& rot_src, int ng); void getLESTerm( diff --git a/Source/React.cpp b/Source/React.cpp index 86c6fc557..302b1f439 100644 --- a/Source/React.cpp +++ b/Source/React.cpp @@ -123,7 +123,7 @@ PeleC::react_state( auto const& flags = fact.getMultiEBCellFlagFab(); // for rotational frames - int rotframeflag = do_rf; + const bool rotframeflag = do_rf; const auto geomdata = geom.data(); int axis = rf_axis; amrex::Real omega = rf_omega; diff --git a/Source/RotSource.cpp b/Source/RotSource.cpp index 1f0c9b616..ab6d6573b 100644 --- a/Source/RotSource.cpp +++ b/Source/RotSource.cpp @@ -48,7 +48,7 @@ PeleC::fill_rot_source( auto const& flags = fact.getMultiEBCellFlagFab(); const auto geomdata = geom.data(); - int rf_on = do_rf; + const bool rf_on = do_rf; amrex::Real omega = rf_omega; int axis = rf_axis; diff --git a/Source/Setup.cpp b/Source/Setup.cpp index 8d67252c3..20ecb780f 100644 --- a/Source/Setup.cpp +++ b/Source/Setup.cpp @@ -117,7 +117,7 @@ PeleC::check_params() // After reading params, make sure everything is compatibile // rotational frame - if (do_rf != 0) { + if (do_rf) { AMREX_ALWAYS_ASSERT_WITH_MESSAGE( AMREX_SPACEDIM == 3, "Rotational frame only supported in 3D for now"); AMREX_ALWAYS_ASSERT_WITH_MESSAGE( diff --git a/Source/Utilities.H b/Source/Utilities.H index 642d30482..dd7a1c925 100644 --- a/Source/Utilities.H +++ b/Source/Utilities.H @@ -7,7 +7,6 @@ #include "Constants.H" #include "IndexDefines.H" #include "PelePhysics.H" -#include AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE From b2bee8b38dda9f0d2cf11dbee41b143945df641e Mon Sep 17 00:00:00 2001 From: Bruce Perry Date: Tue, 8 Oct 2024 15:34:16 -0600 Subject: [PATCH 42/46] use iv in EB-TaylorCouette case --- Exec/RegTests/EB-TaylorCouette/prob.H | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Exec/RegTests/EB-TaylorCouette/prob.H b/Exec/RegTests/EB-TaylorCouette/prob.H index b66ada972..822c0c856 100644 --- a/Exec/RegTests/EB-TaylorCouette/prob.H +++ b/Exec/RegTests/EB-TaylorCouette/prob.H @@ -61,7 +61,8 @@ pc_initdata( if (prob_parm.do_rf) { amrex::GpuArray axis_loc = { prob_parm.rf_axis_x, prob_parm.rf_axis_y, prob_parm.rf_axis_z}; - amrex::RealVect r = get_rotaxis_vec(i, j, k, axis_loc, geomdata); + amrex::IntVect iv(AMREX_D_DECL(i, j, k)); + amrex::RealVect r = get_rotaxis_vec(iv, axis_loc, geomdata); amrex::RealVect omgavec(0.0, 0.0, 0.0); omgavec[prob_parm.rf_axis] = prob_parm.rf_omega; amrex::RealVect w_cross_r = omgavec.crossProduct(r); @@ -84,8 +85,9 @@ pc_initdata( if (prob_parm.do_rf) { amrex::GpuArray axis_loc = { prob_parm.rf_axis_x, prob_parm.rf_axis_y, prob_parm.rf_axis_z}; + amrex::IntVect iv(AMREX_D_DECL(i, j, k)); amrex::Real rotenrg = get_rot_energy( - i, j, k, prob_parm.rf_omega, prob_parm.rf_axis, axis_loc, geomdata); + iv, prob_parm.rf_omega, prob_parm.rf_axis, axis_loc, geomdata); state(i, j, k, UEDEN) -= rho * rotenrg; } } From 089eaca9d432d92f3942cc96b7968eabe67c4d2c Mon Sep 17 00:00:00 2001 From: Bruce Perry Date: Tue, 8 Oct 2024 15:40:27 -0600 Subject: [PATCH 43/46] spelling --- Source/Setup.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Setup.cpp b/Source/Setup.cpp index 20ecb780f..30500145d 100644 --- a/Source/Setup.cpp +++ b/Source/Setup.cpp @@ -114,7 +114,7 @@ set_z_vel_bc(amrex::BCRec& bc, const amrex::BCRec& phys_bc) void PeleC::check_params() { - // After reading params, make sure everything is compatibile + // After reading params, make sure everything is compatible // rotational frame if (do_rf) { From 83a6f4a329eb7c843533c7a81ee36b14acf9bd3a Mon Sep 17 00:00:00 2001 From: Bruce Perry Date: Tue, 8 Oct 2024 16:50:21 -0600 Subject: [PATCH 44/46] run RF cases in CI --- Exec/RegTests/CMakeLists.txt | 2 ++ Exec/RegTests/EB-Rotor4Blade/CMakeLists.txt | 7 +++++++ Exec/RegTests/EB-Rotor4Blade/rotor.inp | 6 +++--- Exec/RegTests/EB-TaylorCouette/CMakeLists.txt | 7 +++++++ Exec/RegTests/EB-TaylorCouette/tc.inp | 6 +++--- Tests/CMakeLists.txt | 2 ++ 6 files changed, 24 insertions(+), 6 deletions(-) create mode 100644 Exec/RegTests/EB-Rotor4Blade/CMakeLists.txt create mode 100644 Exec/RegTests/EB-TaylorCouette/CMakeLists.txt diff --git a/Exec/RegTests/CMakeLists.txt b/Exec/RegTests/CMakeLists.txt index 1b83f36d6..291c698c5 100644 --- a/Exec/RegTests/CMakeLists.txt +++ b/Exec/RegTests/CMakeLists.txt @@ -43,6 +43,8 @@ if(PELE_DIM EQUAL 3) add_subdirectory(EB-C7) add_subdirectory(EB-C8) add_subdirectory(EB-BluffBody) + add_subdirectory(EB-TaylorCouette) + add_subdirectory(EB-Rotor4Blade) endif() if(PELE_ENABLE_MASA) add_subdirectory(MMS) diff --git a/Exec/RegTests/EB-Rotor4Blade/CMakeLists.txt b/Exec/RegTests/EB-Rotor4Blade/CMakeLists.txt new file mode 100644 index 000000000..f0b9389df --- /dev/null +++ b/Exec/RegTests/EB-Rotor4Blade/CMakeLists.txt @@ -0,0 +1,7 @@ +set(PELE_PHYSICS_EOS_MODEL GammaLaw) +set(PELE_PHYSICS_CHEMISTRY_MODEL Null) +set(PELE_PHYSICS_TRANSPORT_MODEL Constant) +set(PELE_PHYSICS_ENABLE_SPRAY OFF) +set(PELE_PHYSICS_SPRAY_FUEL_NUM 0) +set(PELE_PHYSICS_ENABLE_SOOT OFF) +include(BuildExeAndLib) diff --git a/Exec/RegTests/EB-Rotor4Blade/rotor.inp b/Exec/RegTests/EB-Rotor4Blade/rotor.inp index f384aa8ba..1e3354fe3 100644 --- a/Exec/RegTests/EB-Rotor4Blade/rotor.inp +++ b/Exec/RegTests/EB-Rotor4Blade/rotor.inp @@ -5,9 +5,9 @@ stop_time = 0.06 # PROBLEM SIZE & GEOMETRY geometry.is_periodic = 1 1 1 geometry.coord_sys = 0 # 0 => cart -geometry.prob_lo = -50.0 -50.0 -6.25 -geometry.prob_hi = 50.0 50.0 6.25 -amr.n_cell = 256 256 32 +geometry.prob_lo = -50.0 -50.0 -1.5625 +geometry.prob_hi = 50.0 50.0 1.5625 +amr.n_cell = 256 256 8 # >>>>>>>>>>>>> BC KEYWORDS <<<<<<<<<<<<<<<<<<<<<< # Interior, UserBC, Symmetry, SlipWall, NoSlipWall diff --git a/Exec/RegTests/EB-TaylorCouette/CMakeLists.txt b/Exec/RegTests/EB-TaylorCouette/CMakeLists.txt new file mode 100644 index 000000000..f0b9389df --- /dev/null +++ b/Exec/RegTests/EB-TaylorCouette/CMakeLists.txt @@ -0,0 +1,7 @@ +set(PELE_PHYSICS_EOS_MODEL GammaLaw) +set(PELE_PHYSICS_CHEMISTRY_MODEL Null) +set(PELE_PHYSICS_TRANSPORT_MODEL Constant) +set(PELE_PHYSICS_ENABLE_SPRAY OFF) +set(PELE_PHYSICS_SPRAY_FUEL_NUM 0) +set(PELE_PHYSICS_ENABLE_SOOT OFF) +include(BuildExeAndLib) diff --git a/Exec/RegTests/EB-TaylorCouette/tc.inp b/Exec/RegTests/EB-TaylorCouette/tc.inp index f89b85f82..fc5464734 100644 --- a/Exec/RegTests/EB-TaylorCouette/tc.inp +++ b/Exec/RegTests/EB-TaylorCouette/tc.inp @@ -5,9 +5,9 @@ stop_time = 0.06 # PROBLEM SIZE & GEOMETRY geometry.is_periodic = 1 1 1 geometry.coord_sys = 0 # 0 => cart -geometry.prob_lo = -50.0 -50.0 -12.5 -geometry.prob_hi = 50.0 50.0 12.5 -amr.n_cell = 128 128 32 +geometry.prob_lo = -50.0 -50.0 -3.125 +geometry.prob_hi = 50.0 50.0 3.125 +amr.n_cell = 128 128 8 # >>>>>>>>>>>>> BC KEYWORDS <<<<<<<<<<<<<<<<<<<<<< # Interior, UserBC, Symmetry, SlipWall, NoSlipWall diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 220b582f1..0106d18e3 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -249,6 +249,7 @@ add_test_r(eb-c4 EB-C4-5) add_test_r(eb-c5 EB-C4-5) if(PELE_DIM GREATER 2) add_test_r(eb-c8-rere-plm EB-C8) + add_test_rv(tc EB-TaylorCouette) endif() add_test_rv(eb-c9 EB-C9) add_test_r(eb-c10 EB-C10) @@ -309,6 +310,7 @@ add_test_re(eb-bluffbody-1 EB-BluffBody) if(PELE_DIM GREATER 2) add_test_re(eb-c8 EB-C8) add_test_re(eb-c8-rere-mol EB-C8) + add_test_re(rotor EB-Rotor4Blade) add_test_re(tg-3 TG) add_test_re(tg-4 TG) endif() From 66e442ef38be596274d6e5682f53c42b1b8559fc Mon Sep 17 00:00:00 2001 From: Bruce Perry Date: Wed, 9 Oct 2024 10:44:04 -0600 Subject: [PATCH 45/46] clang-tidy fixes --- Exec/RegTests/EB-Rotor4Blade/prob.H | 4 ---- Exec/RegTests/EB-Rotor4Blade/prob.cpp | 4 ++-- Exec/RegTests/EB-Rotor4Blade/prob_parm.H | 4 ++-- Exec/RegTests/EB-TaylorCouette/prob.H | 4 ---- Exec/RegTests/EB-TaylorCouette/prob.cpp | 4 ++-- Exec/RegTests/EB-TaylorCouette/prob_parm.H | 4 ++-- 6 files changed, 8 insertions(+), 16 deletions(-) diff --git a/Exec/RegTests/EB-Rotor4Blade/prob.H b/Exec/RegTests/EB-Rotor4Blade/prob.H index 822c0c856..de27fb5ef 100644 --- a/Exec/RegTests/EB-Rotor4Blade/prob.H +++ b/Exec/RegTests/EB-Rotor4Blade/prob.H @@ -44,10 +44,6 @@ pc_initdata( amrex::GeometryData const& geomdata, ProbParmDevice const& prob_parm) { - // Geometry - const amrex::Real* prob_lo = geomdata.ProbLo(); - const amrex::Real* dx = geomdata.CellSize(); - amrex::Real u = 0.0; amrex::Real v = 0.0; amrex::Real w = 0.0; diff --git a/Exec/RegTests/EB-Rotor4Blade/prob.cpp b/Exec/RegTests/EB-Rotor4Blade/prob.cpp index 8287047cd..d08264a56 100644 --- a/Exec/RegTests/EB-Rotor4Blade/prob.cpp +++ b/Exec/RegTests/EB-Rotor4Blade/prob.cpp @@ -11,8 +11,8 @@ amrex_probinit( const int* /*init*/, const int* /*name*/, const int* /*namelen*/, - const amrex::Real* problo, - const amrex::Real* probhi) + const amrex::Real* /*problo*/, + const amrex::Real* /*probhi*/) { // Parse params amrex::ParmParse pp("prob"); diff --git a/Exec/RegTests/EB-Rotor4Blade/prob_parm.H b/Exec/RegTests/EB-Rotor4Blade/prob_parm.H index 1572c8a77..46299c5d5 100644 --- a/Exec/RegTests/EB-Rotor4Blade/prob_parm.H +++ b/Exec/RegTests/EB-Rotor4Blade/prob_parm.H @@ -14,9 +14,9 @@ struct ProbParmDevice amrex::Real mu = 0.1; amrex::Real kappa = 1.0; amrex::GpuArray massfrac = {1.0}; - int do_rf = 0; + bool do_rf = false; amrex::Real rf_omega = 0; - amrex::Real rf_axis = 2; + int rf_axis = 2; amrex::Real rf_axis_x = 0.0; amrex::Real rf_axis_y = 0.0; amrex::Real rf_axis_z = 0.0; diff --git a/Exec/RegTests/EB-TaylorCouette/prob.H b/Exec/RegTests/EB-TaylorCouette/prob.H index 822c0c856..de27fb5ef 100644 --- a/Exec/RegTests/EB-TaylorCouette/prob.H +++ b/Exec/RegTests/EB-TaylorCouette/prob.H @@ -44,10 +44,6 @@ pc_initdata( amrex::GeometryData const& geomdata, ProbParmDevice const& prob_parm) { - // Geometry - const amrex::Real* prob_lo = geomdata.ProbLo(); - const amrex::Real* dx = geomdata.CellSize(); - amrex::Real u = 0.0; amrex::Real v = 0.0; amrex::Real w = 0.0; diff --git a/Exec/RegTests/EB-TaylorCouette/prob.cpp b/Exec/RegTests/EB-TaylorCouette/prob.cpp index 0c4101e42..3865b7bdb 100644 --- a/Exec/RegTests/EB-TaylorCouette/prob.cpp +++ b/Exec/RegTests/EB-TaylorCouette/prob.cpp @@ -11,8 +11,8 @@ amrex_probinit( const int* /*init*/, const int* /*name*/, const int* /*namelen*/, - const amrex::Real* problo, - const amrex::Real* probhi) + const amrex::Real* /*problo*/, + const amrex::Real* /*probhi*/) { // Parse params amrex::ParmParse pp("prob"); diff --git a/Exec/RegTests/EB-TaylorCouette/prob_parm.H b/Exec/RegTests/EB-TaylorCouette/prob_parm.H index 1572c8a77..46299c5d5 100644 --- a/Exec/RegTests/EB-TaylorCouette/prob_parm.H +++ b/Exec/RegTests/EB-TaylorCouette/prob_parm.H @@ -14,9 +14,9 @@ struct ProbParmDevice amrex::Real mu = 0.1; amrex::Real kappa = 1.0; amrex::GpuArray massfrac = {1.0}; - int do_rf = 0; + bool do_rf = false; amrex::Real rf_omega = 0; - amrex::Real rf_axis = 2; + int rf_axis = 2; amrex::Real rf_axis_x = 0.0; amrex::Real rf_axis_y = 0.0; amrex::Real rf_axis_z = 0.0; From 2ea875816a43d66183e134c55bfc3d98d3728864 Mon Sep 17 00:00:00 2001 From: Bruce Perry Date: Mon, 21 Oct 2024 17:26:02 -0600 Subject: [PATCH 46/46] remove WIP comment in Godunov --- Source/Godunov.H | 2 -- 1 file changed, 2 deletions(-) diff --git a/Source/Godunov.H b/Source/Godunov.H index 6f516fb1e..4b5ab5dc9 100644 --- a/Source/Godunov.H +++ b/Source/Godunov.H @@ -420,8 +420,6 @@ pc_cmpflx( const int bc_test_val = 1; amrex::Real dummy_flx[NUM_SPECIES] = {0.0}; - // WIP: hard coding rotating frame stuff for now - // soon to be fixed riemann( rhol, ul, vl, v2l, pl, spl, rhor, ur, vr, v2r, pr, spr, bc_test_val, cav, ustar, flx(i, j, k, URHO), dummy_flx, flx(i, j, k, f_idx[0]),