OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
Classes | Namespaces | Macros | Functions | Variables
BoundaryGeometry.cpp File Reference
#include "Structure/BoundaryGeometry.h"
#include <algorithm>
#include <cmath>
#include <ctime>
#include <fstream>
#include <string>
#include "H5hut.h"
#include <cfloat>
#include "AbstractObjects/OpalData.h"
#include "Algorithms/PartBunchBase.h"
#include "Expressions/SRefExpr.h"
#include "Elements/OpalBeamline.h"
#include "Physics/Physics.h"
#include "Utilities/OpalException.h"
#include "Utilities/Options.h"
#include <boost/filesystem.hpp>
#include <gsl/gsl_sys.h>
Include dependency graph for BoundaryGeometry.cpp:

Go to the source code of this file.

Classes

class  Triangle
 
class  Ray
 
class  Voxel
 

Namespaces

namespace  cmp_diff
 
namespace  cmp_ulp_obsolete
 
namespace  cmp_ulp
 

Macros

#define SQR(x)   ((x)*(x))
 
#define PointID(triangle_id, vertex_id)   Triangles_m[triangle_id][vertex_id]
 
#define Point(triangle_id, vertex_id)   Points_m[Triangles_m[triangle_id][vertex_id]]
 
#define FUNC_EQ(x, y)
 
#define FUNC_EQ_ZERO(x)
 
#define FUNC_LE(x, y)
 
#define FUNC_LE_ZERO(x)
 
#define FUNC_LT(x, y)
 
#define FUNC_LT_ZERO(x)
 
#define FUNC_GE(x, y)
 
#define FUNC_GE_ZERO(x)
 
#define FUNC_GT(x, y)
 
#define FUNC_GT_ZERO(x)
 
#define INSIDE   0
 
#define OUTSIDE   1
 
#define LERP(a, b, t)   (a + t * (b - a))
 
#define mapPoint2VoxelIndices(pt, i, j, k)
 

Functions

bool cmp_diff::almost_eq (double A, double B, double maxDiff=1e-15, double maxRelDiff=DBL_EPSILON)
 
bool cmp_diff::almost_eq_zero (double A, double maxDiff=1e-15)
 
bool cmp_diff::eq (double x, double y)
 
bool cmp_diff::eq_zero (double x)
 
bool cmp_diff::le (double x, double y)
 
bool cmp_diff::le_zero (double x)
 
bool cmp_diff::lt (double x, double y)
 
bool cmp_diff::lt_zero (double x)
 
bool cmp_diff::ge (double x, double y)
 
bool cmp_diff::ge_zero (double x)
 
bool cmp_diff::gt (double x, double y)
 
bool cmp_diff::gt_zero (double x)
 
bool cmp_ulp_obsolete::almost_eq (double A, double B, double maxDiff=1e-20, int maxUlps=1000)
 
bool cmp_ulp_obsolete::almost_eq_zero (double A, double maxDiff=1e-15)
 
bool cmp_ulp_obsolete::eq (double x, double y)
 
bool cmp_ulp_obsolete::eq_zero (double x)
 
bool cmp_ulp_obsolete::le (double x, double y)
 
bool cmp_ulp_obsolete::le_zero (double x)
 
bool cmp_ulp_obsolete::lt (double x, double y)
 
bool cmp_ulp_obsolete::lt_zero (double x)
 
bool cmp_ulp_obsolete::ge (double x, double y)
 
bool cmp_ulp_obsolete::ge_zero (double x)
 
bool cmp_ulp_obsolete::gt (double x, double y)
 
bool cmp_ulp_obsolete::gt_zero (double x)
 
bool cmp_ulp::almost_eq (double A, double B, double maxDiff=1e-20, int maxUlps=1000)
 
bool cmp_ulp::almost_eq_zero (double A, double maxDiff=1e-15)
 
bool cmp_ulp::eq (double x, double y)
 
bool cmp_ulp::eq_zero (double x)
 
bool cmp_ulp::le (double x, double y)
 
bool cmp_ulp::le_zero (double x)
 
bool cmp_ulp::lt (double x, double y)
 
bool cmp_ulp::lt_zero (double x)
 
bool cmp_ulp::ge (double x, double y)
 
bool cmp_ulp::ge_zero (double x)
 
bool cmp_ulp::gt (double x, double y)
 
bool cmp_ulp::gt_zero (double x)
 

Variables

Informgmsg
 
constexpr double EPS = 10e-15
 

Macro Definition Documentation

◆ FUNC_EQ

#define FUNC_EQ (   x,
 
)
Value:
inline bool eq(double x, double y) { \
return almost_eq(x, y); \
}
bool almost_eq(double A, double B, double maxDiff=1e-20, int maxUlps=1000)
bool eq(double x, double y)

Definition at line 62 of file BoundaryGeometry.cpp.

◆ FUNC_EQ_ZERO

#define FUNC_EQ_ZERO (   x)
Value:
inline bool eq_zero(double x) { \
return almost_eq_zero(x); \
}
bool eq_zero(double x)
bool almost_eq_zero(double A, double maxDiff=1e-15)

