Analysis Software
Documentation for sPHENIX simulation software
|
#include <JETSCAPE/blob/main/external_packages/cornelius.h>
Private Member Functions | |
void | surface_3d (double ***, double *, int) |
void | surface_3d (double ***, double *, int) |
void | surface_3d (double ***, double *, int) |
void | surface_3d (double ***, double *, int) |
Private Attributes | |
int | Nelements |
double ** | normals |
double ** | centroids |
int | cube_dim |
int | initialized |
int | print_initialized |
double | value0 |
double * | dx |
ofstream | output_print |
Square | cu2d |
Cube | cu3d |
Hypercube | cu4d |
Static Private Attributes | |
static const int | STEPS = 2 |
static const int | DIM = 4 |
static const int | MAX_ELEMENTS = 10 |
A class for finding a constant value surface from a 2-4 dimensional cube. The values at corners and length of the side are needed as an input.
Algorithm by Pasi Huovinen. This code is based on the original FORTRAN code by Pasi Huovinen.
A class for finding a constant value surface from a 2-4 dimensional cube. The values at corners and length of the side are needed as an input.
Algorithm by Pasi Huovinen. This code is based on the original FORTRAN code by Pasi Huovinen.
23.04.2012 Hannu Holopainen
Definition at line 1999 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 1999 of file cornelius.cpp
Cornelius::Cornelius | ( | ) |
Constructor allocates some memory.
Definition at line 2041 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2041 of file cornelius.cpp
References i.
Cornelius::~Cornelius | ( | ) |
Destructor frees memory and closes printing file is necessary.
Definition at line 2059 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2059 of file cornelius.cpp
References i.
Cornelius::Cornelius | ( | ) |
Cornelius::~Cornelius | ( | ) |
Cornelius::Cornelius | ( | ) |
Cornelius::~Cornelius | ( | ) |
Cornelius::Cornelius | ( | ) |
Cornelius::~Cornelius | ( | ) |
void Cornelius::find_surface_2d | ( | double ** | ) |
void Cornelius::find_surface_2d | ( | double ** | ) |
void Cornelius::find_surface_2d | ( | double ** | ) |
void Cornelius::find_surface_2d | ( | double ** | cube | ) |
Finds the surface elements in 2-dimensional case.
[in] | cube | Values at the corners of the cube as a 2d table so that value [0][0] is at (0,0,0) and [1][1] is at (dx1,dx2). |
Definition at line 2127 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2127 of file cornelius.cpp
References GeneralElement::get_centroid(), GeneralElement::get_normal(), i, and j.
void Cornelius::find_surface_3d | ( | double *** | ) |
void Cornelius::find_surface_3d | ( | double *** | ) |
void Cornelius::find_surface_3d | ( | double *** | ) |
void Cornelius::find_surface_3d | ( | double *** | cube | ) |
Finds the surface elements in 3-dimensional case.
[in] | cube | Values at the corners of the cube as a 3d table so that value [0][0][0] is at (0,0,0) and [1][1][1] is at (dx1,dx2,dx3). |
Definition at line 2161 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2161 of file cornelius.cpp
References Acts::Test::pos.
Referenced by SurfaceFinder::Find_full_hypersurface(), and Jetscape::SurfaceFinder::Find_full_hypersurface_3D().
Finds the surface elements in 3-dimensional case and prints the actual triangles which are found by the algorithm.
[in] | cube | Values at the corners of the cube as a 3d table so that value [0][0][0] is at (0,0,0) and [1][1][1] is at (dx1,dx2,dx3). |
[in] | pos | Absolute position at the point [0][0][0] in form (0,x1,x2,x3). |
Definition at line 2177 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2177 of file cornelius.cpp
void Cornelius::find_surface_4d | ( | double **** | ) |
void Cornelius::find_surface_4d | ( | double **** | ) |
void Cornelius::find_surface_4d | ( | double **** | ) |
void Cornelius::find_surface_4d | ( | double **** | cube | ) |
Finds the surface elements in 4-dimensional case.
[in] | cube | Values at the corners of the cube as a 4d table so that value [0][0][0][0] is at (0,0,0,0) and [1][1][1][1] is at (dx1,dx2,dx3,dx4). |
Definition at line 2248 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2248 of file cornelius.cpp
References GeneralElement::get_centroid(), GeneralElement::get_normal(), i, j, k, and merge_hashes::p.
Referenced by Jetscape::SurfaceFinder::Find_full_hypersurface_4D().
double Cornelius::get_centroid_elem | ( | int | , |
int | |||
) |
double Cornelius::get_centroid_elem | ( | int | , |
int | |||
) |
double Cornelius::get_centroid_elem | ( | int | , |
int | |||
) |
double Cornelius::get_centroid_elem | ( | int | i, |
int | j | ||
) |
Returns an element of the centroid vector.
[in] | i | Number of surface element whose centroid one wants to get. Valid values are [0,number of elements in this cube]. |
[in] | j | Index of the element of centroid. Valid values are [0,dimension of the problem]. |
Definition at line 2404 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2404 of file cornelius.cpp
References i.
Referenced by SurfaceFinder::Find_full_hypersurface(), Jetscape::SurfaceFinder::Find_full_hypersurface_3D(), and Jetscape::SurfaceFinder::Find_full_hypersurface_4D().
double** Cornelius::get_centroids | ( | ) |
double** Cornelius::get_centroids | ( | ) |
double** Cornelius::get_centroids | ( | ) |
double ** Cornelius::get_centroids | ( | ) |
Returns the centroid vectors as a 2d table with the following number of indices [number of elements][dimension of the problem]. Note that this function allocates memory and the user must free it!
Definition at line 2358 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2358 of file cornelius.cpp
double** Cornelius::get_centroids_4d | ( | ) |
double** Cornelius::get_centroids_4d | ( | ) |
double ** Cornelius::get_centroids_4d | ( | ) |
Returns the centroid vectors as a 2d table with the following number of indices [number of elements][4]. If the dimension of the problem is smaller than four, first (4-dimension) elements are zero. Note that this function allocates memory and the user must free it!
Definition at line 2312 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2312 of file cornelius.cpp
double** Cornelius::get_centroids_4d | ( | ) |
int Cornelius::get_Nelements | ( | ) |
int Cornelius::get_Nelements | ( | ) |
int Cornelius::get_Nelements | ( | ) |
int Cornelius::get_Nelements | ( | ) |
Returns the number of the surface elements in the given cube.
Definition at line 2296 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2296 of file cornelius.cpp
Referenced by SurfaceFinder::Find_full_hypersurface(), Jetscape::SurfaceFinder::Find_full_hypersurface_3D(), and Jetscape::SurfaceFinder::Find_full_hypersurface_4D().
double Cornelius::get_normal_elem | ( | int | , |
int | |||
) |
double Cornelius::get_normal_elem | ( | int | , |
int | |||
) |
double Cornelius::get_normal_elem | ( | int | i, |
int | j | ||
) |
Returns an element of the normal vector. This gives without factors (sqrt(-g)) from the metric.
[in] | i | Number of surface element whose normal one wants to get. Valid values are [0,number of elements in this cube]. |
[in] | j | Index of the element of centroid. Valid values are [0,dimension of the problem]. |
Definition at line 2425 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2425 of file cornelius.cpp
References i.
Referenced by SurfaceFinder::Find_full_hypersurface(), Jetscape::SurfaceFinder::Find_full_hypersurface_3D(), and Jetscape::SurfaceFinder::Find_full_hypersurface_4D().
double Cornelius::get_normal_elem | ( | int | , |
int | |||
) |
double** Cornelius::get_normals | ( | ) |
double** Cornelius::get_normals | ( | ) |
double** Cornelius::get_normals | ( | ) |
double ** Cornelius::get_normals | ( | ) |
Returns the normal vectors as a 2d table with the following number of indices [number of elements][dimension of the problem]. This gives without factors(sqrt(-g)) from the metric. Note that this function allocates memory and the user must free it!
Definition at line 2381 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2381 of file cornelius.cpp
double** Cornelius::get_normals_4d | ( | ) |
double** Cornelius::get_normals_4d | ( | ) |
double ** Cornelius::get_normals_4d | ( | ) |
Returns the normal vectors as a 2d table with the following number of indices [number of elements][4]. If the dimension of the problem is smaller than four, first (4-dimension) elements are zero. This gives without factors(sqrt(-g)) from the metric. Note that this function allocates memory and the user must free it!
Definition at line 2336 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2336 of file cornelius.cpp
double** Cornelius::get_normals_4d | ( | ) |
Initializes Cornelius. Can be used several times without any problems. This might be useful if cube size varies during evolution.
[in] | d | Dimension of the problem. |
[in] | v0 | Value which defines the surface. |
[in] | dex | Length of the sides of the cube. Must contains as many elements as the dimension of the problem (dx1,dx2,...). |
Definition at line 2087 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2087 of file cornelius.cpp
References i.
Referenced by SurfaceFinder::Find_full_hypersurface(), Jetscape::SurfaceFinder::Find_full_hypersurface_3D(), and Jetscape::SurfaceFinder::Find_full_hypersurface_4D().
void Cornelius::init_print | ( | string | ) |
void Cornelius::init_print | ( | string | ) |
void Cornelius::init_print | ( | string | ) |
void Cornelius::init_print | ( | string | filename | ) |
This initializes the printing of the surface elements into file. Final elements are not printed with this, but instead this is used to print the triangles, which are used to construct the final elements.
[in] | filename | Filename of the file where the information is printed. |
Definition at line 2113 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2113 of file cornelius.cpp
Finds the surface elements in 3-dimensional case.
[in] | cube | Values at the corners of the cube as a 3d table so that value [0][0][0] is at (0,0,0) and [1][1][1] is at (dx1,dx2,dx3). |
[in] | pos | Absolute position at the point [0][0][0] in form (0,x1,x2,x3). |
[in] | do_print | 1 if triangles are printed, otherwise 0 |
Definition at line 2192 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2192 of file cornelius.cpp
References GeneralElement::get_centroid(), GeneralElement::get_normal(), i, j, k, merge_hashes::p, and Polygon::print().
|
private |
Definition at line 2007 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2007 of file cornelius.cpp
|
private |
Definition at line 2015 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2015 of file cornelius.cpp
|
private |
Definition at line 2016 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2016 of file cornelius.cpp
|
private |
Definition at line 2017 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2017 of file cornelius.cpp
|
private |
Definition at line 2008 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2008 of file cornelius.cpp
|
staticprivate |
Definition at line 2003 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2003 of file cornelius.cpp
|
private |
Definition at line 2012 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2012 of file cornelius.cpp
|
private |
Definition at line 2009 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2009 of file cornelius.cpp
|
staticprivate |
Definition at line 2004 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2004 of file cornelius.cpp
|
private |
Definition at line 2005 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2005 of file cornelius.cpp
|
private |
Definition at line 2006 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2006 of file cornelius.cpp
|
private |
Definition at line 2013 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2013 of file cornelius.cpp
|
private |
Definition at line 2010 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2010 of file cornelius.cpp
|
staticprivate |
Definition at line 2002 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2002 of file cornelius.cpp
|
private |
Definition at line 2011 of file cornelius.cpp.
View newest version in sPHENIX GitHub at line 2011 of file cornelius.cpp