https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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{
25public:
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
37protected:
39 const Real _hold_time;
40
43
46
48 unsigned int & _history_pointer;
49
51 const Real _tol;
52
54 const Real _nucleation_rate;
55
58
60 const Real _radius;
61};
This UserObject manages the insertion and expiration of nuclei in the simulation domain.
static InputParameters validParams()
const Real _radius
hold the radius of the nucleus
MooseUtils::DelimitedFileReader _reader
CSV file to read.
bool _fixed_radius
Is a fixed radius or variable radius used?
void threadJoin(const UserObject &) override
unsigned int & _history_pointer
index to the next nucleation event in the history
const Real & getRate() const override
NucleusList _nucleation_history
Total nucleation history read from file.
const Real _nucleation_rate
total nucleation rate
const Real _hold_time
Duration of time each nucleus is kept active after insertion.
const Real _tol
tolerance for determining insertion time
This UserObject manages the insertion and expiration of nuclei in the simulation domain it manages a ...
std::vector< NucleusLocation > NucleusList
Every MPI task should keep a full list of nuclei (in case they cross domains with their finite radii)
const InputParameters & parameters() const