Hello,
I have been trying to use Queso in order to solve an inverse problem by DRAM-MCMC algorithm. Before everything, I tried to play with the existing examples.
In particular, let me focus on “hysteretic” in which Multilevel Sampling method (MLS) has been used to estimate 15 parameters. Imagine, we would like to run the case by DRAM, instead. By looking at the examples in the manual, specifically “bimodal”, I think we can edit the end part of “example_compute.C” as,
#if 1 //mcmc dram algorithm
QUESO::GslVector paramInitials(paramSpace.zeroVector());
paramInitials[0] = 0.36; // sigmaSquare
for (unsigned int i=1; i<15 ;++i) {
paramInitials[i]=0.0;
}
QUESO::GslMatrix proposalCovMatrix(paramSpace.zeroVector());
for (unsigned int i=0; i<15 ;++i) {
proposalCovMatrix(i,i)=1.0;
}
ip.solveWithBayesMetropolisHastings(NULL,paramInitials,&proposalCovMatrix);
#else //multilevel sampling
ip.solveWithBayesMLSampling();
#endif
without changing any other thing. If we compile and run the code with “mh” input file, we get this error: “application called MPI_Abort(MPI_COMM_WORLD, 1) - process 0”. According to the only existing file in the output directory, the last activity has been “Entering MetropolisHastingsSG<P_V,P_M>::commonConstructor()”.
It seems “commonConstructor()” reads the input options, however, I could not find anything wrong in the input file.
I checked this matter for a couple of other cases which had simpler model equations. The same thing was observed: with MLS everything is fine but DRAM fails.
Considering several potential factors, it can be tested that if we avoid concatenating parameter domains (i.e. taking all parameters to be of the same type), both DRAM and MLS work well.
I know that I might have made a mistake when using concatenated vectors/domains, but I cannot figure it out. It would be highly appreciated if you could help me on this matter.
Best Regards,
Saleh