Newer
Older
// 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;
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
};
}