Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
  double Likelihood_Wrapper(const basicV &paramValue,
			    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) );
      
  }
Ejemplo n.º 3
0
  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();

  }