Postprocessor< dim, number > Class Template Reference

Developer Documentation: MeltPoolDG::Postprocessor< dim, number > Class Template Reference
Developer Documentation
MeltPoolDG::Postprocessor< dim, number > Class Template Reference

#include <postprocessor.hpp>

Collaboration diagram for MeltPoolDG::Postprocessor< dim, number >:
[legend]

Classes

struct  ObstacleOutput
 

Public Member Functions

 Postprocessor (const MPI_Comm mpi_communicator_in, const OutputData< number > &output_data_in, const TimeIntegration::TimeSteppingData< number > &time_data, const dealii::Mapping< dim > &mapping_in, const dealii::Triangulation< dim > &triangulation_in, const ConditionalOStream &pcout_in)
 
void process (const int n_time_step, const GenericDataOut< dim, number > &generic_data_out, const number time=-1.0, const bool force_output=false, const bool force_update_requested_output_variables=false)
 
void process (const int n_time_step, const std::function< void(GenericDataOut< dim, number > &)> &attach_output_vectors, const number time=-1.0)
 
void process_particles (const int n_time_step, const number time)
 
bool is_output_timestep (const int n_time_step, const number time) const
 
template<class Archive >
void serialize (Archive &ar, const unsigned int)
 
void register_obstacle_output (dealii::Particles::ParticleHandler< dim > const *particle_handler, const std::vector< std::string > &property_names, const std::vector< dealii::DataComponentInterpretation::DataComponentInterpretation > &property_data_component_interpretation)
 
template<typename ComplexVectorType >
void output_complex_valued_vector_to_csv (const int n_time_step, const number time, const ComplexVectorType &output_vector, const std::string &filename, const bool force_output=false) const
 

Private Member Functions

void clean_pvd (std::vector< std::pair< number, std::string > > &times_and_names)
 Clean non-existing *.pvtu files from the *.pvd file. This is required if we perform a restart and write the output to a different directory compared to the original simulation.
 
void write_paraview_files (const unsigned int n_time_step, const number time, const GenericDataOut< dim, number > &generic_data_out, const bool force_output_all=false)
 
void write_particle_paraview_files (const unsigned int n_time_step, const number time)
 Writes particles from the registered particle handler to ParaView files, including their positions and properties for obstacle output.
 
void print_boundary_ids ()
 

Private Attributes

const MPI_Comm mpi_communicator
 
const OutputData< number > & output_data
 
const dealii::Mapping< dim > & mapping
 
const dealii::Triangulation< dim > & triangulation
 
const ConditionalOStream pcout
 
const bool do_simplex
 
const number end_time
 
number time_at_last_output = 0.0
 
struct MeltPoolDG::Postprocessor::ObstacleOutput obstacle_output
 
std::vector< unsigned int > idx_req_vars
 
std::vector< std::pair< number, std::string > > vector_times_and_names
 Times and filenames of previously written vector output.
 
std::vector< std::pair< number, std::string > > particle_times_and_names
 Times and filenames of previously written particle output.
 

Constructor & Destructor Documentation

◆ Postprocessor()

template<int dim, typename number >
MeltPoolDG::Postprocessor< dim, number >::Postprocessor ( const MPI_Comm  mpi_communicator_in,
const OutputData< number > &  output_data_in,
const TimeIntegration::TimeSteppingData< number > &  time_data,
const dealii::Mapping< dim > &  mapping_in,
const dealii::Triangulation< dim > &  triangulation_in,
const ConditionalOStream &  pcout_in 
)

Member Function Documentation

◆ clean_pvd()

template<int dim, typename number >
void MeltPoolDG::Postprocessor< dim, number >::clean_pvd ( std::vector< std::pair< number, std::string > > &  times_and_names)
private

Clean non-existing *.pvtu files from the *.pvd file. This is required if we perform a restart and write the output to a different directory compared to the original simulation.

Parameters
times_and_namesTimes and filenames of previously written output. This vector is modified in-place to exclude entries referring to missing *.pvtu files.

◆ is_output_timestep()

template<int dim, typename number >
bool MeltPoolDG::Postprocessor< dim, number >::is_output_timestep ( const int  n_time_step,
const number  time 
) const
inline

Determines whether postprocessing should be performed now.

◆ output_complex_valued_vector_to_csv()

template<int dim, typename number >
template<typename ComplexVectorType >
void MeltPoolDG::Postprocessor< dim, number >::output_complex_valued_vector_to_csv ( const int  n_time_step,
const number  time,
const ComplexVectorType &  output_vector,
const std::string &  filename,
const bool  force_output = false 
) const

Stores the passed complex valued vector in a csv file with the given name. The output is only performed if the current time is an output time step.

