ASPECT
|
Static Public Member Functions | |
static void | declare_parameters (ParameterHandler &prm) |
Static Public Member Functions inherited from aspect::Plugins::InterfaceBase | |
static void | declare_parameters (ParameterHandler &prm) |
Static Public Member Functions inherited from aspect::SimulatorAccess< dim > | |
static void | get_composition_values_at_q_point (const std::vector< std::vector< double >> &composition_values, const unsigned int q, std::vector< double > &composition_values_at_q_point) |
Private Types | |
enum | Output { Output::VolumeFraction, Output::RotationMatrix, Output::EulerAngles, Output::not_found } |
Private Member Functions | |
Output | string_to_output_enum (const std::string &string) |
void | set_last_output_time (const double current_time) |
Static Private Member Functions | |
static void | writer (const std::string &filename, const std::string &temporary_filename, const std::string &file_contents, const bool compress_contents) |
Private Attributes | |
double | end_time |
std::mt19937 | random_number_generator |
unsigned int | random_number_seed |
double | output_interval |
double | last_output_time |
unsigned int | output_file_number |
std::vector< std::string > | output_formats |
std::vector< std::pair< double, std::string > > | times_and_pvtu_file_names |
std::vector< std::pair< double, std::vector< std::string > > > | times_and_vtu_file_names |
std::vector< std::vector< std::string > > | output_file_names_by_timestep |
std::vector< XDMFEntry > | xdmf_entries |
unsigned int | group_files |
std::string | temporary_output_location |
bool | write_in_background_thread |
std::thread | background_thread_main |
std::vector< std::pair< unsigned int, Output > > | write_raw_cpo |
bool | compute_raw_euler_angles |
std::thread | background_thread_content_raw |
std::vector< std::pair< unsigned int, Output > > | write_draw_volume_weighted_cpo |
bool | compute_weighted_rotation_matrix |
std::thread | background_thread_content_draw_volume_weighting |
bool | compress_cpo_data_files |
A Postprocessor that writes out CPO specific particle data. It can write out the CPO data as it is stored (raw) and/or as a random draw volume weighted representation. The latter one is recommended for plotting against real data. For both representations the specific output fields and their order can be set.
Definition at line 45 of file crystal_preferred_orientation.h.
|
strongprivate |
Enums specifying what information to write:
VolumeFraction: Write the volume fraction RotationMatrix: Write the whole rotation matrix of a grain (in deal.ii order) EulerAngles: Write out the Z-X-Z Euler angle of a grain not_found: Error enum, the requested output was not found
Enumerator | |
---|---|
VolumeFraction | |
RotationMatrix | |
EulerAngles | |
not_found |
Definition at line 109 of file crystal_preferred_orientation.h.
aspect::Postprocess::CrystalPreferredOrientation< dim >::CrystalPreferredOrientation | ( | ) |
Constructor.
aspect::Postprocess::CrystalPreferredOrientation< dim >::~CrystalPreferredOrientation | ( | ) |
Destructor.
|
overridevirtual |
Initialize function.
Reimplemented from aspect::Plugins::InterfaceBase.
|
overridevirtual |
A Postprocessor that writes out CPO specific particle data. It can write out the CPO data as it is stored (raw) and/or as a random draw volume weighted representation. The latter one is recommended for plotting against real data. For both representations the specific output fields and their order can be set.
Implements aspect::Postprocess::Interface< dim >.
|
overridevirtual |
This function ensures that the particle postprocessor is run before this postprocessor.
Reimplemented from aspect::Postprocess::Interface< dim >.
|
static |
Declare the parameters this class takes through input files.
|
overridevirtual |
Read the parameters this class declares from the parameter file.
Reimplemented from aspect::Plugins::InterfaceBase.
|
private |
Converts a string to an Output enum.
|
private |
Set the time output was supposed to be written. In the simplest case, this is the previous last output time plus the interval, but in general we'd like to ensure that it is the largest supposed output time, which is smaller than the current time, to avoid falling behind with last_output_time and having to catch up once the time step becomes larger. This is done after every output.
|
staticprivate |
A function that writes the text in the second argument to a file with the name given in the first argument. The function is run on a separate thread to allow computations to continue even though writing data is still continuing. The function takes over ownership of these arguments and deletes them at the end of its work.
|
private |
Stores the simulation end time, so that it always produces output at the last timestep.
Definition at line 99 of file crystal_preferred_orientation.h.
|
mutableprivate |
Random number generator used for random draw volume weighting.
Definition at line 122 of file crystal_preferred_orientation.h.
|
private |
Random number generator seed used to initialize the random number generator.
Definition at line 127 of file crystal_preferred_orientation.h.
|
private |
Interval between output (in years if appropriate simulation parameter is set, otherwise seconds)
Definition at line 133 of file crystal_preferred_orientation.h.
|
private |
Records time for next output to occur
Definition at line 138 of file crystal_preferred_orientation.h.
|
private |
Consecutively counted number indicating the how-manyth time we will create output the next time we get to it.
Definition at line 154 of file crystal_preferred_orientation.h.
|
private |
Graphical output format.
Definition at line 159 of file crystal_preferred_orientation.h.
|
private |
A list of pairs (time, pvtu_filename) that have so far been written and that we will pass to DataOutInterface::write_pvd_record to create a main file that can make the association between simulation time and corresponding file name (this is done because there is no way to store the simulation time inside the .pvtu or .vtu files).
Definition at line 169 of file crystal_preferred_orientation.h.
|
private |
A corresponding variable that we use for the .visit files created by DataOutInterface::write_visit_record. The second part of a pair contains all files that together form a time step.
Definition at line 176 of file crystal_preferred_orientation.h.
|
private |
A list of list of filenames, sorted by timestep, that correspond to what has been created as output. This is used to create a main .visit file for the entire simulation.
Definition at line 183 of file crystal_preferred_orientation.h.
|
private |
A set of data related to XDMF file sections describing the HDF5 heavy data files created. These contain things such as the dimensions and names of data written at all steps during the simulation.
Definition at line 191 of file crystal_preferred_orientation.h.
|
private |
VTU file output supports grouping files from several CPUs into one file using MPI I/O when writing on a parallel filesystem. 0 means no grouping (and no parallel I/O). 1 will generate one big file containing the whole solution.
Definition at line 199 of file crystal_preferred_orientation.h.
|
private |
On large clusters it can be advantageous to first write the output to a temporary file on a local file system and later move this file to a network file system. If this variable is set to a non-empty string it will be interpreted as a temporary storage location.
Definition at line 208 of file crystal_preferred_orientation.h.
|
private |
File operations can potentially take a long time, blocking the progress of the rest of the model run. Setting this variable to 'true' moves this process into a background thread, while the rest of the model continues.
Definition at line 216 of file crystal_preferred_orientation.h.
|
private |
Handle to a thread that is used to write main file data in the background. The writer() function runs on this background thread.
Definition at line 222 of file crystal_preferred_orientation.h.
|
private |
What "raw" CPO data to write out.
Definition at line 227 of file crystal_preferred_orientation.h.
|
private |
Whether computing raw Euler angles is needed.
Definition at line 232 of file crystal_preferred_orientation.h.
|
private |
Handle to a thread that is used to write content file data in the background. The writer() function runs on this background thread.
Definition at line 238 of file crystal_preferred_orientation.h.
|
private |
What "draw volume weighted" CPO data to write out. Draw volume weighted means the grain properties (size and rotation) are put in a list sorted based by volume and picked randomly, with large volumes having a higher chance of being picked.
Definition at line 245 of file crystal_preferred_orientation.h.
|
private |
Whether computing weighted A matrix is needed.
Definition at line 250 of file crystal_preferred_orientation.h.
|
private |
Handle to a thread that is used to write content file data in the background. The writer() function runs on this background thread.
Definition at line 256 of file crystal_preferred_orientation.h.
|
private |
Whether to compress the raw and weighed cpo data output files with zlib.
Definition at line 261 of file crystal_preferred_orientation.h.