25 #ifndef UQ_GPMSA_HELPER_H
26 #define UQ_GPMSA_HELPER_H
30 #include <queso/Environment.h>
31 #include <queso/ScalarFunction.h>
32 #include <queso/VectorSpace.h>
33 #include <queso/VectorRV.h>
34 #include <queso/ConcatenatedVectorRV.h>
35 #include <queso/GammaVectorRV.h>
36 #include <queso/BetaVectorRV.h>
37 #include <queso/UniformVectorRV.h>
38 #include <queso/GPMSAOptions.h>
45 template <
class V = GslVector,
class M = GslMatrix>
66 virtual double lnValue(
const V & domainVector,
67 const V * domainDirection,
70 V * hessianEffect)
const;
73 const V * domainDirection,
76 V * hessianEffect)
const;
98 template <
class V = GslVector,
class M = GslMatrix>
224 V & simulationParameter,
225 V & simulationOutput);
233 const std::vector<V *> & simulationParameters,
234 const std::vector<V *> & simulationOutputs);
247 const std::vector<V *> & experimentOutputs,
248 const M * experimentErrors);
252 void print(std::ostream& os)
const;
336 std::vector<const BaseVectorRV<V, M> *>
priors;
369 #endif // UQ_GPMSA_HELPER_H
const std::vector< V * > & experimentOutputs() const
Return all points in experimentOutputSpace for all experiments.
const M & m_experimentErrors
BoxSubset< V, M > * emulatorPrecisionDomain
VectorSpace< V, M > * totalSpace
GammaVectorRV< V, M > * m_emulatorPrecision
ConcatenatedVectorRV< V, M > * m_totalPrior
This class defines the options that specify the behaviour of the Gaussian process emulator...
GPMSAEmulator(const VectorSet< V, M > &domain, const VectorSpace< V, M > &m_scenarioSpace, const VectorSpace< V, M > &m_parameterSpace, const VectorSpace< V, M > &m_simulationOutputSpace, const VectorSpace< V, M > &m_experimentOutputSpace, const unsigned int m_numSimulations, const unsigned int m_numExperiments, const std::vector< V * > &m_simulationScenarios, const std::vector< V * > &m_simulationParameters, const std::vector< V * > &m_simulationOutputs, const std::vector< V * > &m_experimentScenarios, const std::vector< V * > &m_experimentOutputs, const M &m_experimentErrors, const ConcatenatedVectorRV< V, M > &m_totalPrior)
void addExperiments(const std::vector< V * > &experimentScenarios, const std::vector< V * > &experimentOutputs, const M *experimentErrors)
Add all experiments to this.
const V & experimentScenario(unsigned int experimentId) const
Return the point in scenarioSpace for experiment experimentId.
unsigned int m_numExperiments
GPMSAEmulator< V, M > * gpmsaEmulator
VectorSpace< V, M > * oneDSpace
friend std::ostream & operator<<(std::ostream &os, const GPMSAFactory< V, M > &obj)
A templated class for handling sets.
UniformVectorRV< V, M > * m_emulatorMean
const VectorSpace< V, M > & simulationOutputSpace() const
Return the vector space in which simulations live.
const std::vector< V * > & m_simulationParameters
const VectorSpace< V, M > & parameterSpace() const
Return the vector space in which parameters live.
V * m_emulatorPrecisionShapeVec
const VectorSpace< V, M > & m_simulationOutputSpace
A templated base class for handling vector RV.
GPMSAFactory(const BaseEnvironment &env, GPMSAOptions *opts, const BaseVectorRV< V, M > ¶meterPrior, const VectorSpace< V, M > &scenarioSpace, const VectorSpace< V, M > ¶meterSpace, const VectorSpace< V, M > &simulationOutputSpace, const VectorSpace< V, M > &experimentOutputSpace, unsigned int numSimulations, unsigned int numExperiments)
Constructor.
VectorSpace< V, M > * discrepancyCorrelationSpace
const V & simulationScenario(unsigned int simulationId) const
Return the point in scenarioSpace for simulation simulationId.
V * discrepancyCorrelationMin
const BaseEnvironment & m_env
const VectorSpace< V, M > & m_experimentOutputSpace
const std::vector< V * > & m_experimentOutputs
~GPMSAFactory()
Destructor.
const std::vector< V * > & simulationParameters() const
Return all points in parameterSpace for all simulations.
V * m_discrepancyCorrelationStrengthAlphaVec
const unsigned int m_numExperiments
virtual double actualValue(const V &domainVector, const V *domainDirection, V *gradVector, M *hessianMatrix, V *hessianEffect) const
Actual value of the scalar function.
GammaVectorRV< V, M > * m_discrepancyPrecision
const VectorSpace< V, M > & scenarioSpace() const
Return the vector space in which scenarios live.
V * emulatorDataPrecisionMin
V * discrepancyPrecisionMax
V * m_discrepancyPrecisionShapeVec
A class representing a vector RV constructed via Beta distribution.
std::vector< V * > m_simulationOutputs
const BaseVectorRV< V, M > & m_parameterPrior
const V & experimentOutput(unsigned int experimentId) const
Return the experiment output for experiment experimentId.
const std::vector< V * > & simulationScenarios() const
Return all points in scenarioSpace for all simulations.
const std::vector< V * > & m_simulationOutputs
A templated (base) class for handling scalar functions.
const M * m_experimentErrors
unsigned int numSimulations() const
Return number of simulations.
void addSimulations(const std::vector< V * > &simulationScenarios, const std::vector< V * > &simulationParameters, const std::vector< V * > &simulationOutputs)
Adds multiple simulations to this.
virtual double lnValue(const V &domainVector, const V *domainDirection, V *gradVector, M *hessianMatrix, V *hessianEffect) const
Logarithm of the value of the scalar function.
const VectorSpace< V, M > & m_scenarioSpace
V * m_discrepancyPrecisionScaleVec
A class representing a vector RV constructed via Gamma distribution.
V * emulatorDataPrecisionMax
const unsigned int m_numSimulations
const VectorSpace< V, M > & m_parameterSpace
const VectorSpace< V, M > & m_simulationOutputSpace
const ConcatenatedVectorRV< V, M > & m_totalPrior
V * m_emulatorCorrelationStrengthAlphaVec
BoxSubset< V, M > * discrepancyPrecisionDomain
const std::vector< V * > & m_simulationScenarios
BetaVectorRV< V, M > * m_discrepancyCorrelationStrength
unsigned int m_numExperimentAdds
std::vector< V * > m_simulationScenarios
V * emulatorCorrelationMin
V * discrepancyCorrelationMax
const std::vector< V * > & simulationOutputs() const
Return all points in simulationOutputSpace for all simulations.
const std::vector< V * > & experimentScenarios() const
Return all points in scenarioSpace for all experiments.
const VectorSpace< V, M > & experimentOutputSpace() const
Return the vector space in which experiments live.
This (virtual) class sets up the environment underlying the use of the QUESO library by an executable...
const ConcatenatedVectorRV< V, M > & prior() const
const VectorSpace< V, M > & m_parameterSpace
BoxSubset< V, M > * totalDomain
void addSimulation(V &simulationScenario, V &simulationParameter, V &simulationOutput)
Add a simulation to this.
std::vector< V * > m_experimentOutputs
V * discrepancyPrecisionMin
const BaseEnvironment & env() const
Return the QUESO environment.
unsigned int numExperiments() const
Return number of experiments.
BoxSubset< V, M > * emulatorMeanDomain
const M & experimentErrors() const
Return all observation error covarince matrices for all experiments.
BoxSubset< V, M > * emulatorDataPrecisionDomain
unsigned int m_numSimulations
const GPMSAEmulator< V, M > & getGPMSAEmulator() const
Return the GPMSAEmulator likelihood object.
VectorSpace< V, M > * emulatorCorrelationSpace
A class representing a uniform vector RV.
V * m_emulatorDataPrecisionShapeVec
V * m_emulatorCorrelationStrengthBetaVec
GammaVectorRV< V, M > * m_emulatorDataPrecision
std::vector< const BaseVectorRV< V, M > * > priors
V * m_emulatorPrecisionScaleVec
V * m_emulatorDataPrecisionScaleVec
Class representing a subset of a vector space shaped like a hypercube.
BoxSubset< V, M > * discrepancyCorrelationDomain
const VectorSpace< V, M > & m_experimentOutputSpace
A class representing concatenated vector RVs.
std::vector< V * > m_simulationParameters
A class representing a vector space.
const V & simulationOutput(unsigned int simulationId) const
Return the simulation output for simulation simulationId.
V * emulatorCorrelationMax
const VectorSpace< V, M > & m_scenarioSpace
void print(std::ostream &os) const
BetaVectorRV< V, M > * m_emulatorCorrelationStrength
unsigned int m_numSimulationAdds
const std::vector< V * > & m_experimentScenarios
BoxSubset< V, M > * emulatorCorrelationDomain
std::vector< V * > m_experimentScenarios
const V & simulationParameter(unsigned int simulationId) const
Return the point in parameterSpace for simulation simulationId.
V * m_discrepancyCorrelationStrengthBetaVec