void Field::write(const H5::CommonFG &loc, const H5::H5Location &parent) const { assert(invariant()); auto group = loc.createGroup(name()); H5::createAttribute(group, "type", project()->enumtype, "Field"); H5::createAttribute(group, "name", name()); // H5::createHardLink(group, "project", parent, "."); H5::createHardLink(group, "..", parent, "."); H5::createSoftLink(group, "project", ".."); // H5::createHardLink(group, "configuration", parent, // "configurations/" + configuration->name()); H5::createSoftLink(group, "configuration", "../configurations/" + configuration()->name()); H5::createHardLink(group, "project/configurations/" + configuration()->name() + "/fields", name(), group, "."); // H5::createHardLink(group, "manifold", parent, // "manifolds/" + manifold->name()); H5::createSoftLink(group, "manifold", "../manifolds/" + manifold()->name()); H5::createHardLink(group, "project/manifolds/" + manifold()->name() + "/fields", name(), group, "."); // H5::createHardLink(group, "tangentspace", parent, // "tangentspaces/" + tangentspace->name()); H5::createSoftLink(group, "tangentspace", "../tangentspaces/" + tangentspace()->name()); H5::createHardLink(group, "project/tangentspaces/" + tangentspace()->name() + "/fields", name(), group, "."); // H5::createHardLink(group, "tensortype", parent, // "tensortypes/" + tensortype->name()); H5::createSoftLink(group, "tensortype", "../tensortypes/" + tensortype()->name()); H5::createGroup(group, "discretefields", discretefields()); }
ostream &Field::output(ostream &os, int level) const { os << indent(level) << "Field " << quote(name()) << ": Configuration " << quote(configuration()->name()) << " Manifold " << quote(manifold()->name()) << " TangentSpace " << quote(tangentspace()->name()) << " TensorType " << quote(tensortype()->name()) << "\n"; for (const auto &df : discretefields()) df.second->output(os, level + 1); return os; }
void TensorComponent::write(const H5::CommonFG &loc, const H5::H5Location &parent) const { assert(invariant()); auto group = loc.createGroup(name()); H5::createAttribute(group, "type", tensortype()->project()->enumtype, "TensorComponent"); H5::createAttribute(group, "name", name()); // H5::createHardLink(group, "tensortype", parent, "."); H5::createHardLink(group, "..", parent, "."); H5::createSoftLink(group, "tensortype", ".."); H5::createAttribute(group, "storage_index", storage_index()); H5::createAttribute(group, "indexvalues", indexvalues()); }
ostream &TensorComponent::output(ostream &os, int level) const { os << indent(level) << "TensorComponent " << quote(name()) << ": TensorType " << quote(tensortype()->name()) << " storage_index=" << storage_index() << " indexvalues=" << indexvalues() << "\n"; return os; }