Skip to content

Commit

Permalink
add options for upwind and minmod, used by Amr-Wind (#141)
Browse files Browse the repository at this point in the history
  • Loading branch information
asalmgren authored Aug 18, 2024
1 parent 3bcb1de commit 099a832
Show file tree
Hide file tree
Showing 6 changed files with 436 additions and 140 deletions.
30 changes: 25 additions & 5 deletions Godunov/hydro_godunov_edge_state_2D.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -81,25 +81,45 @@ Godunov::ComputeEdgeState (Box const& bx, int ncomp,
PPM::PredictStateOnFaces(bxg1,AMREX_D_DECL(Imx,Imy,Imz),
AMREX_D_DECL(Ipx,Ipy,Ipz),
AMREX_D_DECL(umac,vmac,wmac),
q,geom,l_dt,pbc,ncomp,limiter);
q,geom,l_dt,pbc,ncomp,limiter,
limiter_type);
} else if ( limiter_type == PPM::WENOZ) {
auto limiter = PPM::wenoz();
PPM::PredictStateOnFaces(bxg1,AMREX_D_DECL(Imx,Imy,Imz),
AMREX_D_DECL(Ipx,Ipy,Ipz),
AMREX_D_DECL(umac,vmac,wmac),
q,geom,l_dt,pbc,ncomp,limiter);
q,geom,l_dt,pbc,ncomp,limiter,
limiter_type);
} else if ( limiter_type == PPM::WENO_JS) {
auto limiter = PPM::weno_js();
PPM::PredictStateOnFaces(bxg1,AMREX_D_DECL(Imx,Imy,Imz),
AMREX_D_DECL(Ipx,Ipy,Ipz),
AMREX_D_DECL(umac,vmac,wmac),
q,geom,l_dt,pbc,ncomp,limiter);
} else {
q,geom,l_dt,pbc,ncomp,limiter,
limiter_type);
} else if ( limiter_type == PPM::NoLimiter) {
auto limiter = PPM::nolimiter();
PPM::PredictStateOnFaces(bxg1,AMREX_D_DECL(Imx,Imy,Imz),
AMREX_D_DECL(Ipx,Ipy,Ipz),
AMREX_D_DECL(umac,vmac,wmac),
q,geom,l_dt,pbc,ncomp,limiter);
q,geom,l_dt,pbc,ncomp,limiter,
limiter_type);
} else if ( limiter_type == PPM::UPWIND) {
auto limiter = PPM::upwind();
PPM::PredictStateOnFaces(bxg1,AMREX_D_DECL(Imx,Imy,Imz),
AMREX_D_DECL(Ipx,Ipy,Ipz),
AMREX_D_DECL(umac,vmac,wmac),
q,geom,l_dt,pbc,ncomp,limiter,
limiter_type);
} else if ( limiter_type == PPM::MINMOD) {
auto limiter = PPM::minmod();
PPM::PredictStateOnFaces(bxg1,AMREX_D_DECL(Imx,Imy,Imz),
AMREX_D_DECL(Ipx,Ipy,Ipz),
AMREX_D_DECL(umac,vmac,wmac),
q,geom,l_dt,pbc,ncomp,limiter,
limiter_type);
} else {
amrex::Abort("Unknown limiter_type in hydro_godunov_edge_state_2D.cpp");
}
// Use PLM to generate Im and Ip */
}
Expand Down
38 changes: 29 additions & 9 deletions Godunov/hydro_godunov_edge_state_3D.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -96,31 +96,51 @@ Godunov::ComputeEdgeState (Box const& bx, int ncomp,
PPM::PredictStateOnFaces(bxg1,AMREX_D_DECL(Imx,Imy,Imz),
AMREX_D_DECL(Ipx,Ipy,Ipz),
AMREX_D_DECL(umac,vmac,wmac),
q,geom,l_dt,pbc,ncomp,limiter);
q,geom,l_dt,pbc,ncomp,limiter,
limiter_type);
} else if ( limiter_type == PPM::WENOZ) {
auto limiter = PPM::wenoz();
PPM::PredictStateOnFaces(bxg1,AMREX_D_DECL(Imx,Imy,Imz),
AMREX_D_DECL(Ipx,Ipy,Ipz),
AMREX_D_DECL(umac,vmac,wmac),
q,geom,l_dt,pbc,ncomp,limiter);
q,geom,l_dt,pbc,ncomp,limiter,
limiter_type);
} else if ( limiter_type == PPM::WENO_JS) {
auto limiter = PPM::weno_js();
PPM::PredictStateOnFaces(bxg1,AMREX_D_DECL(Imx,Imy,Imz),
AMREX_D_DECL(Ipx,Ipy,Ipz),
AMREX_D_DECL(umac,vmac,wmac),
q,geom,l_dt,pbc,ncomp,limiter);
} else {
q,geom,l_dt,pbc,ncomp,limiter,
limiter_type);
} else if ( limiter_type == PPM::NoLimiter) {
auto limiter = PPM::nolimiter();
PPM::PredictStateOnFaces(bxg1,AMREX_D_DECL(Imx,Imy,Imz),
AMREX_D_DECL(Ipx,Ipy,Ipz),
AMREX_D_DECL(umac,vmac,wmac),
q,geom,l_dt,pbc,ncomp,limiter);
q,geom,l_dt,pbc,ncomp,limiter,
limiter_type);
} else if ( limiter_type == PPM::UPWIND) {
auto limiter = PPM::upwind();
PPM::PredictStateOnFaces(bxg1,AMREX_D_DECL(Imx,Imy,Imz),
AMREX_D_DECL(Ipx,Ipy,Ipz),
AMREX_D_DECL(umac,vmac,wmac),
q,geom,l_dt,pbc,ncomp,limiter,
limiter_type);
} else if ( limiter_type == PPM::MINMOD) {
auto limiter = PPM::minmod();
PPM::PredictStateOnFaces(bxg1,AMREX_D_DECL(Imx,Imy,Imz),
AMREX_D_DECL(Ipx,Ipy,Ipz),
AMREX_D_DECL(umac,vmac,wmac),
q,geom,l_dt,pbc,ncomp,limiter,
limiter_type);
} else {
amrex::Abort("Unknown limiter_type in hydro_godunov_edge_state_3D.cpp");
}
// Use PLM to generate Im and Ip */
}
else
{

} else {
//
// Use PLM to generate Im and Ip */
//
amrex::ParallelFor(xebox, ncomp,
[=] AMREX_GPU_DEVICE (int i, int j, int k, int n) noexcept
{
Expand Down
Loading

0 comments on commit 099a832

Please sign in to comment.