www.mooseframework.org
ExodusTimeSequenceStepper.C
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 
11 #include "MooseUtils.h"
12 #include "libmesh/serial_mesh.h"
13 #include "libmesh/exodusII_io.h"
14 
16 
18 
21 {
23  params.addRequiredParam<MeshFileName>(
24  "mesh",
25  "The name of the mesh file to extract the time sequence from (must be an exodusII file).");
26  params.addClassDescription("Solves the Transient problem at a sequence of time points taken from "
27  "a specified exodus file.");
28  return params;
29 }
30 
32  : TimeSequenceStepperBase(parameters), _mesh_file(getParam<MeshFileName>("mesh"))
33 {
34  // Read the Exodus file on processor 0
35  std::vector<Real> times;
36  if (processor_id() == 0)
37  {
38  // Check that the required file exists
40 
41  // dummy mesh
42  ReplicatedMesh mesh(_communicator);
43 
44  ExodusII_IO exodusII_io(mesh);
45  exodusII_io.read(_mesh_file);
46  times = exodusII_io.get_time_steps();
47  }
48 
49  // distribute timestep list
50  unsigned int num_steps = times.size();
51  _communicator.broadcast(num_steps);
52  times.resize(num_steps);
53  _communicator.broadcast(times);
54 
55  setupSequence(times);
56 }
TimeSequenceStepperBase
Solves the PDEs at a sequence of given time points.
Definition: TimeSequenceStepperBase.h:23
defineLegacyParams
defineLegacyParams(ExodusTimeSequenceStepper)
ExodusTimeSequenceStepper::_mesh_file
std::string _mesh_file
The ExodusII file that is being read.
Definition: ExodusTimeSequenceStepper.h:32
ExodusTimeSequenceStepper::validParams
static InputParameters validParams()
Definition: ExodusTimeSequenceStepper.C:20
InputParameters
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
Definition: InputParameters.h:53
TimeSequenceStepperBase::setupSequence
void setupSequence(const std::vector< Real > &times)
Definition: TimeSequenceStepperBase.C:31
ExodusTimeSequenceStepper
Solves the PDEs at a sequence of time points given as a vector in the input file.
Definition: ExodusTimeSequenceStepper.h:23
InputParameters::addClassDescription
void addClassDescription(const std::string &doc_string)
This method adds a description of the class that will be displayed in the input file syntax dump.
Definition: InputParameters.C:70
TimeSequenceStepperBase::validParams
static InputParameters validParams()
Definition: TimeSequenceStepperBase.C:17
ExodusTimeSequenceStepper.h
MooseUtils::checkFileReadable
bool checkFileReadable(const std::string &filename, bool check_line_endings=false, bool throw_on_unreadable=true)
Checks to see if a file is readable (exists and permissions)
Definition: MooseUtils.C:158
ExodusTimeSequenceStepper::ExodusTimeSequenceStepper
ExodusTimeSequenceStepper(const InputParameters &parameters)
Definition: ExodusTimeSequenceStepper.C:31
MooseUtils.h
registerMooseObject
registerMooseObject("MooseApp", ExodusTimeSequenceStepper)
InputParameters::addRequiredParam
void addRequiredParam(const std::string &name, const std::string &doc_string)
This method adds a parameter and documentation string to the InputParameters object that will be extr...
Definition: InputParameters.h:1176