Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
KiT-RT
KiT-RT
Commits
89068dc9
Commit
89068dc9
authored
Feb 26, 2021
by
Steffen Schotthöfer
Browse files
more documentation
parent
7bc98290
Pipeline
#138055
canceled with stage
Changes
81
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
code/include/common/config.h
View file @
89068dc9
...
...
@@ -27,7 +27,7 @@ class OptionBase;
class
Config
{
private:
std
::
string
_fileName
;
/*!< @rief Name of the current file without extension */
std
::
string
_fileName
;
/*!< @
b
rief Name of the current file without extension */
bool
_baseConfig
;
// int _commRank, _commSize; /*!< @brief MPI rank and size.*/ // Not yet used!!
...
...
code/include/common/globalconstants.h
View file @
89068dc9
/*!
* \file
G
lobal
C
onstants.h
* \file
g
lobal
c
onstants.h
* \brief All global defined (physical) constants, enums etc
* \author <blank>
* \version 0.0
...
...
code/include/common/io.h
View file @
89068dc9
...
...
@@ -10,10 +10,10 @@ class Config;
class
Mesh
;
/*! @brief Function to export solver Volume output to VTK file.
* @param file
n
ame
:
Filename of output file
* @param outputFields
:
numerical output of the solver. Dimensions: (OutputGroupSize, OutputFieldSize, NumberMeshCells)
* @param outputFieldNames
:
names of the outputfields. Dimensions: (OutputGroupSize, OutputFieldSize)
* @param mesh
:
Mesh with
<NumberMeshCells>
cells (the mesh used for the computation)
* @param file
N
ame Filename of output file
* @param outputFields numerical output of the solver. Dimensions: (OutputGroupSize, OutputFieldSize, NumberMeshCells)
* @param outputFieldNames names of the outputfields. Dimensions: (OutputGroupSize, OutputFieldSize)
* @param mesh Mesh with cells (the mesh used for the computation)
*/
void
ExportVTK
(
const
std
::
string
fileName
,
const
std
::
vector
<
std
::
vector
<
std
::
vector
<
double
>>>&
outputFields
,
...
...
code/include/common/mesh.h
View file @
89068dc9
...
...
@@ -18,23 +18,23 @@
class
Mesh
{
protected:
const
unsigned
_dim
;
/*!< @brief spatial dimension of the mesh, i.e. 1D,2D,3D */
const
unsigned
_numCells
;
/*!< @brief number of cells in the mesh */
const
unsigned
_numNodes
;
/*!< @brief number of nodes in the mesh (for node centered view)*/
const
unsigned
_dim
;
/*!< @brief spatial dimension of the mesh, i.e. 1D,2D,3D */
const
unsigned
_numCells
;
/*!< @brief number of cells in the mesh */
const
unsigned
_numNodes
;
/*!< @brief number of nodes in the mesh (for node centered view)*/
const
unsigned
_numNodesPerCell
;
/*!< @brief number of nodes per cell */
const
unsigned
_numBoundaries
;
/*!< @brief number of boundary cells in the mesh */
const
unsigned
_numBoundaries
;
/*!< @brief number of boundary cells in the mesh */
const
unsigned
_ghostCellID
;
/*!< @brief Id of the ghost cell. (we use only one ghost cell). equal to _numCells and therefore has the ID of the
last cell + 1 */
unsigned
_numNodesPerBoundary
;
std
::
vector
<
std
::
pair
<
double
,
double
>>
_bounds
;
// ???
std
::
vector
<
Vector
>
_nodes
;
/*!< @brief nodes in the mesh. dimension:_numNodes<_dim> */
std
::
vector
<
Vector
>
_nodes
;
/*!< @brief nodes in the mesh. dimension:_numNodes<_dim> */
std
::
vector
<
std
::
vector
<
unsigned
>>
_cells
;
/*!< @brief cells in the mesh. dimension:_numCells<_numNodesPerCell> */
/*! @brief boundary cells in the mesh. Pair defines boundary type of the boundary nodes of the cell. numBoundaries<(1,numBoundaryNodes)>*/
std
::
vector
<
std
::
pair
<
BOUNDARY_TYPE
,
std
::
vector
<
unsigned
>>>
_boundaries
;
std
::
vector
<
double
>
_cellAreas
;
/*!< @brief cell areas of the mesh. dimension: numCells*/
std
::
vector
<
Vector
>
_cellMidPoints
;
/*!< @brief cell midpoints of the mesh. dimension: numCells<dim>*/
std
::
vector
<
double
>
_cellAreas
;
/*!< @brief cell areas of the mesh. dimension: numCells*/
std
::
vector
<
Vector
>
_cellMidPoints
;
/*!< @brief cell midpoints of the mesh. dimension: numCells<dim>*/
std
::
vector
<
std
::
vector
<
unsigned
>>
_cellNeighbors
;
/*!< @brief neighbors of each cell. dimension: numCells<numNodesPerCell>*/
/*! @brief outward facing normals of each side of each cell. dimension: numCells<numNodesPerCell<dim>>, all
...
...
@@ -42,13 +42,13 @@ class Mesh
std
::
vector
<
std
::
vector
<
Vector
>>
_cellNormals
;
/*! @brief Tags each cell with its boundary type. None means no boundary. dimension: numCells */
std
::
vector
<
BOUNDARY_TYPE
>
_cellBoundaryTypes
;
std
::
vector
<
unsigned
>
_colors
;
/*!< @brief Color of each cell (for MPI mesh partitioning). dimension: numCells */
std
::
vector
<
unsigned
>
_colors
;
/*!< @brief Color of each cell (for MPI mesh partitioning). dimension: numCells */
blaze
::
CompressedMatrix
<
bool
>
_nodeNeighbors
;
/*!< @brief neighborshood relationship of nodes for (par-)metis */
void
ComputeCellAreas
();
/*!< @brief Computes only the areas of the mesh cells. Write to _cellAreas. */
void
ComputeCellAreas
();
/*!< @brief Computes only the areas of the mesh cells. Write to _cellAreas. */
void
ComputeCellMidpoints
();
/*!< @brief Compute only the midpoints of the cells. Write to _cellMidPoints*/
void
ComputeConnectivity
();
/*!< @brief Computes _cellNeighbors and _nodeNeighbors, i.e. neighborship relation in mesh*/
void
ComputePartitioning
();
/*!< @brief Computes local partitioning for openMP */
void
ComputeConnectivity
();
/*!< @brief Computes _cellNeighbors and _nodeNeighbors, i.e. neighborship relation in mesh*/
void
ComputePartitioning
();
/*!< @brief Computes local partitioning for openMP */
/*! @brief Computes outward facing normal of two neighboring nodes nodeA and nodeB with common cellCellcenter.
* Normals are scaled with their respective edge length
...
...
code/include/common/optionstructure.h
View file @
89068dc9
/*!
* \file OptionStructure.h
* \brief Classes for different Options in rtsn
* \author S. Schotthoefer
*
* Disclaimer: This class structure was copied and modifed with open source permission from SU2 v7.0.3 https://su2code.github.io/
* \file optionstructure.h
* \brief Classes for different Options in KiT-RT
*/
#ifndef OPTION_STRUCTURE_H
...
...
@@ -38,8 +35,8 @@ class OptionBase
class
OptionDouble
:
public
OptionBase
{
double
&
_field
;
/*!< @brief Reference to the double field value */
double
_def
;
/*!< @brief Default value */
double
&
_field
;
/*!< @brief Reference to the double field value */
double
_def
;
/*!< @brief Default value */
std
::
string
_name
;
/*!< @brief String identifier for the option */
public:
...
...
@@ -55,8 +52,8 @@ class OptionDouble : public OptionBase
class
OptionString
:
public
OptionBase
{
std
::
string
&
_field
;
/*!< @brief Reference to the string field value */
std
::
string
_def
;
/*!< @brief Default value */
std
::
string
_name
;
/*!< @brief string identifier for the option */
std
::
string
_def
;
/*!< @brief Default value */
std
::
string
_name
;
/*!< @brief string identifier for the option */
public:
OptionString
(
std
::
string
option_field_name
,
std
::
string
&
option_field
,
std
::
string
default_value
);
...
...
@@ -70,8 +67,8 @@ class OptionString : public OptionBase
class
OptionInt
:
public
OptionBase
{
int
&
_field
;
/*!< @brief Reference to the int field value */
int
_def
;
/*!< @brief Default value */
int
&
_field
;
/*!< @brief Reference to the int field value */
int
_def
;
/*!< @brief Default value */
std
::
string
_name
;
/*!< @brief string identifier for the option */
public:
...
...
@@ -87,8 +84,8 @@ class OptionInt : public OptionBase
class
OptionULong
:
public
OptionBase
{
unsigned
long
&
_field
;
/*!< @brief Reference to the unsigned long field value */
unsigned
long
_def
;
/*!< @brief Default value */
std
::
string
_name
;
/*!< @brief string identifier for the option */
unsigned
long
_def
;
/*!< @brief Default value */
std
::
string
_name
;
/*!< @brief string identifier for the option */
public:
OptionULong
(
std
::
string
option_field_name
,
unsigned
long
&
option_field
,
unsigned
long
default_value
);
...
...
@@ -103,8 +100,8 @@ class OptionULong : public OptionBase
class
OptionUShort
:
public
OptionBase
{
unsigned
short
&
_field
;
/*!< @brief Reference to the unsigned short field value */
unsigned
short
_def
;
/*!< @brief Default value */
std
::
string
_name
;
/*!< @brief string identifier for the option */
unsigned
short
_def
;
/*!< @brief Default value */
std
::
string
_name
;
/*!< @brief string identifier for the option */
public:
OptionUShort
(
std
::
string
option_field_name
,
unsigned
short
&
option_field
,
unsigned
short
default_value
);
...
...
@@ -118,8 +115,8 @@ class OptionUShort : public OptionBase
class
OptionLong
:
public
OptionBase
{
long
&
_field
;
/*!< @brief Reference to the long field value */
long
_def
;
/*!< @brief Default value */
long
&
_field
;
/*!< @brief Reference to the long field value */
long
_def
;
/*!< @brief Default value */
std
::
string
_name
;
/*!< @brief string identifier for the option */
public:
...
...
@@ -134,8 +131,8 @@ class OptionLong : public OptionBase
class
OptionBool
:
public
OptionBase
{
bool
&
_field
;
/*!< @brief Reference to the bool field value */
bool
_def
;
/*!< @brief Default value */
bool
&
_field
;
/*!< @brief Reference to the bool field value */
bool
_def
;
/*!< @brief Default value */
std
::
string
_name
;
/*!< @brief string identifier for the option */
public:
...
...
@@ -151,8 +148,8 @@ class OptionBool : public OptionBase
class
OptionStringList
:
public
OptionBase
{
std
::
vector
<
std
::
string
>&
_field
;
/*!< @brief Reference to the string list field value. no default value */
std
::
string
_name
;
/*!< @brief string identifier for the option */
unsigned
short
&
_size
;
/*!< @brief Size of string list */
std
::
string
_name
;
/*!< @brief string identifier for the option */
unsigned
short
&
_size
;
/*!< @brief Size of string list */
public:
OptionStringList
(
std
::
string
option_field_name
,
unsigned
short
&
list_size
,
std
::
vector
<
std
::
string
>&
option_field
);
...
...
@@ -170,9 +167,9 @@ template <class Tenum> class OptionEnum : public OptionBase
{
std
::
map
<
std
::
string
,
Tenum
>
_map
;
/*!< @brief Map <String name of the option in cfg file, enum field name of cpp framework> */
Tenum
&
_field
;
/*!< @brief Reference to the enum fieldname */
Tenum
_def
;
/*!< @brief Default value */
std
::
string
_name
;
/*!< @brief string identifier for the option */
Tenum
&
_field
;
/*!< @brief Reference to the enum fieldname */
Tenum
_def
;
/*!< @brief Default value */
std
::
string
_name
;
/*!< @brief string identifier for the option */
public:
OptionEnum
(
std
::
string
option_field_name
,
const
std
::
map
<
std
::
string
,
Tenum
>
m
,
Tenum
&
option_field
,
Tenum
default_value
)
...
...
@@ -213,9 +210,9 @@ template <class Tenum> class OptionEnumList : public OptionBase
{
std
::
map
<
std
::
string
,
Tenum
>
_map
;
/*!< @brief Map <String name of the option in cfg file, enum field name of cpp framework> */
std
::
vector
<
Tenum
>&
_field
;
/*!< @brief Reference to the enum list fieldname. No default value */
std
::
string
_name
;
/*!< @brief string identifier for the option */
unsigned
short
&
_size
;
/*!< @brief Size of enum list */
std
::
vector
<
Tenum
>&
_field
;
/*!< @brief Reference to the enum list fieldname. No default value */
std
::
string
_name
;
/*!< @brief string identifier for the option */
unsigned
short
&
_size
;
/*!< @brief Size of enum list */
public:
OptionEnumList
(
std
::
string
option_field_name
,
const
std
::
map
<
std
::
string
,
Tenum
>
m
,
std
::
vector
<
Tenum
>&
option_field
,
unsigned
short
&
list_size
)
...
...
code/include/fluxes/numericalflux.h
View file @
89068dc9
...
...
@@ -20,19 +20,19 @@ class NumericalFlux
virtual
double
Flux
(
const
Vector
&
Omega
,
double
psiL
,
double
psiR
,
const
Vector
&
n
)
const
=
0
;
/**
* @brief Flux
:
Computes
<
Steger Warming
>
upwinding scheme for given flux jacobians of the PN Solver at a given edge and stores it in
*
resultFlux
* @param AxPlus
:
Positive part of the flux jacobian in x direction
* @param AxMinus
:
Negative part of the flux jacobian in x direction
* @param AyPlus
:
Positive part of the flux jacobian in y direction
* @param AyMinus
:
Negative part of the flux jacobian in y direction
* @param AzPlus
:
Positive part of the flux jacobian in z direction
* @param AzMinus
:
Negative part of the flux jacobian in z direction
* @param psiL
:
Solution state of left hand side control volume
* @param psiR
:
Solution state of right hand side control volume
* @param n
:
Normal vector at the edge between left and right control volume
* @param resultFlux
:
Vector with resulting flux.
* @return
:
void
* @brief Flux Computes
"
Steger Warming
"
upwinding scheme for given flux jacobians of the PN Solver at a given edge and stores it in
* resultFlux
* @param AxPlus Positive part of the flux jacobian in x direction
* @param AxMinus Negative part of the flux jacobian in x direction
* @param AyPlus Positive part of the flux jacobian in y direction
* @param AyMinus Negative part of the flux jacobian in y direction
* @param AzPlus Positive part of the flux jacobian in z direction
* @param AzMinus Negative part of the flux jacobian in z direction
* @param psiL Solution state of left hand side control volume
* @param psiR Solution state of right hand side control volume
* @param n Normal vector at the edge between left and right control volume
* @param resultFlux Vector with resulting flux.
* @return void
*/
virtual
Vector
Flux
(
const
Matrix
AxPlus
,
const
Matrix
AxMinus
,
...
...
code/include/fluxes/upwindflux.h
View file @
89068dc9
...
...
@@ -23,19 +23,19 @@ class UpwindFlux : public NumericalFlux
double
Flux
(
const
Vector
&
Omega
,
double
psiL
,
double
psiR
,
const
Vector
&
n
)
const
override
;
/**
* @brief Flux
:
Computes
<
Steger Warming
>
upwinding scheme for given flux jacobians of the PN Solver at a given edge and stores it in
*
resultFlux
* @param AxPlus
:
Positive part of the flux jacobian in x direction
* @param AxMinus
:
Negative part of the flux jacobian in x direction
* @param AyPlus
:
Positive part of the flux jacobian in y direction
* @param AyMinus
:
Negative part of the flux jacobian in y direction
* @param AzPlus
:
Positive part of the flux jacobian in z direction
* @param AzMinus
:
Negative part of the flux jacobian in z direction
* @param psiL
:
Solution state of left hand side control volume
* @param psiR
:
Solution state of right hand side control volume
* @param n
:
Normal vector at the edge between left and right control volume
* @param resultFlux
:
Vector with resulting flux.
* @return
:
void
* @brief Flux Computes
"
Steger Warming
"
upwinding scheme for given flux jacobians of the PN Solver at a given edge and stores it in
* resultFlux
* @param AxPlus Positive part of the flux jacobian in x direction
* @param AxMinus Negative part of the flux jacobian in x direction
* @param AyPlus Positive part of the flux jacobian in y direction
* @param AyMinus Negative part of the flux jacobian in y direction
* @param AzPlus Positive part of the flux jacobian in z direction
* @param AzMinus Negative part of the flux jacobian in z direction
* @param psiL Solution state of left hand side control volume
* @param psiR Solution state of right hand side control volume
* @param n Normal vector at the edge between left and right control volume
* @param resultFlux Vector with resulting flux.
* @return void
*/
Vector
Flux
(
const
Matrix
AxPlus
,
const
Matrix
AxMinus
,
...
...
@@ -48,19 +48,19 @@ class UpwindFlux : public NumericalFlux
const
Vector
n
)
const
override
;
/**
* @brief Flux
:
Computes
<
VanLeer
>
upwinding scheme for given flux jacobians of the PN Solver at a given edge and stores it in
*
resultFlux
* @param AxPlus
:
Positive part of the flux jacobian in x direction
* @param AxMinus
:
Negative part of the flux jacobian in x direction
* @param AyPlus
:
Positive part of the flux jacobian in y direction
* @param AyMinus
:
Negative part of the flux jacobian in y direction
* @param AzPlus
:
Positive part of the flux jacobian in z direction
* @param AzMinus
:
Negative part of the flux jacobian in z direction
* @param psiL
:
Solution state of left hand side control volume
* @param psiR
:
Solution state of right hand side control volume
* @param n
:
Normal vector at the edge between left and right control volume
* @param resultFlux
:
Vector with resulting flux.
* @return
:
void
* @brief Flux Computes
"
VanLeer
"
upwinding scheme for given flux jacobians of the PN Solver at a given edge and stores it in
* resultFlux
* @param AxPlus Positive part of the flux jacobian in x direction
* @param AxMinus Negative part of the flux jacobian in x direction
* @param AyPlus Positive part of the flux jacobian in y direction
* @param AyMinus Negative part of the flux jacobian in y direction
* @param AzPlus Positive part of the flux jacobian in z direction
* @param AzMinus Negative part of the flux jacobian in z direction
* @param psiL Solution state of left hand side control volume
* @param psiR Solution state of right hand side control volume
* @param n Normal vector at the edge between left and right control volume
* @param resultFlux Vector with resulting flux.
* @return void
*/
void
FluxVanLeer
(
const
Matrix
&
Ax
,
const
Matrix
&
AxAbs
,
...
...
code/include/optimizers/newtonoptimizer.h
View file @
89068dc9
...
...
@@ -35,12 +35,12 @@ class NewtonOptimizer : public OptimizerBase
void
ComputeHessian
(
Vector
&
alpha
,
const
VectorVector
&
moments
,
Matrix
&
hessian
);
QuadratureBase
*
_quadrature
;
/*!< @brief used quadrature */
// THis is memory doubling! Try to use a pointer.
unsigned
_nq
;
/*!< @brief number of quadrature points */
Vector
_weights
;
/*!< @brief quadrature weights, dim(_weights) = (_nq) */
unsigned
_nq
;
/*!< @brief number of quadrature points */
Vector
_weights
;
/*!< @brief quadrature weights, dim(_weights) = (_nq) */
double
_epsilon
;
/*!< @brief Termination criterion for newton optimizer */
unsigned
short
_maxIterations
;
/*!< @brief Max iterations of the newton solver */
double
_alpha
;
/*!< @brief Newton Step Size */
double
_epsilon
;
/*!< @brief Termination criterion for newton optimizer */
unsigned
short
_maxIterations
;
/*!< @brief Max iterations of the newton solver */
double
_alpha
;
/*!< @brief Newton Step Size */
unsigned
short
_maxLineSearches
;
/*!< @brief Max amount of line searches for Newton Algo */
};
...
...
code/include/problems/checkerboard.h
View file @
89068dc9
...
...
@@ -7,33 +7,33 @@ class Checkerboard_SN : public ProblemBase
{
private:
Vector
_scatteringXS
;
/*!< @brief Vector of scattering crosssections */
Vector
_totalXS
;
/*!< @brief Vector of total crosssections */
Vector
_totalXS
;
/*!< @brief Vector of total crosssections */
Checkerboard_SN
()
=
delete
;
bool
isAbsorption
(
const
Vector
&
pos
)
const
;
/*!< @return True if pos is in absorption region, False otherwise */
bool
isSource
(
const
Vector
&
pos
)
const
;
/*!< @return True if pos is in source region, False otherwise */
bool
isSource
(
const
Vector
&
pos
)
const
;
/*!< @return True if pos is in source region, False otherwise */
public:
Checkerboard_SN
(
Config
*
settings
,
Mesh
*
mesh
);
virtual
~
Checkerboard_SN
();
virtual
VectorVector
GetScatteringXS
(
const
Vector
&
energies
);
virtual
VectorVector
GetTotalXS
(
const
Vector
&
energies
);
virtual
std
::
vector
<
VectorVector
>
GetExternalSource
(
const
Vector
&
energies
);
virtual
VectorVector
SetupIC
();
virtual
VectorVector
GetScatteringXS
(
const
Vector
&
energies
)
override
;
virtual
VectorVector
GetTotalXS
(
const
Vector
&
energies
)
override
;
virtual
std
::
vector
<
VectorVector
>
GetExternalSource
(
const
Vector
&
energies
)
override
;
virtual
VectorVector
SetupIC
()
override
;
};
class
Checkerboard_PN
:
public
ProblemBase
{
private:
Vector
_scatteringXS
;
/*!< @brief Vector of scattering crosssections len: numCells */
Vector
_totalXS
;
/*!< @brief Vector of total crosssections. len: numCells*/
Vector
_totalXS
;
/*!< @brief Vector of total crosssections. len: numCells*/
Checkerboard_PN
()
=
delete
;
bool
isAbsorption
(
const
Vector
&
pos
)
const
;
/*!< @return True if pos is in absorption region, False otherwise */
bool
isSource
(
const
Vector
&
pos
)
const
;
/*!< @return True if pos is in source region, False otherwise */
bool
isSource
(
const
Vector
&
pos
)
const
;
/*!< @return True if pos is in source region, False otherwise */
/**
* @brief Gets the global index for given order l of Legendre polynomials and given
...
...
@@ -49,10 +49,10 @@ class Checkerboard_PN : public ProblemBase
Checkerboard_PN
(
Config
*
settings
,
Mesh
*
mesh
);
virtual
~
Checkerboard_PN
();
virtual
VectorVector
GetScatteringXS
(
const
Vector
&
energies
);
virtual
VectorVector
GetTotalXS
(
const
Vector
&
energies
);
virtual
std
::
vector
<
VectorVector
>
GetExternalSource
(
const
Vector
&
energies
);
virtual
VectorVector
SetupIC
();
virtual
VectorVector
GetScatteringXS
(
const
Vector
&
energies
)
override
;
virtual
VectorVector
GetTotalXS
(
const
Vector
&
energies
)
override
;
virtual
std
::
vector
<
VectorVector
>
GetExternalSource
(
const
Vector
&
energies
)
override
;
virtual
VectorVector
SetupIC
()
override
;
};
#endif // CHECKERBOARD_H
code/include/problems/icru.h
View file @
89068dc9
...
...
@@ -66,7 +66,7 @@ class ICRU
double
_R1
;
Vector
_E
,
/*! @brief User queried Energy */
_QMU
;
/*!< @briefUser queried mu */
_QMU
;
/*!< @briefUser queried mu */
std
::
vector
<
double
>
_ET
,
_ETL
;
std
::
vector
<
double
>
_XMU
,
/* angular variable mu of dataset */
...
...
code/include/problems/isotropicsource2d.h
View file @
89068dc9
...
...
@@ -23,5 +23,4 @@ class IsotropicSource2D : public ElectronRT
std
::
vector
<
double
>
GetDensity
(
const
VectorVector
&
cellMidPoints
);
};
#endif // ISOTROPICSOURCE2D_H
#endif // ISOTROPICSOURCE2D_H
code/include/problems/problembase.h
View file @
89068dc9
...
...
@@ -17,7 +17,7 @@ class ProblemBase
Mesh
*
_mesh
;
EPICS
*
_physics
;
std
::
vector
<
double
>
_density
;
/*!< @brief vector with patient densities */
std
::
vector
<
double
>
_density
;
/*!< @brief vector with patient densities */
std
::
vector
<
double
>
_stoppingPower
;
/*!< @brief vector with stopping powers*/
ProblemBase
()
=
delete
;
...
...
code/include/quadratures/qlookupquadrature.h
View file @
89068dc9
...
...
@@ -17,8 +17,8 @@ class QLookupQuadrature : public QuadratureBase
void
printAvailOrders
()
const
;
/*!< @brief prints available orders */
protected:
bool
CheckOrder
();
/*!< @brief checks if given order is available for this quadrature rule. */
void
SetNq
()
override
;
/*!< @brief Assumes, that _order is available in lookup table */
bool
CheckOrder
();
/*!< @brief checks if given order is available for this quadrature rule. */
void
SetNq
()
override
;
/*!< @brief Assumes, that _order is available in lookup table */
void
SetPointsAndWeights
()
override
;
/*!< @brief reads in n_points gridpoints and -weights from given filename. */
virtual
void
SetAvailOrders
()
=
0
;
/*!< @brief Sets vector with avaialbe Orders and corresponding vector with Nq. */
...
...
@@ -26,6 +26,6 @@ class QLookupQuadrature : public QuadratureBase
virtual
std
::
string
GetLookupTable
()
=
0
;
/*!< @brief returns lookuptable of _order. Assumes order is available */
std
::
vector
<
unsigned
>
_availableOrders
;
/*!< @brief Vector with available orders for lookup table */
std
::
vector
<
unsigned
>
_nqByOrder
;
/*!< @brief Vector with number of quadrature points of each listed order */
std
::
vector
<
unsigned
>
_nqByOrder
;
/*!< @brief Vector with number of quadrature points of each listed order */
};
#endif // QLOOKUPQUADRATURE_H
code/include/quadratures/quadraturebase.h
View file @
89068dc9
...
...
@@ -24,8 +24,8 @@ class QuadratureBase
virtual
~
QuadratureBase
()
{}
// Aux functions
void
PrintWeights
();
/*!< @brief prints: Weight vector */
void
PrintPoints
();
/*!< @brief prints: Point vectorVector */
void
PrintWeights
();
/*!< @brief prints: Weight vector */
void
PrintPoints
();
/*!< @brief prints: Point vectorVector */
void
PrintPointsAndWeights
();
/*!< @brief prints: Point vectorVector with corresponding weight vector */
/*! @brief sums up all entries of the weight vector.
...
...
@@ -76,9 +76,9 @@ class QuadratureBase
protected:
// Setter
inline
void
SetOrder
(
unsigned
order
)
{
_order
=
order
;
}
/*! @brief sets: order of the quadrature */
virtual
void
SetName
()
=
0
;
/*!< @brief Sets: name of the quadrature */
virtual
void
SetNq
()
=
0
;
/*!< @brief sets: number of gridpoints of the quadrature */
virtual
void
SetConnectivity
()
=
0
;
/*!< @brief sets: Connectivity Adjacency Matrix as VektorVektor*/
virtual
void
SetName
()
=
0
;
/*!< @brief Sets: name of the quadrature */
virtual
void
SetNq
()
=
0
;
/*!< @brief sets: number of gridpoints of the quadrature */
virtual
void
SetConnectivity
()
=
0
;
/*!< @brief sets: Connectivity Adjacency Matrix as VektorVektor*/
/*! @brief Computes the a vector (length: nq) of (coordinates of) gridpoints used for the quadrature rule.
* Computes the a vector (length: nq) of weights for the gridpoints. The indices match the gridpoints VectorVector.
...
...
@@ -86,13 +86,13 @@ class QuadratureBase
virtual
void
SetPointsAndWeights
()
=
0
;
// Member variables
Config
*
_settings
;
/*!< @brief pointer to settings class that manages the solver */
std
::
string
_name
;
/*!< @brief name of the quadrature */
unsigned
_order
;
/*!< @brief order of the quadrature */
unsigned
_nq
;
/*!< @brief number of gridpoints of the quadrature */
VectorVector
_points
;
/*!< @brief gridpoints of the quadrature */
VectorVector
_pointsSphere
;
/*!< @brief (my,phi)gridpoints of the quadrature in spherical cordinates */
Vector
_weights
;
/*!< @brief weights of the gridpoints of the quadrature */
Config
*
_settings
;
/*!< @brief pointer to settings class that manages the solver */
std
::
string
_name
;
/*!< @brief name of the quadrature */
unsigned
_order
;
/*!< @brief order of the quadrature */
unsigned
_nq
;
/*!< @brief number of gridpoints of the quadrature */
VectorVector
_points
;
/*!< @brief gridpoints of the quadrature */
VectorVector
_pointsSphere
;
/*!< @brief (my,phi)gridpoints of the quadrature in spherical cordinates */
Vector
_weights
;
/*!< @brief weights of the gridpoints of the quadrature */
VectorVectorU
_connectivity
;
/*!< @brief connectivity of the gripoints of the quadrature */
};
...
...
code/include/solvers/csdsnsolver.h
View file @
89068dc9
...
...
@@ -10,10 +10,10 @@ class CSDSNSolver : public SNSolver
// Physics acess
Vector
_energies
;
/*!< @brief energy levels for CSD, lenght = _nEnergies */
Vector
_angle
;
/*!< @brief angles for SN */
Vector
_angle
;
/*!< @brief angles for SN */
std
::
vector
<
Matrix
>
_sigmaSE
;
/*!< @brief scattering cross section for all energies*/
Vector
_sigmaTE
;
/*!< @brief total cross section for all energies*/
Vector
_sigmaTE
;
/*!< @brief total cross section for all energies*/
public:
/**
...
...
code/include/solvers/csdsnsolverfp.h
View file @
89068dc9
...
...
@@ -12,16 +12,16 @@ class CSDSNSolverFP : public SNSolver
// Physics acess
Vector
_energies
;
/*!< @brief energy levels for CSD, length = _nEnergies */
Vector
_angle
;
/*!< @brief angles for SN */
Vector
_angle
;
/*!< @brief angles for SN */
std
::
vector
<
Matrix
>
_sigmaSE
;
/*!< @brief scattering cross section for all energies*/
Vector
_sigmaTE
;
/*!< @brief total cross section for all energies*/
Vector
_sigmaTE
;
/*!< @brief total cross section for all energies*/
Matrix
_L
;
/*!< @brief Laplace Beltrami Matrix */
Matrix
_L
;
/*!< @brief Laplace Beltrami Matrix */
Matrix
_IL
;
/*!< @brief Laplace Beltrami Matrix */
double
_alpha
;
/*!< @brief Coefficient of GFP operators (see Olbrant 2010, eq. (8)*/
double
_beta
;
/*!< @brief Coefficient of GFP operators (see Olbrant 2010, eq. (8)*/
double
_beta
;
/*!< @brief Coefficient of GFP operators (see Olbrant 2010, eq. (8)*/
Matrix
_xi
;
/*!< @brief matrix of transport coefficients */
...
...
code/include/solvers/csdsnsolvernotrafo.h
View file @
89068dc9
...
...
@@ -12,10 +12,10 @@ class CSDSNSolverNoTrafo : public SNSolver
// Physics acess
Vector
_energies
;
/*!< @brief energy levels for CSD, lenght = _nEnergies */
Vector
_angle
;
/*!< @brief angles for SN */
Vector
_angle
;
/*!< @brief angles for SN */
std
::
vector
<
Matrix
>
_sigmaSE
;
/*!< @brief scattering cross section for all energies*/
Vector
_sigmaTE
;
/*!< @brief total cross section for all energies*/
Vector
_sigmaTE
;
/*!< @brief total cross section for all energies*/
public:
/**
...
...
code/include/solvers/csdsolvertrafofp.h
View file @
89068dc9
...
...
@@ -12,24 +12,24 @@ class CSDSolverTrafoFP : public SNSolver
// Physics acess
Vector
_energies
;
/*!< @brief energy levels for CSD, lenght = _nEnergies */
Vector
_angle
;
/*!< @brief angles for SN */
Vector
_angle
;
/*!< @brief angles for SN */
std
::
vector
<
Matrix
>
_sigmaSE
;
/*!< @brief scattering cross section for all energies*/
Vector
_sigmaTE
;
/*!< @brief total cross section for all energies*/
Vector
_sigmaTE
;
/*!< @brief total cross section for all energies*/
Matrix
_L
;
/*!< @brief Laplace Beltrami Matrix */
Matrix
_L
;
/*!< @brief Laplace Beltrami Matrix */
Matrix
_IL
;
/*!< @brief Laplace Beltrami Matrix */
double
_alpha
;
/*!< @brief Coefficient of GFP operators (see Olbrant 2010, Appendix B)*/
double
_alpha
;
/*!< @brief Coefficient of GFP operators (see Olbrant 2010, Appendix B)*/
double
_alpha2
;
/*!< @brief Coefficient of GFP operators (see Olbrant 2010, Appendix B)*/
double
_beta
;
/*!< @brief Coefficient of GFP operators (see Olbrant 2010, Appendix B)*/
double
_beta
;
/*!< @brief Coefficient of GFP operators (see Olbrant 2010, Appendix B)*/
Matrix
_xi
;
/*!< @brief matrix of transport coefficients */
Vector
_xi1
;
Vector
_xi2
;
unsigned
_FPMethod
;
/*!< @brief Encodes different ways of computing coefficients alpha, alpha2 & beta, _FPMethod == 1, 2 ,3 stand for methods
with
increasing accuracy (see Olbrant 2010, Appendix B)*/
unsigned
_FPMethod
;
/*!< @brief Encodes different ways of computing coefficients alpha, alpha2 & beta, _FPMethod == 1, 2 ,3 stand for methods
with
increasing accuracy (see Olbrant 2010, Appendix B)*/
bool
_RT
;
/*!< @brief radiotherapy application (on/off), if true use crosssections + stopping powers from database */
...
...
@@ -40,7 +40,7 @@ class CSDSolverTrafoFP : public SNSolver
// Helper variables
Vector
_energiesOrig
;
/*!< @brief original energy levels for CSD, lenght = _nEnergies */
Matrix
_identity
;
/*!< @brif: identity matrix for FP scattering. Dim (_nq,_nq)*/
Matrix
_identity
;
/*!< @bri
e
f: identity matrix for FP scattering. Dim (_nq,_nq)*/
public:
/**
...
...
code/include/solvers/csdsolvertrafofp2d.h
View file @
89068dc9
...
...
@@ -12,12 +12,12 @@ class CSDSolverTrafoFP2D : public SNSolver
// Physics acess
Vector
_energies
;
/*!< @brief energy levels for CSD, lenght = _nEnergies */
Vector
_angle
;
/*!< @brief angles for SN */
Vector
_angle
;
/*!< @brief angles for SN */
std
::
vector
<
Matrix
>
_sigmaSE
;
/*!< @brief scattering cross section for all energies*/
Vector
_sigmaTE
;
/*!< @brief total cross section for all energies*/
Vector
_sigmaTE
;
/*!< @brief total cross section for all energies*/
Matrix
_L
;
/*!< @brief Laplace Beltrami Matrix */
Matrix
_L
;
/*!< @brief Laplace Beltrami Matrix */
Matrix
_IL
;
/*!< @brief Laplace Beltrami Matrix */
VectorVector
_quadPoints
;
...
...
@@ -45,8 +45,8 @@ class CSDSolverTrafoFP2D : public SNSolver
// Helper variables
Vector
_energiesOrig
;
/*!< @brief original energy levels for CSD, lenght = _nEnergies */
Matrix
_identity
;
/*!< @brif: identity matrix for FP scattering. Dim (_nq,_nq)*/
double
_densityMin
;
/*!< @brief Minimal density of _density vector */
Matrix
_identity
;
/*!< @bri
e
f: identity matrix for FP scattering. Dim (_nq,_nq)*/
double
_densityMin
;
/*!< @brief Minimal density of _density vector */
void
GenerateEnergyGrid
(
bool
refinement
);
...
...
code/include/solvers/csdsolvertrafofpsh2d.h
View file @
89068dc9
...
...
@@ -23,12 +23,12 @@ class CSDSolverTrafoFPSH2D : public SNSolver
// Physics acess
Vector
_energies
;
/*!< @brief energy levels for CSD, lenght = _nEnergies */
Vector
_angle
;
/*!< @brief angles for SN */
Vector
_angle
;
/*!< @brief angles for SN */
std
::
vector
<
Matrix
>
_sigmaSE
;
/*!< @brief scattering cross section for all energies*/
Vector
_sigmaTE
;
/*!< @brief total cross section for all energies*/