OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
Public Member Functions | Public Attributes | Private Attributes | List of all members
P3MPoissonSolver Class Reference

#include <P3MPoissonSolver.h>

Inheritance diagram for P3MPoissonSolver:
Inheritance graph
[legend]
Collaboration diagram for P3MPoissonSolver:
Collaboration graph
[legend]

Public Member Functions

 P3MPoissonSolver (Mesh_t *mesh, FieldLayout_t *fl, double interaction_radius, double alpha, double eps)
 
 ~P3MPoissonSolver ()
 
void initFields ()
 
void calculateGridForces (PartBunchBase< double, 3 > *bunch, double interaction_radius, double alpha, double eps)
 
void calculatePairForces (PartBunchBase< double, 3 > *bunch, double interaction_radius, double alpha, double eps)
 
void computePotential (Field_t &rho, Vector_t hr, double zshift)
 
void computePotential (Field_t &rho, Vector_t hr)
 
void applyConstantFocusing (PartBunchBase< double, 3 > *bunch, double f, double r)
 
void test (PartBunchBase< double, 3 > *bunch)
 
double getXRangeMin (unsigned short level)
 
double getXRangeMax (unsigned short level)
 
double getYRangeMin (unsigned short level)
 
double getYRangeMax (unsigned short level)
 
double getZRangeMin (unsigned short level)
 
double getZRangeMax (unsigned short level)
 
void computeAvgSpaceChargeForces (PartBunchBase< double, 3 > *bunch)
 
void compute_temperature (PartBunchBase< double, 3 > *bunch)
 
Informprint (Inform &os) const
 
- Public Member Functions inherited from PoissonSolver
virtual void solve (AmrScalarFieldContainer_t &rho, AmrScalarFieldContainer_t &phi, AmrVectorFieldContainer_t &efield, unsigned short baseLevel, unsigned short finestLevel, bool prevAsGuess=true)
 
virtual void hasToRegrid ()
 
virtual ~PoissonSolver ()
 

Public Attributes

Vektor< double, 3 > extend_l
 
Vektor< double, 3 > extend_r
 

Private Attributes

BConds< double, Dim, Mesh_t,
Center_t
bc_m
 
BConds< double, Dim, Mesh_t,
Center_t
bcp_m
 
BConds< Vector_t, Dim, Mesh_t,
Center_t
vbc_m
 
Field_t rho_m
 
Field_t phi_m
 
VField_t eg_m
 
Field_t greentr_m
 
CxField_t rhocmpl_m
 
CxField_t grncmpl_m
 
CxField_t grntr_m
 
std::unique_ptr< FFTC_tfft_m
 
IField_t grnIField_m [3]
 
Mesh_tmesh_m
 
FieldLayout_tlayout_m
 
Field_t tmpgreen
 
NDIndex< 3 > domain_m
 
NDIndex< 3 > domainP3MConstruct_m
 
double interaction_radius_m
 
double alpha_m
 
double eps_m
 
Vector_t hr_m
 
Vektor< int, 3 > nr_m
 
Vektor< double, DimavgEF_m
 
double globSumEf_m [Dim]
 

Detailed Description

Definition at line 41 of file P3MPoissonSolver.h.

Constructor & Destructor Documentation

P3MPoissonSolver::P3MPoissonSolver ( Mesh_t mesh,
FieldLayout_t fl,
double  interaction_radius,
double  alpha,
double  eps 
)
P3MPoissonSolver::~P3MPoissonSolver ( )

Definition at line 247 of file P3MPoissonSolver.cpp.

Member Function Documentation

void P3MPoissonSolver::applyConstantFocusing ( PartBunchBase< double, 3 > *  bunch,
double  f,
double  r 
)

Definition at line 352 of file P3MPoissonSolver.cpp.

References avgEF_m, dot(), PartBunchBase< T, Dim >::Ef, PartBunchBase< T, Dim >::getLocalNum(), PartBunchBase< T, Dim >::R, and sqrt().

Referenced by test().

Here is the call graph for this function:

