Open amjokisaari opened 4 years ago
@dschwen, can you add your comments that we discussed?
radius
parameter in the DiscreteNucleationMap
(provide a verbose message indicating that now we...radius
in the DiscreteNucleationInserter
instead (as a material property - a number may be passed in as well)dataStore
, dataLoad
set for std::tupel (this may be a separate PR to be done first) and change the std::pair in the inserter list to tupels
Currently the Discrete Nucleation in the phase field module has only a fixed nucleus radius specified a priori by the user. However, nucleus size could vary depending on local conditions such as concentration supersaturation or subgrain size.
Currently the nucleus radius is specified in DiscreteNucleationMap and the nucleus information is contained in the DiscreteNucleationInserterBase as the NucleusList type, which is a pair consisting of a Real (hold time) and a Point (nucleus center).
The proposed design is as follows:
1) The NucleusList type in DiscreteNucleationInserterBase is changed into a tuple containing a Real (hold time), a Point (nucleus center), and a Real (radius).
2) The radius is either provided as a material property or a user-specified value, and is incorporated in DiscreteNucleationInserter. When a nucleus is added, the radius at the quadrature point or the user-specified value is provided.
3) The radius input parameter is removed from DiscreteNucleationMap. To generate the map, each nucleus has its own radius used.
Impact involves changing the API. The current input parameter for the radius will need to be deprecated. Will probably impact DiscreteNucleationFromFile. Tests will need to be updated. A new method for dataStore() and probably dataLoad() will need to be defined for having restart capability.