LCOV - code coverage report
Current view: top level - src/timesteppers - ExodusTimeSequenceStepper.C (source / functions) Hit Total Coverage
Test: idaholab/moose framework: 2bf808 Lines: 21 22 95.5 %
Date: 2025-07-17 01:28:37 Functions: 2 2 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       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             : #include "ExodusTimeSequenceStepper.h"
      11             : #include "MooseUtils.h"
      12             : #include "libmesh/serial_mesh.h"
      13             : #include "libmesh/exodusII_io.h"
      14             : 
      15             : using namespace libMesh;
      16             : 
      17             : registerMooseObject("MooseApp", ExodusTimeSequenceStepper);
      18             : 
      19             : InputParameters
      20       14309 : ExodusTimeSequenceStepper::validParams()
      21             : {
      22       14309 :   InputParameters params = TimeSequenceStepperBase::validParams();
      23       14309 :   params.addRequiredParam<MeshFileName>(
      24             :       "mesh",
      25             :       "The name of the mesh file to extract the time sequence from (must be an exodusII file).");
      26       14309 :   params.addClassDescription("Solves the Transient problem at a sequence of time points taken from "
      27             :                              "a specified exodus file.");
      28       14309 :   return params;
      29           0 : }
      30             : 
      31          22 : ExodusTimeSequenceStepper::ExodusTimeSequenceStepper(const InputParameters & parameters)
      32          22 :   : TimeSequenceStepperBase(parameters), _mesh_file(getParam<MeshFileName>("mesh"))
      33             : {
      34             :   // Read the Exodus file on processor 0
      35          22 :   std::vector<Real> times;
      36          22 :   if (processor_id() == 0)
      37             :   {
      38             :     // Check that the required file exists
      39          16 :     MooseUtils::checkFileReadable(_mesh_file);
      40             : 
      41             :     // dummy mesh
      42          16 :     ReplicatedMesh mesh(_communicator);
      43             : 
      44          16 :     ExodusII_IO exodusII_io(mesh);
      45          16 :     exodusII_io.read(_mesh_file);
      46          16 :     times = exodusII_io.get_time_steps();
      47          16 :   }
      48             : 
      49             :   // distribute timestep list
      50          22 :   unsigned int num_steps = times.size();
      51          22 :   _communicator.broadcast(num_steps);
      52          22 :   times.resize(num_steps);
      53          22 :   _communicator.broadcast(times);
      54             : 
      55          22 :   setupSequence(times);
      56          22 : }

Generated by: LCOV version 1.14