-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathdistributionssolid.h
39 lines (26 loc) · 1.63 KB
/
distributionssolid.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#ifndef RPLIB_DISTRIBUTIONS_SOLID_H
#define RPLIB_DISTRIBUTIONS_SOLID_H
#include "rplib/solid.h"
// Abstract class for holding all t = 0 distribution functions for solid parameters.
// One derived class for each solid model, the latter specified in a parallel, derived Solid class.
// The class must be able to produce an object of the specific Solid class.
class DistributionsSolid {
public:
DistributionsSolid(){}
virtual ~DistributionsSolid(){}
virtual DistributionsSolid * Clone() const = 0;
virtual Solid * GenerateSample(const std::vector<double> & /*trend_params*/) = 0;
std::vector< Solid* > GenerateWellSample(const std::vector<double> & trend_params,
double corr);
virtual bool HasDistribution() const = 0;
virtual std::vector<bool> HasTrend() const = 0;
Solid * EvolveSample(double time,
const Solid & solid);
virtual Solid * UpdateSample(double corr_param,
bool param_is_time,
const std::vector<double> & trend,
const Solid * sample) = 0;
protected:
std::vector< double > alpha_;
};
#endif