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>
39 #include <queso/ScopedPtr.h>
46 template <
class V = GslVector,
class M = GslMatrix>
66 const V & residual_in,
67 const M & BT_Wy_B_inv_in,
68 const M & KT_K_inv_in);
72 virtual double lnValue(
const V & domainVector,
73 const V * domainDirection,
76 V * hessianEffect)
const;
79 const V * domainDirection,
82 V * hessianEffect)
const;
122 template <
class V = GslVector,
class M = GslMatrix>
248 V & simulationParameter,
249 V & simulationOutput);
257 const std::vector<V *> & simulationParameters,
258 const std::vector<V *> & simulationOutputs);
271 const std::vector<V *> & experimentOutputs,
272 const M * experimentErrors);
299 void print(std::ostream& os)
const;
400 std::vector<const BaseVectorRV<V, M> *>
priors;
442 typename ScopedPtr<M>::Type
K;
461 #endif // UQ_GPMSA_HELPER_H
void print(std::ostream &os) const
ScopedPtr< BoxSubset< V, M > >::Type observationalPrecisionDomain
ScopedPtr< BetaVectorRV< V, M > >::Type m_discrepancyCorrelationStrength
ScopedPtr< V >::Type residual
ScopedPtr< BoxSubset< V, M > >::Type discrepancyPrecisionDomain
const BaseVectorRV< V, M > & m_parameterPrior
ScopedPtr< BoxSubset< V, M > >::Type discrepancyCorrelationDomain
ScopedPtr< V >::Type m_discrepancyCorrelationStrengthAlphaVec
ScopedPtr< V >::Type m_emulatorPrecisionShapeVec
M & getObservationErrorCovariance(unsigned int simulationNumber)
A templated (base) class for handling scalar functions.
std::vector< V > m_discrepancyBases
ScopedPtr< V >::Type m_discrepancyCorrelationStrengthBetaVec
const unsigned int m_numExperiments
ScopedPtr< V >::Type totalMins
ScopedPtr< V >::Type m_emulatorPrecisionScaleVec
const ConcatenatedVectorRV< V, M > & prior() const
const ConcatenatedVectorRV< V, M > & m_totalPrior
ScopedPtr< V >::Type discrepancyCorrelationMin
const VectorSpace< V, M > & m_parameterSpace
ScopedPtr< V >::Type emulatorPrecisionMin
A class representing a vector space.
unsigned int numSimulations() const
Return number of simulations.
ScopedPtr< M >::Type m_BMatrix
ScopedPtr< BoxSubset< V, M > >::Type emulatorMeanDomain
A class representing concatenated vector RVs.
This (virtual) class sets up the environment underlying the use of the QUESO library by an executable...
ScopedPtr< V >::Type m_emulatorCorrelationStrengthBetaVec
ScopedPtr< V >::Type emulatorCorrelationMax
ScopedPtr< V >::Type emulatorMeanMin
A templated base class for handling vector RV.
unsigned int numExperiments() const
Return number of experiments.
ScopedPtr< V >::Type discrepancyCorrelationMax
ScopedPtr< V >::Type emulatorCorrelationMin
ScopedPtr< BetaVectorRV< V, M > >::Type m_emulatorCorrelationStrength
const V & simulationParameter(unsigned int simulationId) const
Return the point in parameterSpace for simulation simulationId.
unsigned int m_numExperimentAdds
ScopedPtr< BoxSubset< V, M > >::Type emulatorPrecisionDomain
void setDiscrepancyBases(const std::vector< V * > &discrepancyBases)
Add all discrepancy bases 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_simulationOutputSpace
unsigned int m_numSimulationAdds
std::vector< V * > m_experimentScenarios
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 std::vector< V > &m_discrepancyBases, const std::vector< M > &m_observationErrorMatrices, const M &m_experimentErrors, const ConcatenatedVectorRV< V, M > &m_totalPrior, const V &residual_in, const M &BT_Wy_B_inv_in, const M &KT_K_inv_in)
std::vector< M > m_discrepancyMatrices
const V & simulationOutput(unsigned int simulationId) const
Return the simulation output for simulation simulationId.
ScopedPtr< M >::Type BT_Wy_B_inv
std::vector< V * > m_simulationScenarios
ScopedPtr< VectorSpace< V, M > >::Type observationalPrecisionSpace
unsigned int m_numSimulations
const M * m_experimentErrors
const std::vector< V * > & m_experimentScenarios
const VectorSpace< V, M > & m_experimentOutputSpace
ScopedPtr< V >::Type m_emulatorDataPrecisionShapeVec
const std::vector< V * > & m_experimentOutputs
const M & m_experimentErrors
void addSimulation(V &simulationScenario, V &simulationParameter, V &simulationOutput)
Add a simulation to this.
const BaseEnvironment & m_env
ScopedPtr< M >::Type m_TruncatedSVD_simulationOutputs
ScopedPtr< VectorSpace< V, M > >::Type discrepancyCorrelationSpace
const VectorSpace< V, M > & m_scenarioSpace
ScopedPtr< V >::Type observationalPrecisionMax
const std::vector< V * > & simulationScenarios() const
Return all points in scenarioSpace for all simulations.
ScopedPtr< V >::Type m_observationalPrecisionScaleVec
std::vector< V > m_discrepancyBases
const std::vector< V * > & m_simulationParameters
ScopedPtr< V >::Type emulatorMeanMax
const VectorSpace< V, M > & simulationOutputSpace() const
Return the vector space in which simulations live.
const VectorSpace< V, M > & m_experimentOutputSpace
ScopedPtr< V >::Type totalMaxs
ScopedPtr< GammaVectorRV< V, M > >::Type m_emulatorPrecision
ScopedPtr< VectorSpace< V, M > >::Type oneDSpace
virtual double actualValue(const V &domainVector, const V *domainDirection, V *gradVector, M *hessianMatrix, V *hessianEffect) const
Actual value of the scalar function.
ScopedPtr< V >::Type m_observationalPrecisionShapeVec
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.
ScopedPtr< BoxSubset< V, M > >::Type emulatorDataPrecisionDomain
ScopedPtr< GPMSAEmulator< V, M > >::Type gpmsaEmulator
A templated class for handling sets.
std::vector< V * > m_experimentOutputs
const VectorSpace< V, M > & scenarioSpace() const
Return the vector space in which scenarios live.
const V & experimentScenario(unsigned int experimentId) const
Return the point in scenarioSpace for experiment experimentId.
This class defines the options that specify the behaviour of the Gaussian process emulator...
ScopedPtr< M >::Type m_observationErrorMatrix
friend std::ostream & operator<<(std::ostream &os, const GPMSAFactory< V, M > &obj)
ScopedPtr< V >::Type observationalPrecisionMin
ScopedPtr< V >::Type emulatorDataPrecisionMax
const std::vector< V * > & experimentScenarios() const
Return all points in scenarioSpace for all experiments.
ScopedPtr< V >::Type simulationOutputMeans
ScopedPtr< M >::Type KT_K_inv
const V & simulationScenario(unsigned int simulationId) const
Return the point in scenarioSpace for simulation simulationId.
unsigned int num_svd_terms
ScopedPtr< BoxSubset< V, M > >::Type emulatorCorrelationDomain
const std::vector< V * > & m_simulationOutputs
const BaseEnvironment & env() const
Return the QUESO environment.
const M & experimentErrors() const
Return all observation error covarince matrices for all experiments.
ScopedPtr< VectorSpace< V, M > >::Type emulatorCorrelationSpace
const std::vector< V * > & simulationParameters() const
Return all points in parameterSpace for all simulations.
ScopedPtr< V >::Type m_emulatorDataPrecisionScaleVec
const std::vector< M > & m_observationErrorMatrices
const unsigned int m_numSimulations
ScopedPtr< GammaVectorRV< V, M > >::Type m_discrepancyPrecision
void addExperiments(const std::vector< V * > &experimentScenarios, const std::vector< V * > &experimentOutputs, const M *experimentErrors)
Add all experiments to this.
ScopedPtr< ConcatenatedVectorRV< V, M > >::Type m_totalPrior
const std::vector< V * > & experimentOutputs() const
Return all points in experimentOutputSpace for all experiments.
const VectorSpace< V, M > & m_scenarioSpace
ScopedPtr< GammaVectorRV< V, M > >::Type m_observationalPrecision
~GPMSAFactory()
Destructor.
const VectorSpace< V, M > & m_simulationOutputSpace
void addSimulations(const std::vector< V * > &simulationScenarios, const std::vector< V * > &simulationParameters, const std::vector< V * > &simulationOutputs)
Adds multiple simulations to this.
ScopedPtr< V >::Type m_discrepancyPrecisionScaleVec
std::vector< V * > m_simulationParameters
ScopedPtr< V >::Type m_emulatorCorrelationStrengthAlphaVec
ScopedPtr< V >::Type discrepancyPrecisionMin
const std::vector< V * > & m_simulationScenarios
std::vector< V * > m_simulationOutputs
ScopedPtr< VectorSpace< V, M > >::Type emulatorPrecisionSpace
unsigned int m_numExperiments
ScopedPtr< V >::Type discrepancyPrecisionMax
const std::vector< V * > & simulationOutputs() const
Return all points in simulationOutputSpace for all simulations.
ScopedPtr< VectorSpace< V, M > >::Type totalSpace
ScopedPtr< GammaVectorRV< V, M > >::Type m_emulatorDataPrecision
const GPMSAEmulator< V, M > & getGPMSAEmulator() const
Return the GPMSAEmulator likelihood object.
const VectorSpace< V, M > & parameterSpace() const
Return the vector space in which parameters live.
ScopedPtr< V >::Type m_discrepancyPrecisionShapeVec
const VectorSpace< V, M > & experimentOutputSpace() const
Return the vector space in which experiments live.
std::vector< const BaseVectorRV< V, M > * > priors
const VectorSpace< V, M > & m_parameterSpace
ScopedPtr< BoxSubset< V, M > >::Type totalDomain
std::vector< M > m_observationErrorMatrices
ScopedPtr< V >::Type emulatorDataPrecisionMin
const V & experimentOutput(unsigned int experimentId) const
Return the experiment output for experiment experimentId.
ScopedPtr< UniformVectorRV< V, M > >::Type m_emulatorMean
ScopedPtr< V >::Type emulatorPrecisionMax