void P3MPoissonSolver::calculateGridForces ( PartBunchBase< double, 3 > *  bunch,
double  interaction_radius,
double  alpha,
double  eps 
)
void P3MPoissonSolver::calculatePairForces ( PartBunchBase< double, 3 > *  bunch,
double  interaction_radius,
double  alpha,
double  eps 
)

Definition at line 250 of file P3MPoissonSolver.cpp.

References extend_l, extend_r, HashPairBuilderPeriodic< PBase >::for_each(), HashPairBuilderPeriodicParallel< PBase >::for_each(), and IpplInfo::getNodes().

Referenced by test().

Here is the call graph for this function:

void P3MPoissonSolver::compute_temperature ( PartBunchBase< double, 3 > *  bunch)

Definition at line 370 of file P3MPoissonSolver.cpp.

References Dim, endl(), PartBunchBase< T, Dim >::getLocalNum(), PartBunchBase< T, Dim >::getTotalNum(), PartBunchBase< T, Dim >::P, and reduce().

Here is the call graph for this function:

void P3MPoissonSolver::computeAvgSpaceChargeForces ( PartBunchBase< double, 3 > *  bunch)

Definition at line 328 of file P3MPoissonSolver.cpp.

References avgEF_m, Dim, PartBunchBase< T, Dim >::Ef, fabs(), PartBunchBase< T, Dim >::getLocalNum(), PartBunchBase< T, Dim >::getTotalNum(), globSumEf_m, and reduce().

Referenced by test().

Here is the call graph for this function:

void P3MPoissonSolver::computePotential ( Field_t rho,
Vector_t  hr,
double  zshift 
)
virtual

Implements PoissonSolver.

Definition at line 323 of file P3MPoissonSolver.cpp.

void P3MPoissonSolver::computePotential ( Field_t rho,
Vector_t  hr 
)
virtual

Implements PoissonSolver.

Definition at line 365 of file P3MPoissonSolver.cpp.

double P3MPoissonSolver::getXRangeMax ( unsigned short  level)
inlinevirtual

Implements PoissonSolver.

Definition at line 66 of file P3MPoissonSolver.h.

double P3MPoissonSolver::getXRangeMin ( unsigned short  level)
inlinevirtual

Implements PoissonSolver.

Definition at line 65 of file P3MPoissonSolver.h.

double P3MPoissonSolver::getYRangeMax ( unsigned short  level)
inlinevirtual

Implements PoissonSolver.

Definition at line 68 of file P3MPoissonSolver.h.

double P3MPoissonSolver::getYRangeMin ( unsigned short  level)
inlinevirtual

Implements PoissonSolver.

Definition at line 67 of file P3MPoissonSolver.h.

double P3MPoissonSolver::getZRangeMax ( unsigned short  level)
inlinevirtual

Implements PoissonSolver.

Definition at line 70 of file P3MPoissonSolver.h.

double P3MPoissonSolver::getZRangeMin ( unsigned short  level)
inlinevirtual

Implements PoissonSolver.

Definition at line 69 of file P3MPoissonSolver.h.

void P3MPoissonSolver::initFields ( )
Inform & P3MPoissonSolver::print ( Inform os) const

Definition at line 469 of file P3MPoissonSolver.cpp.

References alpha_m, endl(), eps_m, extend_l, extend_r, hr_m, interaction_radius_m, and nr_m.

Referenced by operator<<().

Here is the call graph for this function:

void P3MPoissonSolver::test ( PartBunchBase< double, 3 > *  bunch)
virtual

Member Data Documentation

double P3MPoissonSolver::alpha_m
private

Definition at line 123 of file P3MPoissonSolver.h.

Referenced by print(), and test().

Vektor<double,Dim> P3MPoissonSolver::avgEF_m
private

Definition at line 130 of file P3MPoissonSolver.h.

Referenced by applyConstantFocusing(), and computeAvgSpaceChargeForces().

BConds<double, Dim, Mesh_t, Center_t> P3MPoissonSolver::bc_m
private

Definition at line 77 of file P3MPoissonSolver.h.

Referenced by initFields(), and P3MPoissonSolver().

BConds<double, Dim, Mesh_t, Center_t> P3MPoissonSolver::bcp_m
private

Definition at line 78 of file P3MPoissonSolver.h.

Referenced by initFields(), and P3MPoissonSolver().

NDIndex<3> P3MPoissonSolver::domain_m
private

Definition at line 115 of file P3MPoissonSolver.h.

Referenced by calculateGridForces(), initFields(), and P3MPoissonSolver().

NDIndex<3> P3MPoissonSolver::domainP3MConstruct_m
private

Definition at line 119 of file P3MPoissonSolver.h.

VField_t P3MPoissonSolver::eg_m
private

Definition at line 85 of file P3MPoissonSolver.h.

Referenced by calculateGridForces(), initFields(), and P3MPoissonSolver().

double P3MPoissonSolver::eps_m
private

Definition at line 124 of file P3MPoissonSolver.h.

Referenced by print(), and test().

Vektor<double,3> P3MPoissonSolver::extend_l

Definition at line 135 of file P3MPoissonSolver.h.

Referenced by calculatePairForces(), print(), and test().

Vektor<double,3> P3MPoissonSolver::extend_r

Definition at line 136 of file P3MPoissonSolver.h.

Referenced by calculatePairForces(), print(), and test().

std::unique_ptr<FFTC_t> P3MPoissonSolver::fft_m
private

Definition at line 98 of file P3MPoissonSolver.h.

Referenced by calculateGridForces(), initFields(), and P3MPoissonSolver().

double P3MPoissonSolver::globSumEf_m[Dim]
private

Definition at line 131 of file P3MPoissonSolver.h.

Referenced by computeAvgSpaceChargeForces().

Field_t P3MPoissonSolver::greentr_m
private

Definition at line 88 of file P3MPoissonSolver.h.

CxField_t P3MPoissonSolver::grncmpl_m
private

Definition at line 91 of file P3MPoissonSolver.h.

Referenced by calculateGridForces(), initFields(), and P3MPoissonSolver().

IField_t P3MPoissonSolver::grnIField_m[3]
private

Definition at line 103 of file P3MPoissonSolver.h.

CxField_t P3MPoissonSolver::grntr_m
private

Definition at line 95 of file P3MPoissonSolver.h.

Vector_t P3MPoissonSolver::hr_m
private

Definition at line 126 of file P3MPoissonSolver.h.

Referenced by calculateGridForces(), initFields(), P3MPoissonSolver(), print(), and test().

double P3MPoissonSolver::interaction_radius_m
private

Definition at line 122 of file P3MPoissonSolver.h.

Referenced by print(), and test().

FieldLayout_t* P3MPoissonSolver::layout_m
private

Definition at line 108 of file P3MPoissonSolver.h.

Referenced by calculateGridForces(), initFields(), and P3MPoissonSolver().

Mesh_t* P3MPoissonSolver::mesh_m
private

Definition at line 107 of file P3MPoissonSolver.h.

Referenced by calculateGridForces(), initFields(), and P3MPoissonSolver().

Vektor<int, 3> P3MPoissonSolver::nr_m
private

Definition at line 127 of file P3MPoissonSolver.h.

Referenced by calculateGridForces(), initFields(), P3MPoissonSolver(), print(), and test().

Field_t P3MPoissonSolver::phi_m
private

Definition at line 83 of file P3MPoissonSolver.h.

Referenced by calculateGridForces(), initFields(), and P3MPoissonSolver().

Field_t P3MPoissonSolver::rho_m
private

Definition at line 82 of file P3MPoissonSolver.h.

Referenced by calculateGridForces(), initFields(), and P3MPoissonSolver().

CxField_t P3MPoissonSolver::rhocmpl_m
private

Definition at line 90 of file P3MPoissonSolver.h.

Referenced by calculateGridForces(), initFields(), and P3MPoissonSolver().

Field_t P3MPoissonSolver::tmpgreen
private

Definition at line 112 of file P3MPoissonSolver.h.

BConds<Vector_t, Dim, Mesh_t, Center_t> P3MPoissonSolver::vbc_m
private

Definition at line 79 of file P3MPoissonSolver.h.

Referenced by initFields(), and P3MPoissonSolver().


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