https://mooseframework.inl.gov
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
LevelSetReinitializationMultiApp Class Reference

MultiApp that performs a time reset prior to solving, this enables the level set reinitialization to solve repeatedly. More...

#include <LevelSetReinitializationMultiApp.h>

Inheritance diagram for LevelSetReinitializationMultiApp:
[legend]

Public Types

typedef DataFileName DataFileParameterType
 

Public Member Functions

 LevelSetReinitializationMultiApp (const InputParameters &parameters)
 
virtual void initialSetup () override
 
virtual bool solveStep (Real dt, Real target_time, bool auto_advance=true) override
 
virtual void preExecute ()
 
virtual void finalize ()
 
virtual void postExecute ()
 
void setupPositions ()
 
virtual void createLocalApp (const unsigned int i)
 
virtual void preTransfer (Real dt, Real target_time)
 
virtual void incrementTStep (Real)
 
virtual void finishStep (bool=false)
 
virtual void backup ()
 
virtual void restore (bool force=true)
 
bool needsRestoration ()
 
virtual ExecutionergetExecutioner (unsigned int app)
 
virtual libMesh::BoundingBox getBoundingBox (unsigned int app, bool displaced_mesh, const MultiAppCoordTransform *coord_transform=nullptr)
 
FEProblemBaseproblemBase ()
 
FEProblemBaseappProblemBase (unsigned int app)
 
FEProblemappProblem (unsigned int app)
 
const UserObjectappUserObjectBase (unsigned int app, const std::string &name)
 
Real appPostprocessorValue (unsigned int app, const std::string &name)
 
virtual libMesh::NumericVector< libMesh::Number > & appTransferVector (unsigned int app, std::string var_name)
 
unsigned int numGlobalApps () const
 
unsigned int numLocalApps ()
 
unsigned int firstLocalApp ()
 
bool isFirstLocalRank () const
 
bool hasApp ()
 
bool hasLocalApp (unsigned int global_app) const
 
MooseApplocalApp (unsigned int local_app)
 
const Point & position (unsigned int app) const
 
virtual void resetApp (unsigned int global_app, Real time=0.0)
 
virtual void moveApp (unsigned int global_app, Point p)
 
virtual void parentOutputPositionChanged ()
 
MPI_Comm & comm ()
 
const Parallel::Communicator & comm () const
 
bool isRootProcessor ()
 
bool usingPositions () const
 
bool runningInPosition () const
 
void addAssociatedTransfer (MultiAppTransfer &transfer)
 
void setAppOutputFileBase ()
 
virtual bool enabled () const
 
std::shared_ptr< MooseObjectgetSharedPtr ()
 
std::shared_ptr< const MooseObjectgetSharedPtr () const
 
MooseAppgetMooseApp () const
 
const std::string & type () const
 
virtual const std::string & name () const
 
std::string typeAndName () const
 
std::string errorPrefix (const std::string &error_type) const
 
void callMooseError (std::string msg, const bool with_prefix) const
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 
const InputParametersparameters () const
 
MooseObjectName uniqueName () const
 
const T & getParam (const std::string &name) const
 
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 
const T * queryParam (const std::string &name) const
 
const T & getRenamedParam (const std::string &old_name, const std::string &new_name) const
 
getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 
bool isParamValid (const std::string &name) const
 
bool isParamSetByUser (const std::string &nm) const
 
void paramError (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramInfo (const std::string &param, Args... args) const
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 
void mooseError (Args &&... args) const
 
void mooseErrorNonPrefixed (Args &&... args) const
 
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseInfo (Args &&... args) const
 
std::string getDataFileName (const std::string &param) const
 
std::string getDataFileNameByName (const std::string &relative_path) const
 
std::string getDataFilePath (const std::string &relative_path) const
 
virtual void timestepSetup ()
 
virtual void jacobianSetup ()
 
virtual void residualSetup ()
 
virtual void subdomainSetup ()
 
virtual void customSetup (const ExecFlagType &)
 
const ExecFlagEnumgetExecuteOnEnum () const
 
PerfGraphperfGraph ()
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 

Static Public Member Functions

static InputParameters validParams ()
 
static void transformBoundingBox (libMesh::BoundingBox &box, const MultiAppCoordTransform &transform)
 

Public Attributes

const ConsoleStream _console
 

Protected Member Functions

void setAppOutputFileBase (unsigned int index)
 
virtual std::vector< std::string > cliArgs () const
 
virtual void fillPositions ()
 
void readCommandLineArguments ()
 
void createApp (unsigned int i, Real start_time)
 
void buildComm ()
 
unsigned int globalAppToLocal (unsigned int global_app)
 
virtual void preRunInputFile ()
 
virtual std::vector< std::string > getCommandLineArgs (const unsigned int local_app)
 
void init (unsigned int num_apps, bool batch_mode=false)
 
void init (unsigned int num_apps, const LocalRankConfig &config)
 
void createApps ()
 
void keepSolutionDuringRestore (bool keep_solution_during_restore)
 
T & declareRestartableData (const std::string &data_name, Args &&... args)
 
ManagedValue< T > declareManagedRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
const T & getRestartableData (const std::string &data_name) const
 
T & declareRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
T & declareRecoverableData (const std::string &data_name, Args &&... args)
 
T & declareRestartableDataWithObjectName (const std::string &data_name, const std::string &object_name, Args &&... args)
 
T & declareRestartableDataWithObjectNameWithContext (const std::string &data_name, const std::string &object_name, void *context, Args &&... args)
 
std::string restartableName (const std::string &data_name) const
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level) const
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level, const std::string &live_message, const bool print_dots=true) const
 
