void sortio_Class::IO_Tasks_Work() { assert(initialized_); int thread_id = omp_get_thread_num(); grvy_printf(INFO,"[sortio]:IO[%i]: thread id for Master thread = %i\n",ioRank_,thread_id); ReadFiles(); grvy_printf(INFO,"[sortio][IO/Read][%.4i]: ALL DONE with Read\n",ioRank_); return; }
double Likelihood_Wrapper(const basicV ¶mValue, const basicV *paramDirection, const void *Data,basicV *gradV,basicM *hessianM, basicV *hessianE) { // Logic just to avoid warnings from INTEL compiler: added by prudenci on 2009/Sep/06 const uqGslVectorClass* aux1 = paramDirection; if (aux1) {}; aux1 = gradV; aux1 = hessianE; uqGslMatrixClass* aux2 = hessianM; if (aux2) {}; const void* aux3 = Data; if (aux3) {}; // Actual code static int first_entry = 1; double *uqParams = NULL; int num_params = paramValue.sizeGlobal(); if(first_entry) { if(num_params < 1) QUESO_fatal("Invalid number of parameters"); if(_QUESO_Basic->m_user_likelihood_func == NULL ) QUESO_fatal("Invalid user-supplied likelihood function"); uqParams = (double *)calloc(num_params,sizeof(double)); if(uqParams == NULL) QUESO_fatal("Unable to allocate emmory for uqParams"); } for(int i=0;i<num_params;i++) { uqParams[i] = paramValue[i]; grvy_printf(GRVY_DEBUG,"%s: sending param to likelihood\n",log_prefix,paramValue[i]); } grvy_timer_begin("Likelihood Routine"); double lhood_return = _QUESO_Basic->m_user_likelihood_func(uqParams); grvy_timer_end("Likelihood Routine"); return(lhood_return); // return( _QUESO_Basic->m_user_likelihood_func(uqParams) ); }
void QUESO_Basic_Class:: DefineParameterSpace() { double *param_min; // min value of each parameter double *param_max; // max value of each parameter double *param_ini; // initial value of each parameter int ierr = 1; VerifyInit(); // Verify presence of required input file ierr *= grvy_input_fopen(m_inputfile->c_str()); if(ierr == 0) QUESO_fatal("Unable to access QUESO input file"); // Derive the UQ parameters from input file and create QUESO parameter vector ierr *= grvy_input_fread_int("queso/parameters/num_params",&m_num_params); if(ierr == 0) QUESO_fatal("Unable to read num_params from input file."); grvy_printf(GRVY_INFO,"%s: Num params defined\n",log_prefix,m_num_params); printf("--> Setup parameter space variables/ranges...\n"); m_paramSpace = new uqVectorSpaceClass <basicV,basicM> (*m_env,"queso_basic_",m_num_params,NULL); param_min = (double *) calloc(m_num_params,sizeof(double)); param_max = (double *) calloc(m_num_params,sizeof(double)); param_ini = (double *) calloc(m_num_params,sizeof(double)); if(param_min == NULL || param_max == NULL || param_ini == NULL) QUESO_fatal("Unable to allocate memory for desired parameter space"); ierr *= grvy_input_fread_double_vec("queso/parameters/param_mins", param_min, m_num_params); ierr *= grvy_input_fread_double_vec("queso/parameters/param_maxs", param_max, m_num_params); ierr *= grvy_input_fread_double_vec("queso/parameters/param_inits", param_ini, m_num_params); printf("max = %f\n",param_max[0]); if(ierr == 0) QUESO_fatal("Unable to read parameter min/max/init values"); for(int i = 0;i<m_num_params;i++) { grvy_printf(GRVY_INFO,"%s: min value = \n",log_prefix,param_min[i]); grvy_printf(GRVY_INFO,"%s: max value = \n",log_prefix,param_max[i]); grvy_printf(GRVY_INFO,"%s: init value = \n",log_prefix,param_ini[i]); } m_queso_var_min = new basicV ( m_paramSpace->zeroVector() ); m_queso_var_max = new basicV ( m_paramSpace->zeroVector() ); m_queso_var_ini = new basicV ( m_paramSpace->zeroVector() ); for(int i = 0;i<m_num_params;i++) { (*m_queso_var_min)[i] = param_min[i]; (*m_queso_var_max)[i] = param_max[i]; (*m_queso_var_ini)[i] = param_ini[i]; } printf("--> Setup parameter search box...\n"); m_paramDomain = new uqBoxSubsetClass<basicV, basicM> ("queso_basic_",*m_paramSpace, *m_queso_var_min,*m_queso_var_max); // un poquito de clean up. free(param_min); free(param_max); free(param_ini); grvy_input_fclose(); }