www.mooseframework.org
MemoryUsage.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 #include "GeneralPostprocessor.h"
13 #include "MemoryUsageReporter.h"
14 #include "MemoryUtils.h"
15 
16 class MemoryUsage;
17 
18 template <>
20 
25 {
26 public:
28 
30 
31  virtual void timestepSetup() override;
32 
33  virtual void initialize() override {}
34  virtual void execute() override;
35  virtual void finalize() override;
36  virtual PostprocessorValue getValue() override;
37 
38 protected:
39  enum class MemType
40  {
44  } _mem_type;
45 
46  enum class ValueType
47  {
48  total,
49  average,
52  } _value_type;
53 
56 
58  Real _value;
59 
62 
64  const bool _report_peak_value;
65 };
66 
MemoryUtils.h
MemoryUsage::_value
Real _value
memory usage metric in bytes
Definition: MemoryUsage.h:58
MemoryUsage::MemType::page_faults
MemoryUtils::MemUnits
MemUnits
Definition: MemoryUtils.h:28
MemoryUsage::getValue
virtual PostprocessorValue getValue() override
This will get called to actually grab the final value the postprocessor has calculated.
Definition: MemoryUsage.C:114
MooseObject::parameters
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseObject.h:76
MemoryUsage::ValueType
ValueType
Definition: MemoryUsage.h:46
MemoryUsage::MemoryUsage
MemoryUsage(const InputParameters &parameters)
Definition: MemoryUsage.C:40
MemoryUsage
Output maximum, average, or total process memory usage.
Definition: MemoryUsage.h:24
MemoryUsage::_mem_type
enum MemoryUsage::MemType _mem_type
MemoryUsage::ValueType::min_process
InputParameters
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
Definition: InputParameters.h:53
MemoryUsage::execute
virtual void execute() override
Execute method.
Definition: MemoryUsage.C:59
PostprocessorValue
Real PostprocessorValue
MOOSE typedefs.
Definition: MooseTypes.h:189
MemoryUsageReporter
Mix-in class for querying memory metrics used by MemoryUsage and VectorMemoryUsage.
Definition: MemoryUsageReporter.h:19
GeneralPostprocessor.h
GeneralPostprocessor
This class is here to combine the Postprocessor interface and the base class Postprocessor object alo...
Definition: GeneralPostprocessor.h:27
MemoryUsage::validParams
static InputParameters validParams()
Definition: MemoryUsage.C:20
MemoryUsage::MemType
MemType
Definition: MemoryUsage.h:39
MemoryUsage::_mem_units
MemoryUtils::MemUnits _mem_units
The unit prefix for the reported memory statistics (kilobyte, megabyte, etc).
Definition: MemoryUsage.h:55
MemoryUsage::ValueType::average
MemoryUsage::timestepSetup
virtual void timestepSetup() override
Gets called at the beginning of the timestep before this object is asked to do its job.
Definition: MemoryUsage.C:53
MemoryUsage::_report_peak_value
const bool _report_peak_value
report peak value for multiple samples in a time step
Definition: MemoryUsage.h:64
MemoryUsageReporter.h
MemoryUsage::ValueType::total
MemoryUsage::finalize
virtual void finalize() override
This is called after execute() and after threadJoin()! This is probably where you want to do MPI comm...
Definition: MemoryUsage.C:83
MemoryUsage::_value_type
enum MemoryUsage::ValueType _value_type
validParams< MemoryUsage >
InputParameters validParams< MemoryUsage >()
MemoryUsage::_peak_value
Real _peak_value
peak memory usage metric in bytes (of multiple samples in the current time step)
Definition: MemoryUsage.h:61
MemoryUsage::MemType::virtual_memory
MemoryUsage::MemType::physical_memory
MemoryUsage::ValueType::max_process
MemoryUsage::initialize
virtual void initialize() override
Called before execute() is ever called so that data can be cleared.
Definition: MemoryUsage.h:33