https://mooseframework.inl.gov
DiscreteNucleationFromFile.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 
13 #include "DelimitedFileReader.h"
14 
24 {
25 public:
27 
29 
30  void initialize() override;
31  void execute() override {}
32  void threadJoin(const UserObject &) override {}
33  void finalize() override;
34 
35  const Real & getRate() const override { return _nucleation_rate; }
36 
37 protected:
40 
43 
46 
48  unsigned int & _history_pointer;
49 
51  const Real _tol;
52 
55 
58 
60  const Real _radius;
61 };
This UserObject manages the insertion and expiration of nuclei in the simulation domain.
NucleusList _nucleation_history
Total nucleation history read from file.
MooseUtils::DelimitedFileReader _reader
CSV file to read.
static InputParameters validParams()
void threadJoin(const UserObject &) override
std::vector< NucleusLocation > NucleusList
Every MPI task should keep a full list of nuclei (in case they cross domains with their finite radii)...
This UserObject manages the insertion and expiration of nuclei in the simulation domain it manages a ...
bool _fixed_radius
Is a fixed radius or variable radius used?
const Real & getRate() const override
DiscreteNucleationFromFile(const InputParameters &parameters)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const Real _radius
hold the radius of the nucleus
const Real _hold_time
Duration of time each nucleus is kept active after insertion.
const Real _tol
tolerance for determining insertion time
const InputParameters & parameters() const
const Real _nucleation_rate
total nucleation rate
unsigned int & _history_pointer
index to the next nucleation event in the history