Пример #1
0
void enkf_config_node_fprintf_config( const enkf_config_node_type * config_node , FILE * stream ) {
  switch( config_node->impl_type) {
  case(GEN_KW):
    fprintf( stream , CONFIG_KEY_FORMAT   , GEN_KW_KEY );
    fprintf( stream , CONFIG_VALUE_FORMAT , config_node->key );
    gen_kw_config_fprintf_config( config_node->data , path_fmt_get_fmt( config_node->enkf_outfile_fmt ) , config_node->min_std_file , stream );
    break;
  case(FIELD):
    fprintf( stream , CONFIG_KEY_FORMAT   , FIELD_KEY );
    fprintf( stream , CONFIG_VALUE_FORMAT , config_node->key );
    field_config_fprintf_config( config_node->data     , 
                                 config_node->var_type , 
                                 path_fmt_get_fmt( config_node->enkf_outfile_fmt ) , 
                                 path_fmt_get_fmt( config_node->enkf_infile_fmt ) , 
                                 config_node->min_std_file , 
                                 stream );
    break;
  case(GEN_DATA):

    if (config_node->var_type == PARAMETER)
      fprintf( stream , CONFIG_KEY_FORMAT , GEN_PARAM_KEY );
    else
      fprintf( stream , CONFIG_KEY_FORMAT , GEN_DATA_KEY );
    
    gen_data_config_fprintf_config( config_node->data     , 
                                    config_node->var_type ,
                                    path_fmt_get_fmt( config_node->enkf_outfile_fmt ) , 
                                    path_fmt_get_fmt( config_node->enkf_infile_fmt ) , 
                                    config_node->min_std_file , 
                                    stream );
    break;
  default:
    util_abort("%s: internal error - function can not store configuration for: %s variables. \n",__func__ , enkf_types_get_impl_name( config_node->impl_type) );
  }
  fprintf( stream , "\n");
}
Пример #2
0
void model_config_fprintf_config( const model_config_type * model_config , int ens_size , FILE * stream ) {
  fprintf( stream , CONFIG_COMMENTLINE_FORMAT );
  fprintf( stream , CONFIG_COMMENT_FORMAT , "Here comes configuration information related to this model.");

  if (model_config->case_table_file != NULL) {
    fprintf( stream , CONFIG_KEY_FORMAT      , CASE_TABLE_KEY );
    fprintf( stream , CONFIG_ENDVALUE_FORMAT , model_config->case_table_file );
  }
  fprintf( stream , CONFIG_KEY_FORMAT      , FORWARD_MODEL_KEY);  
  forward_model_fprintf( model_config->forward_model , stream );

  fprintf( stream , CONFIG_KEY_FORMAT      , RUNPATH_KEY );
  fprintf( stream , CONFIG_ENDVALUE_FORMAT , path_fmt_get_fmt( model_config->current_runpath ));

  if (model_config->enkf_sched_file != NULL) {
    fprintf( stream , CONFIG_KEY_FORMAT      , ENKF_SCHED_FILE_KEY );
    fprintf( stream , CONFIG_ENDVALUE_FORMAT , model_config->enkf_sched_file );
  }
    
  fprintf( stream , CONFIG_KEY_FORMAT      , ENSPATH_KEY );
  fprintf( stream , CONFIG_ENDVALUE_FORMAT , model_config->enspath );

  fprintf( stream , CONFIG_KEY_FORMAT      , RFTPATH_KEY );
  fprintf( stream , CONFIG_ENDVALUE_FORMAT , model_config->rftpath );

  if (model_config->select_case != NULL) {
    fprintf( stream , CONFIG_KEY_FORMAT      , SELECT_CASE_KEY );
    fprintf( stream , CONFIG_ENDVALUE_FORMAT , model_config->select_case );
  }

  fprintf( stream , CONFIG_KEY_FORMAT      , MAX_RESAMPLE_KEY ); 
  {
    char max_retry_string[16];
    sprintf( max_retry_string , "%d" ,model_config->max_internal_submit);
    fprintf( stream , CONFIG_ENDVALUE_FORMAT , max_retry_string);
  }
  
  fprintf(stream , CONFIG_KEY_FORMAT      , HISTORY_SOURCE_KEY);
  fprintf(stream , CONFIG_ENDVALUE_FORMAT , history_get_source_string( model_config->history_source ));

  fprintf(stream , CONFIG_KEY_FORMAT , NUM_REALIZATIONS_KEY);
  fprintf(stream , CONFIG_INT_FORMAT , ens_size);
  fprintf(stream , "\n\n");

}
Пример #3
0
void ecl_config_fprintf_config( const ecl_config_type * ecl_config , FILE * stream ) {
  fprintf( stream , CONFIG_COMMENTLINE_FORMAT );
  fprintf( stream , CONFIG_COMMENT_FORMAT , "Here comes configuration information related to the ECLIPSE model.");

  fprintf( stream , CONFIG_KEY_FORMAT      , DATA_FILE_KEY );
  fprintf( stream , CONFIG_ENDVALUE_FORMAT , ecl_config->data_file );
  
  fprintf( stream , CONFIG_KEY_FORMAT      , SCHEDULE_FILE_KEY );
  fprintf( stream , CONFIG_ENDVALUE_FORMAT , sched_file_iget_filename( ecl_config->sched_file , 0));

  fprintf( stream , CONFIG_KEY_FORMAT      , ECLBASE_KEY );
  fprintf( stream , CONFIG_ENDVALUE_FORMAT , path_fmt_get_fmt( ecl_config->eclbase ));

  if (ecl_config->include_all_static_kw) {
    fprintf( stream , CONFIG_KEY_FORMAT      , STATIC_KW_KEY );
    fprintf( stream , CONFIG_ENDVALUE_FORMAT , DEFAULT_ALL_STATIC_KW );
  }
  {
    int size = stringlist_get_size( ecl_config->user_static_kw );
    if (size > 0) {
      int i;
      fprintf( stream , CONFIG_KEY_FORMAT      , STATIC_KW_KEY );
      for (i=0; i < size; i++)
        if (i < (size -1 ))
          fprintf( stream , CONFIG_VALUE_FORMAT      , stringlist_iget( ecl_config->user_static_kw , i));
        else
          fprintf( stream , CONFIG_ENDVALUE_FORMAT      , stringlist_iget( ecl_config->user_static_kw , i));
    }
  }

  /*
    if (ecl_config->refcase != NULL) {
    fprintf( stream , CONFIG_KEY_FORMAT      , REFCASE_KEY );
    fprintf( stream , CONFIG_ENDVALUE_FORMAT , ecl_config_get_refcase_name( ecl_config ));
    }
  */

  if (ecl_config->grid != NULL) {
    fprintf( stream , CONFIG_KEY_FORMAT      , GRID_KEY );
    fprintf( stream , CONFIG_ENDVALUE_FORMAT , ecl_config_get_gridfile( ecl_config ));
  }

  if (ecl_config->schedule_prediction_file != NULL) {
    fprintf( stream , CONFIG_KEY_FORMAT      , SCHEDULE_PREDICTION_FILE_KEY );
    fprintf( stream , CONFIG_ENDVALUE_FORMAT , ecl_config_get_schedule_prediction_file( ecl_config ));
  }
  
  if (ecl_config->init_section != NULL) {
    fprintf( stream , CONFIG_KEY_FORMAT      , INIT_SECTION_KEY );
    fprintf( stream , CONFIG_ENDVALUE_FORMAT , ecl_config_get_init_section( ecl_config ));
  }

  
  {
    hash_iter_type * iter = hash_iter_alloc( ecl_config->fixed_length_kw );
    while (!hash_iter_is_complete( iter )) {
      const char  * kw  = hash_iter_get_next_key( iter );
      int   length      = hash_get_int( ecl_config->fixed_length_kw , kw); 

      fprintf( stream , CONFIG_KEY_FORMAT    , ADD_FIXED_LENGTH_SCHEDULE_KW_KEY );
      fprintf( stream , CONFIG_VALUE_FORMAT  , kw );
      fprintf( stream , CONFIG_INT_FORMAT    , length );
      fprintf( stream , "\n");
      
    }
    hash_iter_free( iter );
  }

  
  
  fprintf(stream , "\n\n");
}
Пример #4
0
const char * ecl_config_get_eclbase( const ecl_config_type * ecl_config ) {
  return path_fmt_get_fmt( ecl_config->eclbase );
}
Пример #5
0
const char * enkf_config_node_get_enkf_infile( const enkf_config_node_type * config_node ) {
  return path_fmt_get_fmt( config_node->enkf_infile_fmt );
}
Пример #6
0
const char * model_config_get_runpath_as_char( const model_config_type * model_config ) {
   return path_fmt_get_fmt( model_config->current_runpath );
}
Пример #7
0
void enkf_tui_run_menu(void * arg) {
  enkf_main_type  * enkf_main  = enkf_main_safe_cast( arg );
  model_config_type * model_config = enkf_main_get_model_config( enkf_main );
  path_fmt_type     * runpath_fmt  = model_config_get_runpath_fmt( model_config );
  menu_type       * menu;

  {
    char   * title = util_alloc_sprintf("Run menu [case:%s  Runpath:%s]" , enkf_main_get_current_fs( enkf_main ) , path_fmt_get_fmt ( runpath_fmt ));
    menu = menu_alloc(title , "Back" , "bB");
    free(title);
  }
  menu_add_item(menu , "Ensemble run: history"                , "xX" , enkf_tui_run_exp         , enkf_main , NULL);
  menu_add_separator( menu );
  {
    const ecl_config_type * ecl_config = enkf_main_get_ecl_config( enkf_main );
    const model_config_type * model_config = enkf_main_get_model_config( enkf_main );
    const analysis_config_type * analysis_config = enkf_main_get_analysis_config(enkf_main);
    
    menu_item_type * enkf_item         = menu_add_item(menu , "Start EnKF run from beginning"          , "sS" , enkf_tui_run_start         , enkf_main , NULL);
    menu_item_type * restart_enkf_item = menu_add_item(menu , "Restart EnKF run from arbitrary state"  , "rR" , enkf_tui_run_restart__       , enkf_main , NULL);
    menu_item_type * ES_item           = menu_add_item(menu , "Integrated smoother update"             , "iI" , enkf_tui_run_smoother      , enkf_main , NULL);
    menu_item_type * it_ES_item        = menu_add_item(menu , "Iterated smoother [RML-EnKF]"           , "tT" , enkf_tui_run_iterated_ES   , enkf_main , NULL);
    menu_item_type * one_more_item     = menu_add_item(menu , "One more iteration (disabled)"          , "mM" , enkf_tui_run_one_more_iteration , enkf_main , NULL);
              
    if (!ecl_config_has_schedule( ecl_config )) {
      menu_item_disable( enkf_item );
      menu_item_disable( restart_enkf_item );
    }
    
    if (!ecl_config_has_init_section( ecl_config )) 
      menu_item_disable( enkf_item );

    menu_item_disable( one_more_item );
    if (!analysis_config_get_module_option(analysis_config , ANALYSIS_ITERABLE)) {
      menu_item_disable( it_ES_item );
      menu_item_disable( one_more_item );
    } else {
      menu_item_disable( enkf_item );
      menu_item_disable( restart_enkf_item );
      menu_item_disable( ES_item );
    }
      
    if (!model_config_has_history( model_config )) {
      menu_item_disable( it_ES_item );
      menu_item_disable( ES_item );
      menu_item_disable( one_more_item );
    }
  }
  menu_add_separator(menu);
  menu_add_item(menu , "Create runpath directories - NO simulation" , "cC" , enkf_tui_run_create_runpath__ , enkf_main , NULL );
  menu_add_item(menu , "Load results manually"                               , "lL"  , enkf_tui_run_manual_load__ , enkf_main , NULL);
  menu_add_separator(menu);
  {
    menu_item_type * analysis_item = menu_add_item(menu , "Analysis menu"             , "aA" , enkf_tui_analysis_menu , enkf_main , NULL);
    
    if (!enkf_main_have_obs( enkf_main )) 
      menu_item_disable( analysis_item );
  }
  /*
    Option to set runpath runtime - currently dismantled.
    
    menu_add_separator(menu);
    {
    model_config_type * model_config = enkf_main_get_model_config( enkf_main );
    path_fmt_type     * runpath_fmt  = model_config_get_runpath_fmt( model_config );
    arg_pack_type * arg_pack = arg_pack_alloc();  
    char * runpath_label = util_alloc_sprintf("Set new value for RUNPATH:%s" , path_fmt_get_fmt ( runpath_fmt ));
    
    arg_pack_append_ptr(arg_pack , model_config);
    arg_pack_append_ptr(arg_pack , menu_add_item(menu , runpath_label , "dD" , enkf_tui_run_set_runpath , arg_pack , arg_pack_free__));
    
    free(runpath_label);
    }
  */
  menu_add_item(menu , "Help"                                  , "hH" , enkf_tui_help_menu_run   , enkf_main , NULL); 
  menu_run(menu);
  menu_free(menu);
}