Skip to content
Snippets Groups Projects
AbstractParam.h 790 B
Newer Older
  • Learn to ignore specific revisions
  • Radim Vavřík's avatar
    Radim Vavřík committed
    // AbstractParam.h
    #pragma once
    #include <memory>
    
    #include "AbstractRandom.h"
    #include "MatData.h"
    #include "Limit.h"
    
    
    namespace math1d_cl
    {
    	class AbstractParam
    	{
    		public:
    			AbstractParam(std::shared_ptr<AbstractRandom> random, UncertainityOptions options, std::shared_ptr<MatData> matData);
    			virtual void setParam(MatData &matData) = 0;
    
    			virtual void generateValues(size_t numValues) = 0;
    
    Radim Vavřík's avatar
    Radim Vavřík committed
    
    		protected:
    			double keepLimits(double value, Limit limit);
    
    			/* Members */
    			std::shared_ptr<AbstractRandom> m_random; // Implementation of AbstractRandom for randomizing
    			UncertainityOptions m_options; // Uncertaintiy options
    			size_t m_currentIterationNumber; // Stores which iteration is now running
    
    			/* MPI Specific member */
    			const int m_tag = 100; // MPI comm tag
    	};
    }