OGS
CreateOutputConfig.cpp File Reference

Detailed Description

Definition in file CreateOutputConfig.cpp.

Include dependency graph for CreateOutputConfig.cpp:

Go to the source code of this file.

Namespaces

namespace  ProcessLib
 

Functions

std::string createMeshOutputName (std::vector< int > const &material_ids, std::string const &mesh_name)
 
std::string parseOutputMeshConfig (BaseLib::ConfigTree const &output_mesh_config, std::vector< std::unique_ptr< MeshLib::Mesh > > &meshes)
 
OutputConfig ProcessLib::createOutputConfig (const BaseLib::ConfigTree &config, std::vector< std::unique_ptr< MeshLib::Mesh > > &meshes)
 

Function Documentation

◆ createMeshOutputName()

std::string createMeshOutputName ( std::vector< int > const & material_ids,
std::string const & mesh_name )

Definition at line 28 of file CreateOutputConfig.cpp.

30{
31 if (material_ids.empty())
32 {
33 return mesh_name;
34 }
35 return mesh_name + "_" + fmt::format("{}", fmt::join(material_ids, "_"));
36}

Referenced by parseOutputMeshConfig().

◆ parseOutputMeshConfig()

std::string parseOutputMeshConfig ( BaseLib::ConfigTree const & output_mesh_config,
std::vector< std::unique_ptr< MeshLib::Mesh > > & meshes )
Input File Parameter
prj__time_loop__output__meshes__mesh__material_ids

Definition at line 38 of file CreateOutputConfig.cpp.

41{
42 auto const mesh_name = output_mesh_config.getValue<std::string>();
43 auto const& mesh = MeshLib::findMeshByName(meshes, mesh_name);
44
45 auto material_id_string =
47 output_mesh_config.getConfigAttributeOptional<std::string>(
48 "material_ids");
49
50 if (!material_id_string)
51 {
52 return mesh_name;
53 }
54
55 auto const material_ids_for_output =
56 MaterialLib::splitMaterialIdString(*material_id_string);
57#ifdef USE_PETSC
58 // this mesh isn't yet a NodePartitionedMesh
59 auto subdomain_mesh = MeshLib::createMaterialIDsBasedSubMesh(
60 mesh, material_ids_for_output,
61 createMeshOutputName(material_ids_for_output, mesh_name));
62 auto const* bulk_mesh =
63 dynamic_cast<MeshLib::NodePartitionedMesh const*>(&mesh);
65 bulk_mesh, subdomain_mesh.get()));
66#else
68 mesh, material_ids_for_output,
69 createMeshOutputName(material_ids_for_output, mesh_name)));
70#endif
71
72 return meshes.back()->getName();
73}
std::string createMeshOutputName(std::vector< int > const &material_ids, std::string const &mesh_name)
std::vector< int > splitMaterialIdString(std::string const &material_id_string)
Mesh & findMeshByName(std::vector< std::unique_ptr< Mesh > > const &meshes, std::string_view const name)
Definition Mesh.cpp:364
std::unique_ptr< MeshLib::Mesh > createMaterialIDsBasedSubMesh(MeshLib::Mesh const &mesh, std::vector< int > const &material_ids, std::string const &name_for_created_mesh)
std::unique_ptr< NodePartitionedMesh > transformMeshToNodePartitionedMesh(NodePartitionedMesh const *const bulk_mesh, Mesh const *const subdomain_mesh)

References MeshLib::createMaterialIDsBasedSubMesh(), createMeshOutputName(), MeshLib::findMeshByName(), BaseLib::ConfigTree::getConfigAttributeOptional(), MeshLib::Mesh::getName(), BaseLib::ConfigTree::getValue(), MaterialLib::splitMaterialIdString(), and MeshLib::transformMeshToNodePartitionedMesh().

Referenced by ProcessLib::createOutputConfig().