Block-Structured AMR Software Framework
 
Loading...
Searching...
No Matches
AMReX_TracerParticle_mod_K.H File Reference
#include <AMReX_Config.H>
#include <AMReX_FArrayBox.H>
#include <AMReX_Box.H>
#include <AMReX_Gpu.H>
#include <AMReX_Geometry.H>
#include <AMReX_REAL.H>
#include <AMReX_IntVect.H>
#include <AMReX_TracerParticles.H>
#include <cmath>

Go to the source code of this file.

Namespaces

namespace  amrex
 

Functions

template<typename P >
__host__ __device__ void amrex::cic_interpolate (const P &p, amrex::GpuArray< amrex::Real, 3 > const &plo, amrex::GpuArray< amrex::Real, 3 > const &dxi, const amrex::Array4< amrex::Real const > &data_arr, amrex::ParticleReal *val, int M=3)
 Linearly interpolates the mesh data to the particle position from cell-centered data.
 
template<typename P >
__host__ __device__ void amrex::cic_interpolate_cc (const P &p, amrex::GpuArray< amrex::Real, 3 > const &plo, amrex::GpuArray< amrex::Real, 3 > const &dxi, const amrex::Array4< amrex::Real const > &data_arr, amrex::ParticleReal *val, int M=3)
 
template<typename P >
__host__ __device__ void amrex::cic_interpolate_nd (const P &p, amrex::GpuArray< amrex::Real, 3 > const &plo, amrex::GpuArray< amrex::Real, 3 > const &dxi, const amrex::Array4< amrex::Real const > &data_arr, amrex::ParticleReal *val, int M=3)
 Linearly interpolates the mesh data to the particle position from node-centered data.
 
template<typename P >
__host__ __device__ void amrex::mac_interpolate (const P &p, amrex::GpuArray< amrex::Real, 3 > const &plo, amrex::GpuArray< amrex::Real, 3 > const &dxi, amrex::GpuArray< amrex::Array4< amrex::Real const >, 3 > const &data_arr, amrex::ParticleReal *val)
 Linearly interpolates the mesh data to the particle position from face-centered data. The nth component of the data_arr array is nodal in the nth direction, and cell-centered in the others.
 
template<typename P >
__host__ __device__ void amrex::linear_interpolate_to_particle (const P &p, amrex::GpuArray< amrex::Real, 3 > const &plo, amrex::GpuArray< amrex::Real, 3 > const &dxi, const Array4< amrex::Real const > *data_arr, amrex::ParticleReal *val, const IntVect *is_nodal, int start_comp, int ncomp, int num_arrays)
 Linearly interpolates the mesh data to the particle position from mesh data. This general form can handle an arbitrary number of Array4s, each with different staggerings.
 
template<typename P >
__host__ __device__ void amrex::cic_interpolate_mapped_z (const P &p, amrex::GpuArray< amrex::Real, 3 > const &plo, amrex::GpuArray< amrex::Real, 3 > const &dxi, const amrex::Array4< amrex::Real const > &data_arr, const amrex::Array4< amrex::Real const > &height_arr, amrex::ParticleReal *val, int M=3)
 Linearly interpolates the mesh data to the particle position from cell-centered data on a terrain-fitted grid.
 
template<typename P >
__host__ __device__ void amrex::cic_interpolate_cc_mapped_z (const P &p, amrex::GpuArray< amrex::Real, 3 > const &plo, amrex::GpuArray< amrex::Real, 3 > const &dxi, const amrex::Array4< amrex::Real const > &data_arr, const amrex::Array4< amrex::Real const > &height_arr, amrex::ParticleReal *val, int M=3)
 Linearly interpolates the mesh data to the particle position from cell-centered data on a terrain-fitted grid.
 
template<typename P >
__host__ __device__ void amrex::cic_interpolate_nd_mapped_z (const P &p, amrex::GpuArray< amrex::Real, 3 > const &plo, amrex::GpuArray< amrex::Real, 3 > const &dxi, const amrex::Array4< amrex::Real const > &data_arr, const amrex::Array4< amrex::Real const > &height_arr, amrex::ParticleReal *val, int M=3)
 Linearly interpolates the mesh data to the particle position from node-centered data. on a terrain-fitted grid.
 
template<typename P >
__host__ __device__ void amrex::mac_interpolate_mapped_z (const P &p, amrex::GpuArray< amrex::Real, 3 > const &plo, amrex::GpuArray< amrex::Real, 3 > const &dxi, amrex::GpuArray< amrex::Array4< amrex::Real const >, 3 > const &data_arr, const amrex::Array4< amrex::Real const > &height_arr, amrex::ParticleReal *val)
 Linearly interpolates the mesh data to the particle position from face-centered data on a terrain-fitted grid. The nth component of the data_arr array is nodal in the nth direction, and cell-centered in the others.
 
template<typename P >
__host__ __device__ void amrex::linear_interpolate_to_particle_z (const P &p, amrex::GpuArray< amrex::Real, 3 > const &plo, amrex::GpuArray< amrex::Real, 3 > const &dxi, const Array4< amrex::Real const > *data_arr, const amrex::Array4< amrex::Real const > &height_arr, amrex::ParticleReal *val, const IntVect *is_nodal, int start_comp, int ncomp, int num_arrays)
 Linearly interpolates the mesh data to the particle position from mesh data. This general form can handle an arbitrary number of Array4s, each with different staggerings on a terrain-fitted grid.
 
__host__ __device__ void amrex::particle_interp_decomp (Array2D< Real, 1, 7, 1, 7 > &a, Array1D< int, 1, 7 > &ip, int neq)
 Helper functions for 3D interpolation from values on nodes/vertices of arbitrary hexahedra to particle location.
 
__host__ __device__ void amrex::particle_interp_solve (Array2D< Real, 1, 7, 1, 7 > &a, Array1D< Real, 1, 7 > &b, Array1D< int, 1, 7 > &ip, int neq)
 
template<typename P >
__host__ __device__ void amrex::cic_interpolate_nd_mapped (const P &p, const amrex::Array4< amrex::Real const > &data_arr, const amrex::Array4< amrex::Real const > &loc_arr, amrex::ParticleReal *val, int M=3)
 Linearly interpolates the mesh data to the particle position from node-centered data on a general mapped grid.
 
template<typename P >
__host__ __device__ void amrex::linear_interpolate_to_particle_mapped (const P &p, const Array4< amrex::Real const > *data_arr, const amrex::Array4< amrex::Real const > &loc_arr, amrex::ParticleReal *val, const IntVect *is_nodal, int start_comp, int ncomp, int num_arrays)
 Linearly interpolates the mesh data to the particle position on a general mapped grid. Note that currently only node-centered data interpolation is supported in 2D and 3D.