void compute(const QUESO::FullEnvironment& env) { // Step 1 of 6: Instantiate the parameter space QUESO::VectorSpace<QUESO::GslVector,QUESO::GslMatrix> paramSpace(env, "param_", 2, NULL); // Step 2 of 6: Instantiate the parameter domain QUESO::GslVector paramMins(paramSpace.zeroVector()); paramMins.cwSet(-INFINITY); QUESO::GslVector paramMaxs(paramSpace.zeroVector()); paramMaxs.cwSet( INFINITY); QUESO::BoxSubset<QUESO::GslVector,QUESO::GslMatrix> paramDomain("param_",paramSpace,paramMins,paramMaxs); // Step 3 of 6: Instantiate the qoi space QUESO::VectorSpace<QUESO::GslVector,QUESO::GslMatrix> qoiSpace(env, "qoi_", 1, NULL); // Step 4 of 6: Instantiate the qoi function object qoiRoutine_DataType qoiRoutine_Data; qoiRoutine_Data.coef1 = 1.; qoiRoutine_Data.coef2 = 1.; QUESO::GenericVectorFunction<QUESO::GslVector,QUESO::GslMatrix, QUESO::GslVector,QUESO::GslMatrix> qoiFunctionObj("qoi_", paramDomain, qoiSpace, qoiRoutine, (void *) &qoiRoutine_Data); // Step 5 of 6: Instantiate the forward problem // Parameters are Gaussian RV QUESO::GslVector meanVector( paramSpace.zeroVector() ); meanVector[0] = -1; meanVector[1] = 2; QUESO::GslMatrix covMatrix = QUESO::GslMatrix(paramSpace.zeroVector()); covMatrix(0,0) = 4.; covMatrix(0,1) = 0.; covMatrix(1,0) = 0.; covMatrix(1,1) = 1.; QUESO::GaussianVectorRV<QUESO::GslVector,QUESO::GslMatrix> paramRv("param_",paramDomain,meanVector,covMatrix); QUESO::GenericVectorRV<QUESO::GslVector,QUESO::GslMatrix> qoiRv("qoi_", qoiSpace); QUESO::StatisticalForwardProblem<QUESO::GslVector,QUESO::GslMatrix, QUESO::GslVector,QUESO::GslMatrix> fp("", NULL, paramRv, qoiFunctionObj, qoiRv); // Step 6 of 6: Solve the forward problem fp.solveWithMonteCarlo(NULL); return; }
void compute(const QUESO::FullEnvironment& env) { //step 1: instatiate parameter space QUESO::VectorSpace<QUESO::GslVector,QUESO::GslMatrix> paramSpace(env, "param_", 1, NULL); //step 2: instantiate the parameter domain QUESO::GslVector paramMins(paramSpace.zeroVector()); paramMins.cwSet(0.001); QUESO::GslVector paramMaxs(paramSpace.zeroVector()); paramMaxs.cwSet(100.); //TODO: this is not working with gsl sampling right now in FP QUESO::BoxSubset<QUESO::GslVector,QUESO::GslMatrix> paramDomain("param_", paramSpace, paramMins, paramMaxs); //step 3: instantiate the qoi space QUESO::VectorSpace<QUESO::GslVector,QUESO::GslMatrix> qoiSpace(env, "qoi_", 1, NULL); //step 4: instantiate the qoi function object qoiRoutine_DataType qoiRoutine_Data; qoiRoutine_Data.coef1 = 1.; QUESO::GenericVectorFunction<QUESO::GslVector,QUESO::GslMatrix, QUESO::GslVector,QUESO::GslMatrix> qoiFunctionObj("qoi_", paramDomain, qoiSpace, qoiRoutine, (void *) &qoiRoutine_Data); //step 5: instantiate the forward problem //parameter is Jeffreys RV QUESO::JeffreysVectorRV<QUESO::GslVector,QUESO::GslMatrix> paramRv("param_", paramDomain); QUESO::GenericVectorRV<QUESO::GslVector,QUESO::GslMatrix> qoiRv("qoi_",qoiSpace); QUESO::StatisticalForwardProblem<QUESO::GslVector,QUESO::GslMatrix, QUESO::GslVector,QUESO::GslMatrix> fp("", NULL, paramRv, qoiFunctionObj, qoiRv); //step 6: solve the forward problem fp.solveWithMonteCarlo(NULL); }