root/include/io_parameter.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /*! \file io_parameter.h
   2     \brief Initialize dune parameter facilities
   3 
   4      Revision history
   5      --------------------------------------------------
   6 
   7           Revised by Christian Power July 2016
   8           Originally written by Christian Power
   9                (power22c@gmail.com) Januar 2016
  10 
  11      This programm implements a basic expression calculator.
  12      Input from cin; output to cout.  The grammar for input is: etc.
  13 
  14      \author Christian Power 
  15      \date 13. July 2016
  16      \copyright Copyright (c) 2016 Christian Power.  All rights reserved.
  17  */
  18 
  19 #ifndef IO_PARAMETER_H
  20 #define IO_PARAMETER_H 
  21 
  22 #include <string>
  23 #include <vector>
  24 #include <memory>
  25 #include "esfem_fwd.h"
  26 
  27 namespace Esfem{
  28   namespace Io{
  29     class Parameter{
  30     public:
  31       explicit Parameter(int argc, char** argv, const std::string& parameter_file_name);
  32       ~Parameter();
  33       Parameter(const Parameter&) = delete;
  34       Parameter& operator=(const Parameter&) = delete;
  35 
  36       /*! \name File names*/
  37       //@{
  38       const std::string& grid() const noexcept;
  39       const std::string& error_log() const noexcept;
  40       const std::string& paraview() const noexcept;
  41       //@}
  42 
  43       /*! \name Time control*/
  44       //@{
  45       double start_time() const noexcept;
  46       double global_timeStep() const noexcept;
  47       //@}
  48       
  49       /*! \name Flow control parameter */
  50       //@{
  51       long max_timeSteps() const; 
  52       long prePattern_timeSteps() const;
  53       long pattern_timeSteps() const; 
  54       //@}
  55 
  56       //! Step size of the last step
  57       /*! If this is smaller then eps(), you should do nothing. */
  58       double last_step() const;
  59       
  60       double eps() const noexcept;
  61       /*!< \brief Generic precision */
  62 
  63       /*! \name BDF coefficients */
  64       //@{
  65       const std::vector<double>& bdf_alphas() const noexcept;
  66       const std::vector<double>& bdf_gammas() const noexcept;
  67       //@}
  68 
  69       /*! \name Tumor growth PDE data */
  70       //@{
  71       double tg_a() const noexcept;
  72       double tg_b() const noexcept;
  73       double tg_Dc() const noexcept;
  74       double tg_gamma() const noexcept;
  75       double velocity_regularization() const noexcept;
  76       double surface_growthFactor() const noexcept;
  77       double mcf_regularization() const noexcept;
  78       //@}
  79 
  80       /*! \name Tumor growth initial data */
  81       //@{
  82       double u_hom_value() const noexcept;
  83       double w_hom_value() const noexcept;
  84       double u_pertubation() const noexcept;
  85       double w_pertubation() const noexcept;
  86       const std::string& u_init_dof() const noexcept;
  87       /*!< \brief File name for backup of initial nodal values */
  88       const std::string& w_init_dof() const noexcept;
  89       /*!< \brief File name for backup of initial nodal values */
  90       //@}
  91       
  92       friend std::ostream& operator<<(std::ostream&, const Parameter&);
  93       /*! \brief Prints out all data members. */
  94     private:
  95       struct Data;
  96       std::unique_ptr<Data> d_ptr;
  97     };
  98   }
  99 }
 100 
 101 #endif // IO_PARAMETER_H

/* [<][>][^][v][top][bottom][index][help] */