std::string timedSectionName (const std::string &section_name) const
 

Static Protected Member Functions

static std::string getMultiAppName (const std::string &base_name, dof_id_type index, dof_id_type total)
 

Protected Attributes

LevelSetReinitializationProblem_level_set_problem
 Access to the level set specific problem to allow for the resetTime() method to be called. More...
 
Executioner_executioner
 Access to the Executioner object to call execute() More...
 
const unsigned int_interval
 The solve interval for reinitialization. More...
 
FEProblemBase_fe_problem
 
std::string _app_type
 
std::vector< Point > _positions
 
std::vector< const Positions *> _positions_objs
 
std::vector< unsigned int_positions_index_offsets
 
const bool _use_positions
 
std::vector< FileName > _input_files
 
const bool & _wait_for_first_app_init
 
std::vector< unsigned int_npositions_inputfile
 
std::string _output_base
 
unsigned int _total_num_apps
 
unsigned int _my_num_apps
 
unsigned int _first_local_app
 
const MPI_Comm & _orig_comm
 
libMesh::Parallel::Communicator _my_communicator
 
MPI_Comm & _my_comm
 
int _orig_num_procs
 
int _orig_rank
 
std::string _node_name
 
int _my_rank
 
std::vector< std::shared_ptr< MooseApp > > _apps
 
std::vector< bool > _has_bounding_box
 
std::vector< libMesh::BoundingBox_bounding_box
 
Real _inflation
 
Point _bounding_box_padding
 
processor_id_type _max_procs_per_app
 
processor_id_type _min_procs_per_app
 
bool _output_in_position
 
const Real _global_time_offset
 
std::vector< Real_reset_times
 
std::vector< unsigned int_reset_apps
 
std::vector< bool > _reset_happened
 
Real _move_time
 
std::vector< unsigned int_move_apps
 
std::vector< Point > _move_positions
 
bool _move_happened
 
bool _has_an_app
 
const std::vector< CLIArgString > & _cli_args
 
std::vector< std::string > _cli_args_from_file
 
bool _keep_solution_during_restore
 
bool _keep_aux_solution_during_restore
 
const bool _no_restore
 
std::vector< std::unique_ptr< libMesh::NumericVector< Real > > > _end_solutions
 
std::vector< std::unique_ptr< NumericVector< Real > > > _end_aux_solutions
 
LocalRankConfig _rank_config
 
std::vector< MultiAppTransfer *> _associated_transfers
 
const bool _run_in_position
 
SubAppBackups_sub_app_backups
 
const PerfID _solve_step_timer
 
const PerfID _init_timer
 
const PerfID _backup_timer
 
const PerfID _restore_timer
 
const PerfID _reset_timer
 
const bool & _enabled
 
MooseApp_app
 
const std::string _type
 
const std::string _name
 
const InputParameters_pars
 
Factory_factory
 
ActionFactory_action_factory
 
const ExecFlagEnum_execute_enum
 
const ExecFlagType_current_execute_flag
 
MooseApp_restartable_app
 
const std::string _restartable_system_name
 
const THREAD_ID _restartable_tid
 
const bool _restartable_read_only
 
MooseApp_pg_moose_app
 
const std::string _prefix
 
const Parallel::Communicator & _communicator
 

Detailed Description

MultiApp that performs a time reset prior to solving, this enables the level set reinitialization to solve repeatedly.

Definition at line 21 of file LevelSetReinitializationMultiApp.h.

Constructor & Destructor Documentation

◆ LevelSetReinitializationMultiApp()

LevelSetReinitializationMultiApp::LevelSetReinitializationMultiApp ( const InputParameters parameters)

Definition at line 41 of file LevelSetReinitializationMultiApp.C.

