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: