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