diff --git a/src/libs/pestpp_common/Ensemble.cpp b/src/libs/pestpp_common/Ensemble.cpp index bf8f940c..a7c33d7a 100644 --- a/src/libs/pestpp_common/Ensemble.cpp +++ b/src/libs/pestpp_common/Ensemble.cpp @@ -2179,7 +2179,8 @@ ParameterEnsemble ParameterEnsemble::zeros_like(int nrows) } -map ParameterEnsemble::add_runs(RunManagerAbstract *run_mgr_ptr,const vector &real_idxs, int da_cycle) +map ParameterEnsemble::add_runs(RunManagerAbstract *run_mgr_ptr,const vector &real_idxs, + int da_cycle, string additional_tag) { //add runs to the run manager using int indices map real_run_ids; @@ -2205,6 +2206,7 @@ map ParameterEnsemble::add_runs(RunManagerAbstract *run_mgr_ptr,const v run_real_names.push_back(real_names[i]); else run_real_names = real_names; + int idx; map rmap; @@ -2219,8 +2221,15 @@ map ParameterEnsemble::add_runs(RunManagerAbstract *run_mgr_ptr,const v ss << " da_cycle:" << da_cycle << " "; info_txt = ss.str(); } - for (auto &rname : run_real_names) + if (additional_tag.size() > 0) + { + info_txt = info_txt + " " + additional_tag; + } + string rname,rinfo_txt; + //for (auto &rname : run_real_names) + for (int i=0;i ParameterEnsemble::add_runs(RunManagerAbstract *run_mgr_ptr,const v par_transform.numeric2model_ip(pars_real); replace_fixed(rname, pars_real); nn = pars_real.get_notnormal_keys(); - if (nn.size() > 0) - { - stringstream ss; - ss << "ParameterEnsemble:: add_runs() error: denormal values for realization " << rname << " : "; - for (auto n : nn) - ss << n << ","; - throw_ensemble_error(ss.str()); - } + if (nn.size() > 0) { + stringstream ss; + ss << "ParameterEnsemble:: add_runs() error: denormal values for realization " << rname << " : "; + for (auto n : nn) + ss << n << ","; + throw_ensemble_error(ss.str()); + } run_id = run_mgr_ptr->add_run(pars_real,info_txt+" realization:"+rname); real_run_ids[idx] = run_id; } diff --git a/src/libs/pestpp_common/Ensemble.h b/src/libs/pestpp_common/Ensemble.h index ee735338..1459ea44 100644 --- a/src/libs/pestpp_common/Ensemble.h +++ b/src/libs/pestpp_common/Ensemble.h @@ -202,7 +202,8 @@ class ParameterEnsemble : public Ensemble ParamTransformSeq get_par_transform() const { return par_transform; } void transform_ip(transStatus to_tstat); void set_pest_scenario(Pest *_pest_scenario); - map add_runs(RunManagerAbstract *run_mgr_ptr,const vector &real_idxs=vector(),int da_cycle=NetPackage::NULL_DA_CYCLE); + map add_runs(RunManagerAbstract *run_mgr_ptr,const vector &real_idxs=vector(), + int da_cycle=NetPackage::NULL_DA_CYCLE, string additional_tag=""); void set_fixed_names(); void draw_uniform(int num_reals, vector par_names, PerformanceLog* plog, int level, ofstream& frec); map draw(int num_reals, Parameters par, Covariance &cov, PerformanceLog *plog, int level, ofstream& frec); diff --git a/src/libs/pestpp_common/EnsembleMethodUtils.cpp b/src/libs/pestpp_common/EnsembleMethodUtils.cpp index 72befd71..f35d6725 100644 --- a/src/libs/pestpp_common/EnsembleMethodUtils.cpp +++ b/src/libs/pestpp_common/EnsembleMethodUtils.cpp @@ -5130,11 +5130,16 @@ vector EnsembleMethod::run_lambda_ensembles(vector> real_run_ids_vec; //ParameterEnsemble pe_lam; //for (int i=0;i