apply clear inheritance for cylindrical coords operator

This commit is contained in:
Thorsten Liebig 2010-08-15 14:11:42 +02:00 committed by Thorsten Liebig
parent 23a3f6fb9c
commit b75476cc04
2 changed files with 13 additions and 16 deletions

View File

@ -30,31 +30,31 @@ Operator_Cylinder* Operator_Cylinder::New(unsigned int numThreads)
return op; return op;
} }
Operator_Cylinder::Operator_Cylinder() : __OP_CYLINDER_BASE_CLASS__() Operator_Cylinder::Operator_Cylinder() : Operator_Multithread()
{ {
m_MeshType = ProcessFields::CYLINDRICAL_MESH; m_MeshType = ProcessFields::CYLINDRICAL_MESH;
} }
Operator_Cylinder::~Operator_Cylinder() Operator_Cylinder::~Operator_Cylinder()
{ {
__OP_CYLINDER_BASE_CLASS__::Reset(); Operator_Multithread::Reset();
} }
void Operator_Cylinder::Init() void Operator_Cylinder::Init()
{ {
CC_closedAlpha = false; CC_closedAlpha = false;
CC_R0_included = false; CC_R0_included = false;
__OP_CYLINDER_BASE_CLASS__::Init(); Operator_Multithread::Init();
} }
void Operator_Cylinder::Reset() void Operator_Cylinder::Reset()
{ {
__OP_CYLINDER_BASE_CLASS__::Reset(); Operator_Multithread::Reset();
} }
void Operator_Cylinder::InitOperator() void Operator_Cylinder::InitOperator()
{ {
__OP_CYLINDER_BASE_CLASS__::InitOperator(); Operator_Multithread::InitOperator();
} }
inline unsigned int Operator_Cylinder::GetNumberOfLines(int ny) const inline unsigned int Operator_Cylinder::GetNumberOfLines(int ny) const
@ -76,7 +76,7 @@ string Operator_Cylinder::GetDirName(int ny) const
double Operator_Cylinder::GetMeshDelta(int n, const int* pos, bool dualMesh) const double Operator_Cylinder::GetMeshDelta(int n, const int* pos, bool dualMesh) const
{ {
double delta = __OP_CYLINDER_BASE_CLASS__::GetMeshDelta(n,pos,dualMesh); double delta = Operator_Multithread::GetMeshDelta(n,pos,dualMesh);
if (delta==0) return delta; if (delta==0) return delta;
if (n==1) if (n==1)
{ {
@ -89,7 +89,7 @@ double Operator_Cylinder::GetNodeArea(int ny, const int pos[3], bool dualMesh) c
{ {
if (ny==2) if (ny==2)
{ {
double da = __OP_CYLINDER_BASE_CLASS__::GetMeshDelta(1,pos,dualMesh)/gridDelta; double da = Operator_Multithread::GetMeshDelta(1,pos,dualMesh)/gridDelta;
double r1,r2; double r1,r2;
if (!dualMesh) if (!dualMesh)
{ {
@ -105,12 +105,12 @@ double Operator_Cylinder::GetNodeArea(int ny, const int pos[3], bool dualMesh) c
return da * pow(r2,2); return da * pow(r2,2);
return da/2* (pow(r2,2) - pow(r1,2)); return da/2* (pow(r2,2) - pow(r1,2));
} }
return __OP_CYLINDER_BASE_CLASS__::GetNodeArea(ny,pos,dualMesh); return Operator_Multithread::GetNodeArea(ny,pos,dualMesh);
} }
bool Operator_Cylinder::SetGeometryCSX(ContinuousStructure* geo) bool Operator_Cylinder::SetGeometryCSX(ContinuousStructure* geo)
{ {
if (__OP_CYLINDER_BASE_CLASS__::SetGeometryCSX(geo)==false) return false; if (Operator_Multithread::SetGeometryCSX(geo)==false) return false;
double minmaxA = fabs(discLines[1][numLines[1]-1]-discLines[1][0]); double minmaxA = fabs(discLines[1][numLines[1]-1]-discLines[1][0]);
if (fabs(minmaxA-2*PI) < (2*PI)/10/numLines[1]) //check minmaxA smaller then a tenth of average alpha-width if (fabs(minmaxA-2*PI) < (2*PI)/10/numLines[1]) //check minmaxA smaller then a tenth of average alpha-width
@ -171,7 +171,7 @@ void Operator_Cylinder::ApplyElectricBC(bool* dirs)
} }
} }
} }
__OP_CYLINDER_BASE_CLASS__::ApplyElectricBC(dirs); Operator_Multithread::ApplyElectricBC(dirs);
} }
void Operator_Cylinder::ApplyMagneticBC(bool* dirs) void Operator_Cylinder::ApplyMagneticBC(bool* dirs)
@ -185,7 +185,7 @@ void Operator_Cylinder::ApplyMagneticBC(bool* dirs)
{ {
dirs[0]=0; //no PMC in r_min directions... dirs[0]=0; //no PMC in r_min directions...
} }
__OP_CYLINDER_BASE_CLASS__::ApplyMagneticBC(dirs); Operator_Multithread::ApplyMagneticBC(dirs);
} }
bool Operator_Cylinder::Calc_ECPos(int n, const unsigned int* pos, double* inEC) const bool Operator_Cylinder::Calc_ECPos(int n, const unsigned int* pos, double* inEC) const
@ -398,7 +398,7 @@ bool Operator_Cylinder::Calc_ECPos(int n, const unsigned int* pos, double* inEC)
bool Operator_Cylinder::Calc_EffMatPos(int n, const unsigned int* pos, double* inMat) const bool Operator_Cylinder::Calc_EffMatPos(int n, const unsigned int* pos, double* inMat) const
{ {
__OP_CYLINDER_BASE_CLASS__::Calc_EffMatPos(n, pos, inMat); Operator_Multithread::Calc_EffMatPos(n, pos, inMat);
// H_rho is not defined at position r==0 // H_rho is not defined at position r==0
if (CC_R0_included && (n==0) && (pos[0]==0)) if (CC_R0_included && (n==0) && (pos[0]==0))

View File

@ -18,9 +18,6 @@
#ifndef OPERATOR_CYLINDER_H #ifndef OPERATOR_CYLINDER_H
#define OPERATOR_CYLINDER_H #define OPERATOR_CYLINDER_H
//! define the base class for the cylindrical coordinate FDTD
#define __OP_CYLINDER_BASE_CLASS__ Operator_Multithread
#include "operator_multithread.h" #include "operator_multithread.h"
//! This class creates an operator for a cylindrical FDTD. //! This class creates an operator for a cylindrical FDTD.
@ -28,7 +25,7 @@
This class creates an operator for a cylindrical FDTD. No special engine is necessary, This class creates an operator for a cylindrical FDTD. No special engine is necessary,
all special cases e.g. a closed alpha mesh or an included r=0 case is treated by an operator/engine extension \sa operator_ext_cylinder. all special cases e.g. a closed alpha mesh or an included r=0 case is treated by an operator/engine extension \sa operator_ext_cylinder.
*/ */
class Operator_Cylinder : public __OP_CYLINDER_BASE_CLASS__ class Operator_Cylinder : public Operator_Multithread
{ {
public: public:
static Operator_Cylinder* New(unsigned int numThreads = 0); static Operator_Cylinder* New(unsigned int numThreads = 0);