Chombo + EB + MF  3.2
Public Member Functions | Private Member Functions | Private Attributes | List of all members
MeshInterp Class Reference

#include <MeshInterp.H>

Public Member Functions

 MeshInterp ()
 
 MeshInterp (const Box &a_domain, const RealVect &a_dx, const RealVect &m_domainLeftEdge)
 Full constructor. More...
 
void define (const Box &a_domain, const RealVect &a_dx, const RealVect &m_domainLeftEdge)
 Define function. More...
 
template<class P >
void deposit (const List< P > &a_particleList, FArrayBox &a_rho, InterpType &a_interpType)
 
template<class P >
void interpolate (List< P > &a_particleList, const FArrayBox &a_field, InterpType &a_interpType)
 

Private Member Functions

void depositParticle (FArrayBox &a_rho, const RealVect &a_domainLeftEdge, const RealVect &a_dx, const RealVect &a_position, const Real &a_strength, const InterpType a_interpType)
 
void interpolateParticle (RealVect &a_particleField, const FArrayBox &a_field, const RealVect &a_domainLeftEdge, const RealVect &a_dx, const RealVect &a_position, const InterpType &a_interpType)
 

Private Attributes

Box m_domain
 
RealVect m_dx
 
RealVect m_domainLeftEdge
 

Detailed Description

This class is used for handling the interaction between the particles and the mesh in PIC calculations. It handles depositing particle masses or charges onto the mesh, and interpolating the result of the force solve back to the particle positions.

Constructor & Destructor Documentation

◆ MeshInterp() [1/2]

MeshInterp::MeshInterp ( )

◆ MeshInterp() [2/2]

MeshInterp::MeshInterp ( const Box a_domain,
const RealVect a_dx,
const RealVect m_domainLeftEdge 
)

Full constructor.

Member Function Documentation

◆ define()

void MeshInterp::define ( const Box a_domain,
const RealVect a_dx,
const RealVect m_domainLeftEdge 
)

Define function.

◆ deposit()

template<class P >
void MeshInterp::deposit ( const List< P > &  a_particleList,
FArrayBox a_rho,
InterpType a_interpType 
)

Deposit the particles in a_particleList onto a_rho. The type of interpolation to perform is passed in as an argument.

References depositParticle(), m_domainLeftEdge, and m_dx.

◆ interpolate()

template<class P >
void MeshInterp::interpolate ( List< P > &  a_particleList,
const FArrayBox a_field,
InterpType a_interpType 
)

Interpolate the field given by a_field onto the particles in a_particleList. a_field must have SpaceDim components. The type of interpolation to perform is passed in as an argument.

References D_DECL6, interpolateParticle(), m_domainLeftEdge, and m_dx.

◆ depositParticle()

void MeshInterp::depositParticle ( FArrayBox a_rho,
const RealVect a_domainLeftEdge,
const RealVect a_dx,
const RealVect a_position,
const Real a_strength,
const InterpType  a_interpType 
)
private

a wrapper function that deposits a single particle using the interpolating functions defined in MeshInterpF.ChF

Referenced by deposit().

◆ interpolateParticle()

void MeshInterp::interpolateParticle ( RealVect a_particleField,
const FArrayBox a_field,
const RealVect a_domainLeftEdge,
const RealVect a_dx,
const RealVect a_position,
const InterpType a_interpType 
)
private

a wrapper function that interpolates the field to a single particle position using the interpolating functions defined in MeshInterpF.ChF

Referenced by interpolate().

Member Data Documentation

◆ m_domain

Box MeshInterp::m_domain
private

◆ m_dx

RealVect MeshInterp::m_dx
private

Referenced by deposit(), and interpolate().

◆ m_domainLeftEdge

RealVect MeshInterp::m_domainLeftEdge
private

Referenced by deposit(), and interpolate().


The documentation for this class was generated from the following files: