void Foam::porousZone::writeDict(Ostream& os, bool subDict) const { if (subDict) { os << indent << token::BEGIN_BLOCK << incrIndent << nl; os.writeKeyword("name") << zoneName() << token::END_STATEMENT << nl; } else { os << indent << zoneName() << nl << indent << token::BEGIN_BLOCK << incrIndent << nl; } if (dict_.found("note")) { os.writeKeyword("note") << string(dict_.lookup("note")) << token::END_STATEMENT << nl; } coordSys_.writeDict(os, true); if (dict_.found("porosity")) { os.writeKeyword("porosity") << porosity() << token::END_STATEMENT << nl; } // powerLaw coefficients if (const dictionary* dictPtr = dict_.subDictPtr("powerLaw")) { os << indent << "powerLaw"; dictPtr->write(os); } // Darcy-Forchheimer coefficients if (const dictionary* dictPtr = dict_.subDictPtr("Darcy")) { os << indent << "Darcy"; dictPtr->write(os); } os << decrIndent << indent << token::END_BLOCK << endl; }
virtual void reload_content() override { ContentScanner::ScanDirectory("world/zones", [this](auto path, auto filename) { std::string zoneName(filename, strlen(filename) - 5); auto z = zones.find(zoneName); if (z != zones.end()) g_log->info("replacing zone %s on-the-fly", zoneName.c_str()); // FIXME: might throw zones[zoneName] = make_unique<Zone>(content_mgr, path); }, ".json"); }