ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_StationSampler.cpp File Reference
#include <algorithm>
#include <cctype>
#include <cmath>
#include <cstdint>
#include <cstdio>
#include <fstream>
#include <iomanip>
#include <sstream>
#include <utility>
#include <vector>
#include <AMReX_ParmParse.H>
#include <AMReX_Utility.H>
#include <ERF.H>
#include <ERF_StationSampler.H>
#include <ERF_Plotfile2DCatalog.H>
#include <ERF_Plotfile2DSampledLevel.H>
#include <ERF_Plotfile2DUtils.H>
#include <ERF_Plotfile2DWaterPath.H>
#include <ERF_Constants.H>
#include <ERF_EpochTime.H>
#include <ERF_LatLonMap.H>
#include <ERF_TerrainSurfaceSlab.H>
#include <ERF_Utils.H>
Include dependency graph for ERF_StationSampler.cpp:

Functions

static Real terrain_at_station (const Array4< const Real > &nd, int klo, Real x, Real y, const GpuArray< Real, AMREX_SPACEDIM > &problo, const GpuArray< Real, AMREX_SPACEDIM > &dx, int i0, int i1, int j0, int j1)
 

Function Documentation

◆ terrain_at_station()

static Real terrain_at_station ( const Array4< const Real > &  nd,
int  klo,
Real  x,
Real  y,
const GpuArray< Real, AMREX_SPACEDIM > &  problo,
const GpuArray< Real, AMREX_SPACEDIM > &  dx,
int  i0,
int  i1,
int  j0,
int  j1 
)
static
827 {
828  const Real fx = (x - problo[0]) / dx[0];
829  const Real fy = (y - problo[1]) / dx[1];
830  const int in = std::clamp(static_cast<int>(std::floor(fx)), i0, i1);
831  const int jn = std::clamp(static_cast<int>(std::floor(fy)), j0, j1);
832  const Real tx = std::clamp(fx - Real(in), Real(0.0), Real(1.0));
833  const Real ty = std::clamp(fy - Real(jn), Real(0.0), Real(1.0));
834  return (Real(1.0)-ty) * ( (Real(1.0)-tx)*nd(in,jn ,klo) + tx*nd(in+1,jn ,klo) )
835  + ty * ( (Real(1.0)-tx)*nd(in,jn+1,klo) + tx*nd(in+1,jn+1,klo) );
836 }
auto problo
Definition: ERF_InitCustomPertVels_ABL.H:36
const int klo
Definition: ERF_InitCustomPert_ABL.H:75
const Real dx
Definition: ERF_InitCustomPert_ABL.H:44
amrex::Real Real
Definition: ERF_ShocInterface.H:19

Referenced by ERF::resolve_station_stencils(), and ERF::sample_stations().

Here is the caller graph for this function: