#include <ERF_LatLonMap.H>
◆ LatLonMap()
| LatLonMap::LatLonMap |
( |
const amrex::MultiFab & |
lat, |
|
|
const amrex::MultiFab & |
lon, |
|
|
const amrex::BoxArray & |
ba2d, |
|
|
const amrex::DistributionMapping & |
dm, |
|
|
const amrex::Geometry & |
geom0 |
|
) |
| |
181 m_dx(geom0.CellSizeArray())
183 m_dom = geom0.Domain();
193 MultiFab latlon(ba2d, dm, 2, 0);
196 BoxArray ba_one(
m_dom);
197 Vector<int> pmap(1, ParallelDescriptor::IOProcessorNumber());
198 DistributionMapping dm_one(pmap);
199 m_ll.define(ba_one, dm_one, 2, 0, MFInfo().SetArena(The_Pinned_Arena()));
200 m_ll.ParallelCopy(latlon, 0, 0, 2);
203 Gpu::streamSynchronize();
void pack_latlon(MultiFab &latlon, const MultiFab &lat, const MultiFab &lon)
Definition: ERF_LatLonMap.cpp:47
amrex::Box m_dom
Definition: ERF_LatLonMap.H:168
amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > m_dx
Definition: ERF_LatLonMap.H:170
amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > m_problo
Definition: ERF_LatLonMap.H:169
amrex::MultiFab m_ll
Definition: ERF_LatLonMap.H:167
◆ locate()
212 if (ParallelDescriptor::IOProcessor()) {
215 req_lat, req_lon, l);
216 out[0] = l.
x; out[1] = l.
y;
217 out[2] = l.
lat; out[3] = l.
lon;
220 out[8] =
static_cast<Real>(
static_cast<int>(status));
223 ParallelDescriptor::Bcast(out, 9, ParallelDescriptor::IOProcessorNumber());
225 loc.
x = out[0]; loc.
y = out[1];
226 loc.
lat = out[2]; loc.
lon = out[3];
229 return static_cast<LatLonStatus>(
static_cast<int>(std::lround(out[8])));
LatLonStatus
Definition: ERF_LatLonMap.H:105
LatLonStatus locate_latlon_on_grid(const Array4< const Real > &ll, const Box &dom, const GpuArray< Real, AMREX_SPACEDIM > &problo, const GpuArray< Real, AMREX_SPACEDIM > &dx, Real req_lat, Real req_lon, LatLonLocation &loc)
Definition: ERF_LatLonMap.cpp:113
amrex::Real Real
Definition: ERF_ShocInterface.H:19
Definition: ERF_LatLonMap.H:86
amrex::Real cos_alpha
Definition: ERF_LatLonMap.H:101
amrex::Real lat
Definition: ERF_LatLonMap.H:93
amrex::Real x
Definition: ERF_LatLonMap.H:88
amrex::Real near_lat
Definition: ERF_LatLonMap.H:97
amrex::Real y
Definition: ERF_LatLonMap.H:89
amrex::Real sin_alpha
Definition: ERF_LatLonMap.H:102
amrex::Real near_lon
Definition: ERF_LatLonMap.H:98
amrex::Real lon
Definition: ERF_LatLonMap.H:94
Referenced by ObsNudging::resolve_positions(), and ERF::resolve_station_positions().
◆ rotation_at()
237 if (ParallelDescriptor::IOProcessor()) {
238 const int i = std::clamp(
static_cast<int>(std::floor((
x -
m_problo[0]) /
m_dx[0])),
240 const int j = std::clamp(
static_cast<int>(std::floor((
y -
m_problo[1]) /
m_dx[1])),
245 ParallelDescriptor::Bcast(out, 2, ParallelDescriptor::IOProcessorNumber());
void grid_rotation_from_latlon(const Array4< const Real > &ll, const Box &dom, int i, int j, Real &cos_alpha, Real &sin_alpha)
Definition: ERF_LatLonMap.cpp:63
Real sin_alpha
Definition: ERF_Plotfile2DInterpolator.cpp:29
Real cos_alpha
Definition: ERF_Plotfile2DInterpolator.cpp:28
Referenced by ObsNudging::resolve_positions(), and ERF::resolve_station_positions().
◆ m_dom
| amrex::Box LatLonMap::m_dom |
|
private |
◆ m_dx
| amrex::GpuArray<amrex::Real, AMREX_SPACEDIM> LatLonMap::m_dx |
|
private |
◆ m_ll
| amrex::MultiFab LatLonMap::m_ll |
|
private |
◆ m_problo
| amrex::GpuArray<amrex::Real, AMREX_SPACEDIM> LatLonMap::m_problo |
|
private |
The documentation for this class was generated from the following files: