OPALX (Object Oriented Parallel Accelerator Library for Exascal) MINIorX
OPALX
MeshGenerator Class Reference

#include <MeshGenerator.h>

Collaboration diagram for MeshGenerator:

Public Member Functions

 MeshGenerator ()
void add (const ElementBase &element)
void write (const std::string &fname)

Private Types

enum  MeshType {
  OTHER = 0 , DIPOLE , QUADRUPOLE , SEXTUPOLE ,
  OCTUPOLE , SOLENOID , RFCAVITY
}

Static Private Member Functions

static MeshData getCylinder (double length, double minor, double major, double formFactor, const unsigned int numSegments=36)
static MeshData getBox (double length, double width, double height, double formFactor)

Private Attributes

std::vector< MeshDataelements_m

Detailed Description

Definition at line 29 of file MeshGenerator.h.

Member Enumeration Documentation

◆ MeshType

Enumerator
OTHER 
DIPOLE 
QUADRUPOLE 
SEXTUPOLE 
OCTUPOLE 
SOLENOID 
RFCAVITY 

Definition at line 38 of file MeshGenerator.h.

Constructor & Destructor Documentation

◆ MeshGenerator()

MeshGenerator::MeshGenerator ( )

Definition at line 12 of file MeshGenerator.cpp.

References elements_m.

Member Function Documentation

◆ add()

void MeshGenerator::add ( const ElementBase & element)

Definition at line 15 of file MeshGenerator.cpp.

References CONIC_ELLIPTICAL, CONIC_RECTANGULAR, MeshData::decorations_m, DIPOLE, DRIFT, elements_m, ELLIPTICAL, end(), ElementBase::getAperture(), getBox(), ElementBase::getCSTrafoGlobal2Local(), getCylinder(), ElementBase::getElementDimensions(), ElementBase::getType(), CoordinateSystemTrafo::inverted(), MULTIPOLE, OCTUPOLE, OTHER, QUADRUPOLE, RBEND, RBEND3D, RECTANGULAR, RFCAVITY, RFCAVITY, CoordinateSystemTrafo::rotateTo(), SBEND, SEXTUPOLE, CoordinateSystemTrafo::transformTo(), TRAVELINGWAVE, MeshData::type_m, and MeshData::vertices_m.

Referenced by OpalBeamline::save3DLattice().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getBox()

MeshData MeshGenerator::getBox ( double length,
double width,
double height,
double formFactor )
staticprivate

Definition at line 1006 of file MeshGenerator.cpp.

References MeshData::decorations_m, MeshData::triangles_m, and MeshData::vertices_m.

Referenced by add().

Here is the caller graph for this function:

◆ getCylinder()

MeshData MeshGenerator::getCylinder ( double length,
double minor,
double major,
double formFactor,
const unsigned int numSegments = 36 )
staticprivate

Definition at line 965 of file MeshGenerator.cpp.

References MeshData::decorations_m, MeshData::triangles_m, Physics::two_pi, and MeshData::vertices_m.

Referenced by add().

Here is the caller graph for this function:

◆ write()

void MeshGenerator::write ( const std::string & fname)

Definition at line 94 of file MeshGenerator.cpp.

References Util::base64_encode(), Util::combineFilePath(), elements_m, OpalData::getAuxiliaryOutputDirectory(), and OpalData::getInstance().

Referenced by OpalBeamline::save3DLattice().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ elements_m

std::vector<MeshData> MeshGenerator::elements_m
private

Definition at line 46 of file MeshGenerator.h.

Referenced by add(), MeshGenerator(), and write().


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