https://mooseframework.inl.gov
Checkpoint.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 // MOOSE includes
13 #include "FileOutput.h"
14 #include "AutoCheckpointAction.h"
15 
16 #include <deque>
17 #include <filesystem>
18 
28 enum CheckpointType : unsigned short
29 {
32 };
33 
35 
40 {
42  std::string checkpoint;
43 
45  std::vector<std::filesystem::path> restart;
46 
47  bool operator==(const CheckpointFileNames & rhs) const
48  {
49  // Compare the relevant members for equality
50  return (this->checkpoint == rhs.checkpoint) && (this->restart == rhs.restart);
51  }
52 };
53 
63 class Checkpoint : public FileOutput
64 {
65 
66  friend class AutoCheckpointAction;
67 
68 public:
70 
76 
80  virtual std::string filename() override;
81 
86  std::string directory() const;
87 
90 
99  std::stringstream checkpointInfo() const;
100 
101  bool supportsMaterialPropertyOutput() const override { return true; }
102 
103 protected:
108  virtual void output() override;
109 
111  virtual bool shouldOutput() override;
112 
113 private:
114  void updateCheckpointFiles(CheckpointFileNames file_struct);
115 
117  void validateExecuteOn() const;
118 
121 
123  unsigned int _num_files;
124 
126  const std::string _suffix;
127 
129  std::deque<CheckpointFileNames> _file_names;
130 };
Checkpoint(const InputParameters &parameters)
Class constructor.
Definition: Checkpoint.C:68
A structure for storing the various output files associated with checkpoint output.
Definition: Checkpoint.h:39
bool supportsMaterialPropertyOutput() const override
A virtual function that stores whether output type supports material output.
Definition: Checkpoint.h:101
CheckpointType
Enumerated type for determining what type of checkpoint this is.
Definition: Checkpoint.h:28
bool operator==(const CheckpointFileNames &rhs) const
Definition: Checkpoint.h:47
Stores the stateful material properties computed by materials.
std::string checkpoint
Filename for CheckpointIO file (the mesh)
Definition: Checkpoint.h:42
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
void updateCheckpointFiles(CheckpointFileNames file_struct)
Definition: Checkpoint.C:187
const std::string _suffix
Directory suffix.
Definition: Checkpoint.h:126
virtual bool shouldOutput() override
Determines if the checkpoint should write out to a file.
Definition: Checkpoint.C:108
void validateExecuteOn() const
Determines if the requested values of execute_on are valid for checkpoints.
Definition: Checkpoint.C:250
virtual std::string filename() override
Returns the base filename for the checkpoint files.
Definition: Checkpoint.C:91
CheckpointType _checkpoint_type
Determines if this checkpoint is an autosave, and what kind of autosave it is.
Definition: Checkpoint.h:120
virtual void output() override
Outputs a checkpoint file.
Definition: Checkpoint.C:150
Writes out three things:
Definition: Checkpoint.h:63
std::vector< std::filesystem::path > restart
Filenames for restartable data.
Definition: Checkpoint.h:45
std::deque< CheckpointFileNames > _file_names
Vector of checkpoint filename structures.
Definition: Checkpoint.h:129
const InputParameters & parameters() const
Get the parameters of the object.
An outputter with filename support.
Definition: FileOutput.h:20
std::stringstream checkpointInfo() const
Gathers and records information used later for console output.
Definition: Checkpoint.C:263
std::string directory() const
Retrieve the checkpoint output directory.
Definition: Checkpoint.C:102
static InputParameters validParams()
Definition: Checkpoint.C:34
void setAutosaveFlag(CheckpointType flag)
Sets the autosave flag manually if the object has already been initialized.
Definition: Checkpoint.h:89
unsigned int _num_files
Max no. of output files to store.
Definition: Checkpoint.h:123