![]() |
OGS
|
|
Manages writing the solution of processes to disk.
This class decides at which timesteps output is written and initiates the writing process.
Definition at line 29 of file ProcessLib/Output/Output.h.
#include <Output.h>
Public Member Functions | |
| Output (std::unique_ptr< OutputFormat > &&output_format, bool const output_nonlinear_iteration_results, OutputDataSpecification &&output_data_specification, std::vector< std::string > &&mesh_names_for_output, std::vector< std::unique_ptr< MeshLib::Mesh > > const &meshes) | |
| Output (Output const &other)=delete | |
| Output (Output &&other)=default | |
| Output & | operator= (Output const &src)=delete |
| Output & | operator= (Output &&src)=default |
| ~Output ()=default | |
| void | addProcess (ProcessLib::Process const &process) |
| TODO doc. Opens a PVD file for each process. | |
| void | doNotProjectFromBulkMeshToSubmeshes (std::string const &property_name, MeshLib::MeshItemType const mesh_item_type) |
| void | doOutput (Process const &process, const int process_id, int const timestep, const NumLib::Time &t, int const iteration, bool const converged, std::vector< GlobalVector * > const &xs) const |
| void | doOutputLastTimestep (Process const &process, const int process_id, int const timestep, const NumLib::Time &t, int const iteration, bool const converged, std::vector< GlobalVector * > const &xs) const |
| void | doOutputAlways (Process const &process, const int process_id, int const timestep, const NumLib::Time &t, int const iteration, bool const converged, std::vector< GlobalVector * > const &xs) const |
| void | doOutputNonlinearIteration (Process const &process, const int process_id, int const timestep, const NumLib::Time &t, const int iteration, bool const converged, std::vector< GlobalVector * > const &xs) const |
| bool | isOutputStep (int const timestep, NumLib::Time const &t) const |
| Tells if output will be written at the specified timestep/time. | |
| std::vector< double > const & | getFixedOutputTimes () const |
| std::vector< std::string > | getFileNamesForOutput () const |
Private Member Functions | |
| bool | isOutputProcess (int const process_id, Process const &process) const |
| void | outputMeshes (int const timestep, const double t, int const iteration, bool const converged, std::vector< std::reference_wrapper< const MeshLib::Mesh > > const &meshes) const |
| MeshLib::Mesh const & | prepareSubmesh (std::string const &submesh_output_name, Process const &process, const int process_id, NumLib::Time const &t, std::vector< GlobalVector * > const &xs) const |
Private Attributes | |
| std::unique_ptr< OutputFormat > | _output_format |
| bool | _output_nonlinear_iteration_results |
| OutputDataSpecification | _output_data_specification |
| std::vector< std::reference_wrapper< Process const > > | _output_processes |
| std::vector< std::string > | _mesh_names_for_output |
| std::reference_wrapper< std::vector< std::unique_ptr< MeshLib::Mesh > > const > | _meshes |
| std::set< std::pair< std::string, MeshLib::MeshItemType > > | _do_not_project_from_bulk_mesh_to_submeshes |
Friends | |
| std::ostream & | operator<< (std::ostream &os, Output const &output) |
| ProcessLib::Output::Output | ( | std::unique_ptr< OutputFormat > && | output_format, |
| bool const | output_nonlinear_iteration_results, | ||
| OutputDataSpecification && | output_data_specification, | ||
| std::vector< std::string > && | mesh_names_for_output, | ||
| std::vector< std::unique_ptr< MeshLib::Mesh > > const & | meshes ) |
Definition at line 140 of file ProcessLib/Output/Output.cpp.
References _mesh_names_for_output, _meshes, _output_data_specification, _output_format, and _output_nonlinear_iteration_results.
Referenced by Output(), Output(), operator<<, operator=(), and operator=().
|
default |
| void ProcessLib::Output::addProcess | ( | ProcessLib::Process const & | process | ) |
TODO doc. Opens a PVD file for each process.
Definition at line 153 of file ProcessLib/Output/Output.cpp.
References _mesh_names_for_output, _output_processes, ProcessLib::Process::getMesh(), and MeshLib::Mesh::getName().
| void ProcessLib::Output::doNotProjectFromBulkMeshToSubmeshes | ( | std::string const & | property_name, |
| MeshLib::MeshItemType const | mesh_item_type ) |
Declare that the specified mesh property should not be projected from the bulk mesh to submeshes during submesh output.
Definition at line 162 of file ProcessLib/Output/Output.cpp.
References _do_not_project_from_bulk_mesh_to_submeshes.
| void ProcessLib::Output::doOutput | ( | Process const & | process, |
| const int | process_id, | ||
| int const | timestep, | ||
| const NumLib::Time & | t, | ||
| int const | iteration, | ||
| bool const | converged, | ||
| std::vector< GlobalVector * > const & | xs ) const |
Writes output for the given process if it should be written in the given timestep.
Definition at line 331 of file ProcessLib/Output/Output.cpp.
References _output_format, InSituLib::CoProcess(), doOutputAlways(), ProcessLib::Process::getMesh(), and isOutputStep().
Referenced by ProcessLib::TimeLoop::calculateNextTimeStep(), and ProcessLib::TimeLoop::initialize().
| void ProcessLib::Output::doOutputAlways | ( | Process const & | process, |
| const int | process_id, | ||
| int const | timestep, | ||
| const NumLib::Time & | t, | ||
| int const | iteration, | ||
| bool const | converged, | ||
| std::vector< GlobalVector * > const & | xs ) const |
Writes output for the given process. This method will always write. It is intended to write output in error handling routines.
Definition at line 283 of file ProcessLib/Output/Output.cpp.
References _mesh_names_for_output, _output_data_specification, ProcessLib::addProcessDataToMesh(), ProcessLib::createProcessOutputData(), BaseLib::RunTime::elapsed(), ProcessLib::Process::getMesh(), MeshLib::Mesh::getName(), INFO(), isOutputProcess(), outputMeshes(), prepareSubmesh(), and BaseLib::RunTime::start().
Referenced by doOutput(), and doOutputLastTimestep().
| void ProcessLib::Output::doOutputLastTimestep | ( | Process const & | process, |
| const int | process_id, | ||
| int const | timestep, | ||
| const NumLib::Time & | t, | ||
| int const | iteration, | ||
| bool const | converged, | ||
| std::vector< GlobalVector * > const & | xs ) const |
Writes output for the given process if it has not been written yet. This method is intended for doing output after the last timestep in order to make sure that its results are written.
Definition at line 352 of file ProcessLib/Output/Output.cpp.
References _output_format, InSituLib::CoProcess(), doOutputAlways(), ProcessLib::Process::getMesh(), and isOutputStep().
Referenced by ProcessLib::TimeLoop::outputLastTimeStep().
| void ProcessLib::Output::doOutputNonlinearIteration | ( | Process const & | process, |
| const int | process_id, | ||
| int const | timestep, | ||
| const NumLib::Time & | t, | ||
| const int | iteration, | ||
| bool const | converged, | ||
| std::vector< GlobalVector * > const & | xs ) const |
Writes output for the given process. To be used for debug output after an iteration of the nonlinear solver.
Definition at line 371 of file ProcessLib/Output/Output.cpp.
References _output_data_specification, _output_format, _output_nonlinear_iteration_results, ProcessLib::addProcessDataToMesh(), ProcessLib::createProcessOutputData(), ProcessLib::OutputVTKFormat::data_mode, DBUG(), BaseLib::RunTime::elapsed(), ProcessLib::Process::getMesh(), MeshLib::Mesh::getName(), INFO(), isOutputProcess(), BaseLib::joinPaths(), ProcessLib::outputMeshVtk(), and BaseLib::RunTime::start().
| std::vector< std::string > ProcessLib::Output::getFileNamesForOutput | ( | ) | const |
Definition at line 422 of file ProcessLib/Output/Output.cpp.
References _mesh_names_for_output, and _output_format.
|
inline |
Definition at line 87 of file ProcessLib/Output/Output.h.
References _output_data_specification.
|
private |
Determines if output should be written for the given process.
With staggered coupling not every process writes output.
Definition at line 128 of file ProcessLib/Output/Output.cpp.
References _output_processes, and ProcessLib::Process::isMonolithicSchemeUsed().
Referenced by doOutputAlways(), and doOutputNonlinearIteration().
| bool ProcessLib::Output::isOutputStep | ( | int const | timestep, |
| NumLib::Time const & | t ) const |
Tells if output will be written at the specified timestep/time.
Definition at line 417 of file ProcessLib/Output/Output.cpp.
References _output_data_specification.
Referenced by doOutput(), and doOutputLastTimestep().
|
private |
Definition at line 170 of file ProcessLib/Output/Output.cpp.
References _output_data_specification, and _output_format.
Referenced by doOutputAlways().
|
private |
Definition at line 209 of file ProcessLib/Output/Output.cpp.
References _do_not_project_from_bulk_mesh_to_submeshes, _meshes, _output_data_specification, ProcessLib::addBulkMeshPropertyToSubMesh(), ProcessLib::addProcessDataToMesh(), ProcessLib::createProcessOutputData(), DBUG(), MeshLib::findMeshByName(), ProcessLib::Process::getMesh(), MeshLib::Mesh::getProperties(), and MeshLib::Properties::getPropertyVectorNames().
Referenced by doOutputAlways().
|
friend |
Definition at line 448 of file ProcessLib/Output/Output.cpp.
References Output(), _output_data_specification, and _output_format.
|
private |
Definition at line 131 of file ProcessLib/Output/Output.h.
Referenced by doNotProjectFromBulkMeshToSubmeshes(), and prepareSubmesh().
|
private |
Definition at line 119 of file ProcessLib/Output/Output.h.
Referenced by Output(), addProcess(), doOutputAlways(), and getFileNamesForOutput().
|
private |
Definition at line 128 of file ProcessLib/Output/Output.h.
Referenced by Output(), and prepareSubmesh().
|
private |
Definition at line 117 of file ProcessLib/Output/Output.h.
Referenced by Output(), doOutputAlways(), doOutputNonlinearIteration(), getFixedOutputTimes(), isOutputStep(), operator<<, outputMeshes(), and prepareSubmesh().
|
private |
Definition at line 113 of file ProcessLib/Output/Output.h.
Referenced by Output(), doOutput(), doOutputLastTimestep(), doOutputNonlinearIteration(), getFileNamesForOutput(), operator<<, and outputMeshes().
|
private |
Definition at line 115 of file ProcessLib/Output/Output.h.
Referenced by Output(), and doOutputNonlinearIteration().
|
private |
Definition at line 118 of file ProcessLib/Output/Output.h.
Referenced by addProcess(), and isOutputProcess().