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 
20 
25 {
27  std::string checkpoint;
28 
30  std::vector<std::filesystem::path> restart;
31 
32  bool operator==(const CheckpointFileNames & rhs) const
33  {
34  // Compare the relevant members for equality
35  return (this->checkpoint == rhs.checkpoint) && (this->restart == rhs.restart);
36  }
37 };
38 
48 class Checkpoint : public FileOutput
49 {
50 
51  friend class AutoCheckpointAction;
52 
53 public:
55 
61 
65  virtual std::string filename() override;
66 
71  std::string directory() const;
72 
81  std::stringstream checkpointInfo() const;
82 
83  bool supportsMaterialPropertyOutput() const override { return true; }
84 
85 protected:
90  virtual void output() override;
91 
93  virtual bool shouldOutput() override;
94 
95 private:
97 
99  void validateExecuteOn() const;
100 
102  unsigned int _num_files;
103 
105  const std::string _suffix;
106 
108  std::deque<CheckpointFileNames> _file_names;
109 };
Checkpoint(const InputParameters &parameters)
Class constructor.
Definition: Checkpoint.C:59
A structure for storing the various output files associated with checkpoint output.
Definition: Checkpoint.h:24
bool supportsMaterialPropertyOutput() const override
A virtual function that stores whether output type supports material output.
Definition: Checkpoint.h:83
bool operator==(const CheckpointFileNames &rhs) const
Definition: Checkpoint.h:32
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseBase.h:131
Stores the stateful material properties computed by materials.
std::string checkpoint
Filename for CheckpointIO file (the mesh)
Definition: Checkpoint.h:27
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
void updateCheckpointFiles(CheckpointFileNames file_struct)
Definition: Checkpoint.C:165
const std::string _suffix
Directory suffix.
Definition: Checkpoint.h:105
virtual bool shouldOutput() override
Determines if the checkpoint should write out to a file.
Definition: Checkpoint.C:94
void validateExecuteOn() const
Determines if the requested values of execute_on are valid for checkpoints.
Definition: Checkpoint.C:228
virtual std::string filename() override
Returns the base filename for the checkpoint files.
Definition: Checkpoint.C:77
virtual void output() override
Outputs a checkpoint file.
Definition: Checkpoint.C:128
Writes out three things:
Definition: Checkpoint.h:48
std::vector< std::filesystem::path > restart
Filenames for restartable data.
Definition: Checkpoint.h:30
std::deque< CheckpointFileNames > _file_names
Vector of checkpoint filename structures.
Definition: Checkpoint.h:108
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:241
std::string directory() const
Retrieve the checkpoint output directory.
Definition: Checkpoint.C:88
static InputParameters validParams()
Definition: Checkpoint.C:34
unsigned int _num_files
Max no. of output files to store.
Definition: Checkpoint.h:102