| 4941 | } |
| 4942 | |
| 4943 | int MPCORecorder::writeModel() |
| 4944 | { |
| 4945 | /* |
| 4946 | error flags |
| 4947 | */ |
| 4948 | int retval = 0; |
| 4949 | herr_t status; |
| 4950 | /* |
| 4951 | create model and results groups |
| 4952 | */ |
| 4953 | std::stringstream ss_current_model_stage_name; |
| 4954 | ss_current_model_stage_name << "MODEL_STAGE[" << m_data->info.current_model_stage_id << "]"; |
| 4955 | std::string model_stage_dir = ss_current_model_stage_name.str(); |
| 4956 | hid_t h_gp_model_stage = h5::group::create(m_data->info.h_file_id, model_stage_dir.c_str(), H5P_DEFAULT, m_data->info.h_group_proplist, H5P_DEFAULT); |
| 4957 | hid_t h_gp_model = h5::group::create(h_gp_model_stage, "MODEL", H5P_DEFAULT, m_data->info.h_group_proplist, H5P_DEFAULT); |
| 4958 | hid_t h_gp_results = h5::group::create(h_gp_model_stage, "RESULTS", H5P_DEFAULT, m_data->info.h_group_proplist, H5P_DEFAULT); |
| 4959 | hid_t h_gp_results_on_nodes = h5::group::create(h_gp_results, "ON_NODES", H5P_DEFAULT, m_data->info.h_group_proplist, H5P_DEFAULT); |
| 4960 | hid_t h_gp_results_on_elements = h5::group::create(h_gp_results, "ON_ELEMENTS", H5P_DEFAULT, m_data->info.h_group_proplist, H5P_DEFAULT); |
| 4961 | /* |
| 4962 | attributes |
| 4963 | */ |
| 4964 | status = h5::attribute::write(h_gp_model_stage, "STEP", m_data->info.current_time_step_id); |
| 4965 | status = h5::attribute::write(h_gp_model_stage, "TIME", m_data->info.current_time_step); |
| 4966 | /* |
| 4967 | close groups |
| 4968 | */ |
| 4969 | status = h5::group::close(h_gp_results_on_elements); |
| 4970 | status = h5::group::close(h_gp_results_on_nodes); |
| 4971 | status = h5::group::close(h_gp_results); |
| 4972 | status = h5::group::close(h_gp_model); |
| 4973 | status = h5::group::close(h_gp_model_stage); |
| 4974 | /* |
| 4975 | write info.nodes |
| 4976 | */ |
| 4977 | retval = writeModelNodes(); |
| 4978 | if (retval) |
| 4979 | return retval; |
| 4980 | /* |
| 4981 | write elements |
| 4982 | */ |
| 4983 | retval = writeModelElements(); |
| 4984 | if (retval) |
| 4985 | return retval; |
| 4986 | /* |
| 4987 | write local axes |
| 4988 | */ |
| 4989 | retval = writeModelLocalAxes(); |
| 4990 | if (retval) |
| 4991 | return retval; |
| 4992 | /* |
| 4993 | write cross sections |
| 4994 | */ |
| 4995 | retval = writeSections(); |
| 4996 | if (retval) |
| 4997 | return retval; |
| 4998 | /* |
| 4999 | write sets |
| 5000 | */ |