43  : MultiApp(parameters), _level_set_problem(NULL), _interval(getParam<unsigned int>("interval"))
44 {
45 }
MultiApp(const InputParameters &parameters)
const unsigned int & _interval
The solve interval for reinitialization.
LevelSetReinitializationProblem * _level_set_problem
Access to the level set specific problem to allow for the resetTime() method to be called...
const InputParameters & parameters() const

Member Function Documentation

◆ initialSetup()

void LevelSetReinitializationMultiApp::initialSetup ( )
overridevirtual

Reimplemented from MultiApp.

Definition at line 48 of file LevelSetReinitializationMultiApp.C.

49 {
51 
52  if (_has_an_app)
53  {
54  Executioner * ex = _apps[0]->getExecutioner();
55 
56  if (!ex)
57  mooseError("Executioner does not exist!");
58 
59  ex->init();
60 
61  _executioner = ex;
62 
64  if (!_level_set_problem)
65  mooseError("The Problem type must be LevelSetReinitializationProblem.");
66  }
67 }
virtual void init()
A Problem object to perform level set equation reinitialization implementation, mainly implementing a...
std::vector< std::shared_ptr< MooseApp > > _apps
FEProblemBase & appProblemBase(unsigned int app)
LevelSetReinitializationProblem * _level_set_problem
Access to the level set specific problem to allow for the resetTime() method to be called...
bool _has_an_app
virtual void initialSetup() override
void mooseError(Args &&... args) const
Executioner * _executioner
Access to the Executioner object to call execute()

◆ solveStep()

bool LevelSetReinitializationMultiApp::solveStep ( Real  dt,
Real  target_time,
bool  auto_advance = true 
)
overridevirtual

Implements MultiApp.

Definition at line 70 of file LevelSetReinitializationMultiApp.C.

73 {
74  // Do nothing if not on interval
75  if ((_fe_problem.timeStep() % _interval) != 0)
76  return true;
77 
78  if (!_has_an_app)
79  return true;
80 
81  _console << "Solving Reinitialization problem." << std::endl;
82 
83  int rank;
84  int ierr;
85  ierr = MPI_Comm_rank(_orig_comm, &rank);
86  mooseCheckMPIErr(ierr);
87 
88  bool last_solve_converged = true;
89 
93  last_solve_converged = false;
94 
95  return last_solve_converged;
96 }
const unsigned int & _interval
The solve interval for reinitialization.
void resetTime()
Resets the state of the simulation to allow for it to be re-executed.
FEProblemBase & _fe_problem
virtual void execute()=0
LevelSetReinitializationProblem * _level_set_problem
Access to the level set specific problem to allow for the resetTime() method to be called...
virtual int & timeStep() const
bool _has_an_app
const ConsoleStream _console
Executioner * _executioner
Access to the Executioner object to call execute()
virtual bool lastSolveConverged() const=0
const MPI_Comm & _orig_comm

◆ validParams()

InputParameters LevelSetReinitializationMultiApp::validParams ( )
static

Definition at line 21 of file LevelSetReinitializationMultiApp.C.

22 {
24  params.addClassDescription(
25  "MultiApp capable of performing repeated complete solves for level set reinitialization.");
26  params.addParam<unsigned int>(
27  "interval", 1, "Time step interval when to perform reinitialization.");
28 
29  params.suppressParameter<std::vector<Point>>("positions");
30  params.suppressParameter<std::vector<FileName>>("positions_file");
31  params.suppressParameter<bool>("output_in_position");
32  params.suppressParameter<std::vector<Real>>("reset_time");
33  params.suppressParameter<std::vector<unsigned int>>("reset_apps");
34  params.suppressParameter<Real>("move_time");
35  params.suppressParameter<std::vector<unsigned int>>("move_apps");
36  params.suppressParameter<std::vector<Point>>("move_positions");
37 
38  return params;
39 }
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void suppressParameter(const std::string &name)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void addClassDescription(const std::string &doc_string)
static InputParameters validParams()

Member Data Documentation

◆ _executioner

Executioner* LevelSetReinitializationMultiApp::_executioner
protected

Access to the Executioner object to call execute()

Definition at line 36 of file LevelSetReinitializationMultiApp.h.

Referenced by initialSetup(), and solveStep().

◆ _interval

const unsigned int& LevelSetReinitializationMultiApp::_interval
protected

The solve interval for reinitialization.

Definition at line 39 of file LevelSetReinitializationMultiApp.h.

Referenced by solveStep().

◆ _level_set_problem

LevelSetReinitializationProblem* LevelSetReinitializationMultiApp::_level_set_problem
protected

Access to the level set specific problem to allow for the resetTime() method to be called.

Definition at line 33 of file LevelSetReinitializationMultiApp.h.

Referenced by initialSetup(), and solveStep().


The documentation for this class was generated from the following files: