Bemsolver 2.0
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes

D3world Class Reference

#include <bem.h>

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

List of all members.

Public Member Functions

 D3world (unsigned long num1, unsigned long num2, unsigned long num3, unsigned long num4, unsigned long d, unsigned long m, unsigned long y)
 D3world (const char *_cachefilename, double tol=0.001, int maxit=32, int numMom=2, int numLev=4, double spaceunit=0.001, int segmentation=1000)
 ~D3world ()
void insert (D3electrode *el)
void GetListOfBaseElements (PD3element *el, int *electrodeIndexLimit, int &cnt)
void SymmetrizeCharges (int axis=1, double epsilon=0.00001, bool ignoremirror=false)
void solve ()
double calc (double x, double y, double z)
 Computes matrices that are required for the calculations of the potentials.
void calc (double xxx, double y, double z, double &pot, double &feldx, double &feldy, double &feldz)
void calc (double xmin, double xmax, int nx, double ymin, double ymax, int ny, double zmin, double zmax, int nz)
 Caching data for access with calc(x,y,z) or calc(x,y,z,&pot,&feldx,&feldy,&feldz). //x.
void calc (int xxxnum, double *xxx, double *Potential)
 Calculating only p otentials. //x.
void calc (int xxxnum, double *xxx, double *Potential, double *FieldX, double *FieldY, double *FieldZ)
 Calculating potentials and fields. //x.
double calc_slow (double x, double y, double z)
void calc_slow (double xmin, double xmax, int nx, double ymin, double ymax, int ny, double zmin, double zmax, int nz)
void calc_slow (int xxxnum, double *xxx, double *Potential, double *FieldX, double *FieldY, double *FieldZ)
 Calculating potentials and fields. //x.
void SetScalePostCalc (double xscale2, double yscale2, double zscale2)
bool IsEqualSurfaceElement (int amountOfVertices, double eps, double *x, double *X)
void draw ()
void Dcentroid (int shape, double *pc, double *xcout)
void save (char *fname)
bool load (char *fname)
int cut (int n, int max)
void savecalc (char *fname)
bool loadcalc (char *fname)
void AssignColors ()
unsigned long update_adler32double (unsigned long old, double *buf, unsigned long len, int ignorebytes=3)
void RefreshChecksum ()
void exportGeometry (const char *fname)
void propagateForwardVerlet (double x[3], double v[3], double h, double qDivM=eee/mmm, bool onedim=false)
void propagateForwardEuler (double x[3], double v[3], double h, double qDivM=eee/mmm)
void propagateForwardVerletRotSymX (double x[3], double v[3], double h, double qDivM=eee/mmm)
void propagateForwardVerletRotSymY (double x[3], double v[3], double h, double qDivM=eee/mmm)
void propagateForwardVerletRotSymZ (double x[3], double v[3], double h, double qDivM=eee/mmm)
void calc2 (int xxxnum, double *xxx, double *Potential, double *FieldX, double *FieldY, double *FieldZ)
 Calculating potentials and fields. //x.
void calc_slow2 (int xxxnum, double *xxx, double *Potential, double *FieldX, double *FieldY, double *FieldZ)
 Calculating potentials and fields. //x.

Public Attributes

bool rangeerror

Protected Member Functions

void exch (double &a, double &b)
void RotMirrorSurfaceElement (int axis, int sym, double *xx)
unsigned long update_adler32 (unsigned long old, unsigned char *buf, unsigned long len)

Protected Attributes

double xscale
double yscale
double zscale
int totalrot
bool refreshchecksum
int currentel
int segmentation
double spaceunit
char cachefilename [2000]
bool docache
double xmin
double xmax
int nx
double ymin
double ymax
int ny
double zmin
double zmax
int nz
double * potcache
double * feldxcache
double * feldycache
double * feldzcache
int size
int nlhs
int nrhs
int numMom
int numLev
int i
int j
char * shapechar
double * x
double * poten
double * dbydnpotenAll
double * dbydbpoten
double * xcoll
double * xnrm
double * lhsvect
double * rhsvect
int * shape
int * type
int * dtype
int * rhstype
int * lhstype
int * rhsindex
int * lhsindex
int job
int fljob
double error
double max_diri
double ave_diri
double max_neum
double ave_neum
double cnt_diri
double cnt_neum
double tol
int maxit
int numit
unsigned long checksum
unsigned long checksumcalc
double * f
double * dfdnAll
int * electrodeIndexLimit
PD3elementel
D3electrode ** electrodes
int n
int amountOfElectrodes

Constructor & Destructor Documentation

D3world::D3world ( unsigned long  num1,
unsigned long  num2,
unsigned long  num3,
unsigned long  num4,
unsigned long  d,
unsigned long  m,
unsigned long  y 
)
D3world::D3world ( const char *  _cachefilename,
double  tol = 0.001,
int  maxit = 32,
int  numMom = 2,
int  numLev = 4,
double  spaceunit = 0.001,
int  segmentation = 1000 
)

aus der cpp: num is registration key, d is day, m is month, y is year

???

D3world::~D3world ( )

Member Function Documentation

void D3world::AssignColors ( )
double D3world::calc ( double  x,
double  y,
double  z 
)

Computes matrices that are required for the calculations of the potentials.

void D3world::calc ( int  xxxnum,
double *  xxx,
double *  Potential,
double *  FieldX,
double *  FieldY,
double *  FieldZ 
)

Calculating potentials and fields. //x.

void D3world::calc ( int  xxxnum,
double *  xxx,
double *  Potential 
)

Calculating only p otentials. //x.

void D3world::calc ( double  xxx,
double  y,
double  z,
double &  pot,
double &  feldx,
double &  feldy,
double &  feldz 
)
void D3world::calc ( double  xmin,
double  xmax,
int  nx,
double  ymin,
double  ymax,
int  ny,
double  zmin,
double  zmax,
int  nz 
)

Caching data for access with calc(x,y,z) or calc(x,y,z,&pot,&feldx,&feldy,&feldz). //x.

void D3world::calc2 ( int  xxxnum,
double *  xxx,
double *  Potential,
double *  FieldX,
double *  FieldY,
double *  FieldZ 
)

Calculating potentials and fields. //x.

double D3world::calc_slow ( double  x,
double  y,
double  z 
)
void D3world::calc_slow ( double  xmin,
double  xmax,
int  nx,
double  ymin,
double  ymax,
int  ny,
double  zmin,
double  zmax,
int  nz 
)
void D3world::calc_slow ( int  xxxnum,
double *  xxx,
double *  Potential,
double *  FieldX,
double *  FieldY,
double *  FieldZ 
)

Calculating potentials and fields. //x.

void D3world::calc_slow2 ( int  xxxnum,
double *  xxx,
double *  Potential,
double *  FieldX,
double *  FieldY,
double *  FieldZ 
)

Calculating potentials and fields. //x.

int D3world::cut ( int  n,
int  max 
)
void D3world::Dcentroid ( int  shape,
double *  pc,
double *  xcout 
)
void D3world::draw ( )
void D3world::exch ( double &  a,
double &  b 
) [protected]
void D3world::exportGeometry ( const char *  fname)
void D3world::GetListOfBaseElements ( PD3element el,
int *  electrodeIndexLimit,
int &  cnt 
)
void D3world::insert ( D3electrode el)
bool D3world::IsEqualSurfaceElement ( int  amountOfVertices,
double  eps,
double *  x,
double *  X 
)
bool D3world::load ( char *  fname)
bool D3world::loadcalc ( char *  fname)
void D3world::propagateForwardEuler ( double  x[3],
double  v[3],
double  h,
double  qDivM = eee/mmm 
)
void D3world::propagateForwardVerlet ( double  x[3],
double  v[3],
double  h,
double  qDivM = eee/mmm,
bool  onedim = false 
)

Propagates particle at position x[3] one timestep h forward.

Parameters:
x[3]contains x,y,z position at current timestep. After call contains the position at next timestep.
v[3]contains x,y,z velocity at current timestep.
his timestep in seconds.
qDivMis charge of particle divided by mass.
void D3world::propagateForwardVerletRotSymX ( double  x[3],
double  v[3],
double  h,
double  qDivM = eee/mmm 
)
void D3world::propagateForwardVerletRotSymY ( double  x[3],
double  v[3],
double  h,
double  qDivM = eee/mmm 
)
void D3world::propagateForwardVerletRotSymZ ( double  x[3],
double  v[3],
double  h,
double  qDivM = eee/mmm 
)
void D3world::RefreshChecksum ( )
void D3world::RotMirrorSurfaceElement ( int  axis,
int  sym,
double *  xx 
) [protected]
void D3world::save ( char *  fname)
void D3world::savecalc ( char *  fname)
void D3world::SetScalePostCalc ( double  xscale2,
double  yscale2,
double  zscale2 
)
void D3world::solve ( )
void D3world::SymmetrizeCharges ( int  axis = 1,
double  epsilon = 0.00001,
bool  ignoremirror = false 
)
unsigned long D3world::update_adler32 ( unsigned long  old,
unsigned char *  buf,
unsigned long  len 
) [protected]
unsigned long D3world::update_adler32double ( unsigned long  old,
double *  buf,
unsigned long  len,
int  ignorebytes = 3 
)

Member Data Documentation

int D3world::amountOfElectrodes [protected]
double D3world::ave_diri [protected]
double D3world::ave_neum [protected]
char D3world::cachefilename[2000] [protected]
unsigned long D3world::checksum [protected]
unsigned long D3world::checksumcalc [protected]
double D3world::cnt_diri [protected]
double D3world::cnt_neum [protected]
int D3world::currentel [protected]
double* D3world::dbydbpoten [protected]
double* D3world::dbydnpotenAll [protected]
double* D3world::dfdnAll [protected]
bool D3world::docache [protected]
int* D3world::dtype [protected]
PD3element* D3world::el [protected]
int* D3world::electrodeIndexLimit [protected]
double D3world::error [protected]
double* D3world::f [protected]
double* D3world::feldxcache [protected]
double* D3world::feldycache [protected]
double* D3world::feldzcache [protected]
int D3world::fljob [protected]
int D3world::i [protected]
int D3world::j [protected]
int D3world::job [protected]
int* D3world::lhsindex [protected]
int* D3world::lhstype [protected]
double* D3world::lhsvect [protected]
double D3world::max_diri [protected]
double D3world::max_neum [protected]
int D3world::maxit [protected]
int D3world::n [protected]
int D3world::nlhs [protected]
int D3world::nrhs [protected]
int D3world::numit [protected]
int D3world::numLev [protected]
int D3world::numMom [protected]
int D3world::nx [protected]
int D3world::ny [protected]
int D3world::nz [protected]
double* D3world::potcache [protected]
double* D3world::poten [protected]
bool D3world::refreshchecksum [protected]
int* D3world::rhsindex [protected]
int* D3world::rhstype [protected]
double* D3world::rhsvect [protected]
int D3world::segmentation [protected]
int* D3world::shape [protected]
char* D3world::shapechar [protected]
int D3world::size [protected]
double D3world::spaceunit [protected]
double D3world::tol [protected]
int D3world::totalrot [protected]
int* D3world::type [protected]
double* D3world::x [protected]

Reimplemented from D3element.

double* D3world::xcoll [protected]
double D3world::xmax [protected]
double D3world::xmin [protected]
double* D3world::xnrm [protected]
double D3world::xscale [protected]
double D3world::ymax [protected]
double D3world::ymin [protected]
double D3world::yscale [protected]
double D3world::zmax [protected]
double D3world::zmin [protected]
double D3world::zscale [protected]

The documentation for this class was generated from the following file:
 All Classes Files Functions Variables Typedefs Friends Defines