csdsolvertrafofp.h 1.26 KB
Newer Older
jonas.kusch's avatar
jonas.kusch committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef CSDSOLVERTRAFOFP_H
#define CSDSOLVERTRAFOFP_H

#include "icru.h"
#include "solvers/snsolver.h"

class Physics;

class CSDSolverTrafoFP : public SNSolver
{
  private:
    std::vector<double> _dose; /*! @brief: TODO */

    // Physics acess
    Vector _energies; /*! @brief: energy levels for CSD, lenght = _nEnergies */
    Vector _density;  /*! @brief: patient density for each grid cell */

    std::vector<Matrix> _sigmaSE; /*!  @brief scattering cross section for all energies*/
    Vector _sigmaTE;              /*!  @brief total cross section for all energies*/

jonas.kusch's avatar
jonas.kusch committed
21
    Matrix _L;  /*!  @brief Laplace Beltrami Matrix */
jonas.kusch's avatar
jonas.kusch committed
22
23
24
    Matrix _IL; /*!  @brief Laplace Beltrami Matrix */

    double _alpha;
jonas.kusch's avatar
jonas.kusch committed
25
    double _alpha2;
jonas.kusch's avatar
jonas.kusch committed
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
    double _beta;

    Vector _xi1;
    Vector _xi2;
    Matrix _xi;

    bool _RT;

    double _energyMin;
    double _energyMax;

  public:
    /**
     * @brief CSDSolverTrafoFP constructor
     * @param settings stores all needed information
     */
    CSDSolverTrafoFP( Config* settings );
    /**
     * @brief Solve functions runs main time loop
     */
    virtual void Solve();
    /**
     * @brief Output solution to VTK file
     */
    virtual void Save() const;
    virtual void Save( int currEnergy ) const;
};

jonas.kusch's avatar
jonas.kusch committed
54
#endif    // CSDSOLVERTRAFOFP_H