Definition at line 66 of file BoundaryGeometry.cpp.

◆ FUNC_GE

#define FUNC_GE (   x,
 
)
Value:
inline bool ge(double x, double y) { \
if (almost_eq(x, y)) { \
return true; \
} \
return x > y; \
}
bool ge(double x, double y)

Definition at line 98 of file BoundaryGeometry.cpp.

◆ FUNC_GE_ZERO

#define FUNC_GE_ZERO (   x)
Value:
inline bool ge_zero(double x) { \
if (almost_eq_zero(x)) { \
return true; \
} \
return x > 0.0; \
}
bool ge_zero(double x)

Definition at line 105 of file BoundaryGeometry.cpp.

◆ FUNC_GT

#define FUNC_GT (   x,
 
)
Value:
inline bool gt(double x, double y) { \
if (almost_eq(x, y)) { \
return false; \
} \
return x > y; \
}
bool gt(double x, double y)

Definition at line 112 of file BoundaryGeometry.cpp.

◆ FUNC_GT_ZERO

#define FUNC_GT_ZERO (   x)
Value:
inline bool gt_zero(double x) { \
if (almost_eq_zero(x)) { \
return false; \
} \
return x > 0.0; \
}
bool gt_zero(double x)

Definition at line 119 of file BoundaryGeometry.cpp.

◆ FUNC_LE

#define FUNC_LE (   x,
 
)
Value:
inline bool le(double x, double y) { \
if (almost_eq(x, y)) { \
return true; \
} \
return x < y; \
}
bool le(double x, double y)

Definition at line 70 of file BoundaryGeometry.cpp.

◆ FUNC_LE_ZERO

#define FUNC_LE_ZERO (   x)
Value:
inline bool le_zero(double x) { \
if (almost_eq_zero(x)) { \
return true; \
} \
return x < 0.0; \
}
bool le_zero(double x)

Definition at line 77 of file BoundaryGeometry.cpp.

◆ FUNC_LT

#define FUNC_LT (   x,
 
)
Value:
inline bool lt(double x, double y) { \
if (almost_eq(x, y)) { \
return false; \
} \
return x < y; \
}
bool lt(double x, double y)

Definition at line 84 of file BoundaryGeometry.cpp.

◆ FUNC_LT_ZERO

#define FUNC_LT_ZERO (   x)
Value:
inline bool lt_zero(double x) { \
if (almost_eq_zero(x)) { \
return false; \
} \
return x < 0.0; \
}
bool lt_zero(double x)

Definition at line 91 of file BoundaryGeometry.cpp.

◆ INSIDE

#define INSIDE   0

Definition at line 414 of file BoundaryGeometry.cpp.

◆ LERP

#define LERP (   a,
  b,
 
)    (a + t * (b - a))

◆ mapPoint2VoxelIndices

#define mapPoint2VoxelIndices (   pt,
  i,
  j,
 
)
Value:
{ \
i = floor ((pt[0] - voxelMesh_m.minExtent [0]) / voxelMesh_m.sizeOfVoxel[0]); \
j = floor ((pt[1] - voxelMesh_m.minExtent [1]) / voxelMesh_m.sizeOfVoxel[1]); \
k = floor ((pt[2] - voxelMesh_m.minExtent [2]) / voxelMesh_m.sizeOfVoxel[2]); \
if (!(0 <= i && i < voxelMesh_m.nr_m[0] && \
0 <= j && j < voxelMesh_m.nr_m[1] && \
0 <= k && k < voxelMesh_m.nr_m[2])) { \
*gmsg << level2 \
<< "* " << __func__ << ":" \
<< " WARNING: pt=" << pt \
<< " is outside the bbox" \
<< " i=" << i \
<< " j=" << j \
<< " k=" << k \
<< endl; \
} \
}
Inform * gmsg
Definition: Main.cpp:61
PETE_TUTree< FnFloor, typename T::PETE_Expr_t > floor(const PETE_Expr< T > &l)
Definition: PETE.h:733
Inform & level2(Inform &inf)
Definition: Inform.cpp:46
Inform & endl(Inform &inf)
Definition: Inform.cpp:42

Definition at line 1542 of file BoundaryGeometry.cpp.

◆ OUTSIDE

#define OUTSIDE   1

Definition at line 415 of file BoundaryGeometry.cpp.

◆ Point

#define Point (   triangle_id,
  vertex_id 
)    Points_m[Triangles_m[triangle_id][vertex_id]]

Definition at line 48 of file BoundaryGeometry.cpp.

◆ PointID

#define PointID (   triangle_id,
  vertex_id 
)    Triangles_m[triangle_id][vertex_id]

Definition at line 47 of file BoundaryGeometry.cpp.

◆ SQR

#define SQR (   x)    ((x)*(x))

Definition at line 46 of file BoundaryGeometry.cpp.

Variable Documentation

◆ EPS

constexpr double EPS = 10e-15
constexpr

Definition at line 593 of file BoundaryGeometry.cpp.

◆ gmsg

Inform* gmsg
extern