int64_t Ioex::SuperElement::internal_get_field_data(const Ioss::Field& field, void *data, size_t data_size) const { size_t num_to_get = field.verify(data_size); assert(num_to_get == numDOF * numDOF); if (field.get_name() == "Kr") { int status = nc_get_array(filePtr, "Kr", (double*)data); if (status != 0) { std::ostringstream errmsg; errmsg << "ERROR: Could not load stiffness matrix field 'Kr' from file '" << fileName << "'."; IOSS_ERROR(errmsg); } } else if (field.get_name() == "Mr") { int status = nc_get_array(filePtr, "Mr", (double*)data); if (status != 0) { std::ostringstream errmsg; errmsg << "ERROR: Could not load mass matrix field 'Mr' from file '" << fileName << "'."; IOSS_ERROR(errmsg); } } else { std::cerr << "WARNING: " << type() << " '" << name() << "'. Unknown input field '" << field.get_name() << "'"; return -4; } return num_to_get; }
int64_t Ioex::SuperElement::internal_get_field_data(const Ioss::Field &field, void *data, size_t data_size) const { size_t num_to_get = field.verify(data_size); if (field.get_name() == "cbmap") { assert(num_to_get == 2 * num_nodes * num_dim); int status = nc_get_array(filePtr, "cbmap", reinterpret_cast<double *>(data)); if (status != 0) { std::ostringstream errmsg; errmsg << "ERROR: Could not load coodintate data field 'cbmap' from file '" << fileName << "'."; IOSS_ERROR(errmsg); } } else if (field.get_name() == "node_num_map") { assert(num_to_get == num_nodes); int status = nc_get_array(filePtr, "node_num_map", reinterpret_cast<double *>(data)); if (status != 0) { std::ostringstream errmsg; errmsg << "ERROR: Could not load coodintate data field 'node_num_map' from file '" << fileName << "'."; IOSS_ERROR(errmsg); } } else if (field.get_name() == "coordx") { assert(num_to_get == num_nodes); int status = nc_get_array(filePtr, "coordx", reinterpret_cast<double *>(data)); if (status != 0) { std::ostringstream errmsg; errmsg << "ERROR: Could not load coodintate data field 'coordx' from file '" << fileName << "'."; IOSS_ERROR(errmsg); } } else if (field.get_name() == "coordy") { assert(num_to_get == num_nodes); int status = nc_get_array(filePtr, "coordy", reinterpret_cast<double *>(data)); if (status != 0) { std::ostringstream errmsg; errmsg << "ERROR: Could not load coodintate data field 'coordy' from file '" << fileName << "'."; IOSS_ERROR(errmsg); } } else if (field.get_name() == "coordz") { assert(num_to_get == num_nodes); int status = nc_get_array(filePtr, "coordz", reinterpret_cast<double *>(data)); if (status != 0) { std::ostringstream errmsg; errmsg << "ERROR: Could not load coodintate data field 'coordz' from file '" << fileName << "'."; IOSS_ERROR(errmsg); } } else if (field.get_name() == "Kr") { assert(num_to_get == numDOF * numDOF); int status = nc_get_array(filePtr, "Kr", reinterpret_cast<double *>(data)); if (status != 0) { std::ostringstream errmsg; errmsg << "ERROR: Could not load stiffness matrix field 'Kr' from file '" << fileName << "'."; IOSS_ERROR(errmsg); } } else if (field.get_name() == "Mr") { assert(num_to_get == numDOF * numDOF); int status = nc_get_array(filePtr, "Mr", reinterpret_cast<double *>(data)); if (status != 0) { std::ostringstream errmsg; errmsg << "ERROR: Could not load mass matrix field 'Mr' from file '" << fileName << "'."; IOSS_ERROR(errmsg); } } else { std::cerr << "WARNING: " << type() << " '" << name() << "'. Unknown input field '" << field.get_name() << "'"; return -4; } return num_to_get; }