Parameters
n_time_stepCurrent time step number.
timeCurrent simulation time.
output_vectorThe complex valued vector to be written to file.
filenameThe name of the output file. The directory in which the file is stored is the output directory specified in the output data struct.
force_outputIf true, the output is performed regardless of whether the current time step is an output time step or not.

◆ print_boundary_ids()

template<int dim, typename number >
void MeltPoolDG::Postprocessor< dim, number >::print_boundary_ids ( )
private

◆ process() [1/2]

template<int dim, typename number >
void MeltPoolDG::Postprocessor< dim, number >::process ( const int  n_time_step,
const GenericDataOut< dim, number > &  generic_data_out,
const number  time = -1.0,
const bool  force_output = false,
const bool  force_update_requested_output_variables = false 
)

This function collects and performs all relevant postprocessing steps.

◆ process() [2/2]

template<int dim, typename number >
void MeltPoolDG::Postprocessor< dim, number >::process ( const int  n_time_step,
const std::function< void(GenericDataOut< dim, number > &)> &  attach_output_vectors,
const number  time = -1.0 
)

This function collects and performs all relevant postprocessing steps.

◆ process_particles()

template<int dim, typename number >
void MeltPoolDG::Postprocessor< dim, number >::process_particles ( const int  n_time_step,
const number  time 
)

This function performs the relevant output steps related to particles, i.e. writing particle output files and printing boundary ids if requested.

Parameters
n_time_stepCurrent time step number.
timeCurrent simulation time.

◆ register_obstacle_output()

template<int dim, typename number >
void MeltPoolDG::Postprocessor< dim, number >::register_obstacle_output ( dealii::Particles::ParticleHandler< dim > const *  particle_handler,
const std::vector< std::string > &  property_names,
const std::vector< dealii::DataComponentInterpretation::DataComponentInterpretation > &  property_data_component_interpretation 
)
inline

◆ serialize()

template<int dim, typename number >
template<class Archive >
void MeltPoolDG::Postprocessor< dim, number >::serialize ( Archive &  ar,
const unsigned int   
)
inline

◆ write_paraview_files()

template<int dim, typename number >
void MeltPoolDG::Postprocessor< dim, number >::write_paraview_files ( const unsigned int  n_time_step,
const number  time,
const GenericDataOut< dim, number > &  generic_data_out,
const bool  force_output_all = false 
)
private

◆ write_particle_paraview_files()

template<int dim, typename number >
void MeltPoolDG::Postprocessor< dim, number >::write_particle_paraview_files ( const unsigned int  n_time_step,
const number  time 
)
private

Writes particles from the registered particle handler to ParaView files, including their positions and properties for obstacle output.

Note
The member function register_obstacle_output() must be called once beforehand. This is not verified internally, so it is the caller's responsibility to ensure it.
Parameters
n_time_stepCurrent time step number.
timeCurrent simulation time.

Member Data Documentation

◆ do_simplex

template<int dim, typename number >
const bool MeltPoolDG::Postprocessor< dim, number >::do_simplex
private

◆ end_time

template<int dim, typename number >
const number MeltPoolDG::Postprocessor< dim, number >::end_time
private

◆ idx_req_vars

template<int dim, typename number >
std::vector<unsigned int> MeltPoolDG::Postprocessor< dim, number >::idx_req_vars
private

◆ mapping

template<int dim, typename number >
const dealii::Mapping<dim>& MeltPoolDG::Postprocessor< dim, number >::mapping
private

◆ mpi_communicator

template<int dim, typename number >
const MPI_Comm MeltPoolDG::Postprocessor< dim, number >::mpi_communicator
private

◆ obstacle_output

template<int dim, typename number >
struct MeltPoolDG::Postprocessor::ObstacleOutput MeltPoolDG::Postprocessor< dim, number >::obstacle_output
private

◆ output_data

template<int dim, typename number >
const OutputData<number>& MeltPoolDG::Postprocessor< dim, number >::output_data
private

◆ particle_times_and_names

template<int dim, typename number >
std::vector<std::pair<number, std::string> > MeltPoolDG::Postprocessor< dim, number >::particle_times_and_names
private

Times and filenames of previously written particle output.

◆ pcout

template<int dim, typename number >
const ConditionalOStream MeltPoolDG::Postprocessor< dim, number >::pcout
private

◆ time_at_last_output

template<int dim, typename number >
number MeltPoolDG::Postprocessor< dim, number >::time_at_last_output = 0.0
private

◆ triangulation

template<int dim, typename number >
const dealii::Triangulation<dim>& MeltPoolDG::Postprocessor< dim, number >::triangulation
private

◆ vector_times_and_names

template<int dim, typename number >
std::vector<std::pair<number, std::string> > MeltPoolDG::Postprocessor< dim, number >::vector_times_and_names
private

Times and filenames of previously written vector output.


The documentation for this class was generated from the following files: