Phase Field System Requirement Specification
Introduction
The Software Requirement Specification (SRS) for Phase Field describes the system functional and non-functional requirements that describe the expected interactions that the software shall provide.
Dependencies
The Phase Field application is developed using MOOSE and is based on various modules, as such the SRS for Phase Field is dependent upon the following documents.
Requirements
The following is a complete list for all the functional requirements for Phase Field.
- phase_field: Adchsoretdiffusion
- F8.1.1A temperature gradient driving force for diffusion shall be added to the split form of the Cahn-Hilliard equation and solved using automatic differentiation.
- F8.1.2The Jacobians for the automatic differentiation ADCHSplitChemicalPotential and ADCHSplitConcentration kernels shall be accurate.
- phase_field: Adchsplitchemicalpotential
- F8.2.1ADCHSplitChemicalPotential and ADCHSplitConcentration shall solve a simple Cahn-Hilliard problem using automatic differentiation.
- F8.2.2The Jacobians for the automatic differentiation ADCHSplitChemicalPotential and ADCHSplitConcentration kernels shall be accurate.
- phase_field: Gbanisotropy
- F8.3.1A material shall be provided to compute anisotropic grain boundary energies and mobilities.
- F8.3.2A material shall be provided to compute anisotropic grain boundary energies and mobilities.
- F8.3.3A material shall be provided to compute anisotropic grain boundary energies and mobilities with an inclination dependence.
- F8.3.4The anisotropic grain boundary system shall allow the user to specify grain boundary widths independently for each interface between grains.
- phase_field: Grandpotentialpfm
- F8.4.1MOOSE shall provide classes to implement a Grand Potential phase field formulation
- F8.4.2MOOSE shall provide a Grand Potential based multiphase model
- F8.4.3MOOSE shall provide a Grand Potential based dendritic solidification capability in 2D
- F8.4.4MOOSE shall provide a material to automatically compute grand potential model interface parameters based on provided interfacial free energies and widths
- F8.4.5MOOSE shall provide a Grand Potential based dendritic solidification capability for alloy with antitrapping current
- phase_field: Kks System
- F8.5.1The Kim-Kim-Suzuki model implementation shall use free energy densities provided by DerivativeParsedMaterials
- F8.5.2A non-split version of the Kim-Kim-Suzuki shall be provided
- F8.5.3A split version of the Kim-Kim-Suzuki shall be provided
- F8.5.4The split version of the Kim-Kim-Suzuki shall be yield the correct results with asymmetric free energies
- F8.5.5A multi component Kim-Kim-Suzuki model shall be implemented
- F8.5.6A multi component Kim-Kim-Suzuki model shall be implemented
- phase_field: Multiphase
- F8.6.1Moose shall provide a material to combine two free energies materials into a WBM two phase free energy
- F8.6.2Moose shall provide a materials to generate barrier and switching function in a WBM multiphase model
- F8.6.3Moose shall provide a free energy penalty class that suppresses the formation of a third phase in grain boundaries
- F8.6.4Moose shall provide a material for computing barrier values in multiphase systems
- F8.6.5Moose shall provide a material for computing independent barrier values for each phase pair in a multiphase system
- F8.6.6Moose shall provide a material for computing independent barrier values for each phase pair in a multiphase system with asymmetric interface profiles
- F8.6.7Moose shall provide a lagrange multiplier based constraint for keeping the sum of all phase order parameters equal to one
- F8.6.8Moose shall provide a penalty based constraint for keeping the sum of all phase order parameters equal to one
- F8.6.9Moose shall provide aan AuxKernel to compute the free energy contribution form pairwise phase barrier functions
- F8.6.10Moose shall provide an Allen-Cahn gradient energy kernel with cross term contributions
- F8.6.11Moose shall provide an Allen-Cahn gradient energy kernel with cross term contributions, and some order parameters may be aux variables
- F8.6.12Moose shall provide switching functions for three-phase KKS phase-field model
- F8.6.13Moose shall provide switching functions for multi-phase KKS phase-field model
- F8.6.14Moose shall provide mixed switching functions with order 234 and 246 and an adjustable weight
- F8.6.15Moose shall provide order 246 polynomials in the two phase barrier function
- phase_field: Multismoothcircleic
- F8.7.1We shall be able to generate multiple smooth circle initial conditions with uniform radius variation type
- F8.7.2We shall be able to generate multiple smooth circle initial conditions with normal radius variation type
- F8.7.3We shall be able to produce a lattice of smooth circle initial conditions, allowing the circles to exist on the simulation cell boundaries and using a uniform radius variation type
- F8.7.4We shall be able to produce a lattice of smooth circle initial conditions, using a uniform radius variation type
- F8.7.5We shall be able to produce a lattice of smooth circle initial conditions using a normal radius variation type
- F8.7.6We shall be able to create multiple SpecifiedSmoothCircleICs with a small invalue
- F8.7.7We shall be able to create several SpecifiedSmoothCircleICs with a standard invalue
- phase_field: Nucleation
- F8.8.1The nucleation material shall generate a free energy contribution proportional to the map value
- F8.8.2The nucleation system shall insert nuclei in a manner independen of the domain decomposition and parallelization
- F8.8.3The nucleation system shall recoverable
- F8.8.4The nucleation system shall recoverable
- F8.8.5The nucleation system shall recoverable
- F8.8.6The nucleation system shall recoverable
- F8.8.7The map shall provide the capability of defining soft interfaces for initial nuclei
- F8.8.8The marker shall trigger refinement of the nucleus insertion area
- F8.8.9The nucleation time step porocessor shall return a timestep limit that can be applied to cut the simulation timestep as new nuclei are inserted
- F8.8.10The nucleation data porocessor shall return the number of currently active nuclei or whether a change to the nucleus list has occurred
- F8.8.11The nucleation auxkernel evaluates the nucleation map onto an elemental aux variable
- F8.8.12The nucleation force kernel returns a forcing function based on the nucleation map
- F8.8.13The discrete nucleation system shall provide a deterministic nucleus inserter that uses tabulated time and location data from a file
- phase_field: Soretdiffusion
- F8.9.1A temperature gradient driving force for diffusion shall be added to the split form of the Cahn-Hilliard equation.
- F8.9.2A temperature gradient driving force for diffusion shall be added to the split form of the Cahn-Hilliard equation, where temperature is a coupled non-linear variable
- F8.9.3A temperature gradient driving force for diffusion shall be added to the non-split form of the Cahn-Hilliard equation.
- F8.9.4A temperature gradient driving force for diffusion shall be added to the non-split form of the Cahn-Hilliard equation, where temperature is a coupled non-linear variable
- phase_field: Totalfreeenergy
- F8.10.1We shall be able to calculate the free energy (with one variable) using an AuxKernel
- F8.10.2We shall be able to calculate the free energy (with two variables) using an AuxKernel
- phase_field: Actions
- F8.11.1The phase field module shall provide an action to set up an Allen-Cahn problem
- F8.11.2The NonconservedAction shall correctly set up Allen-Cahn problems with higher order elements
- F8.11.3The NonconservedAction shall correctly set up Allen-Cahn problems with variable dependent mobilities
- F8.11.4The NonconservedAction shall correctly set up Allen-Cahn problems with multiple order parameters
- F8.11.5The phase field module shall provide an action to set up a non-split Cahn-Hilliard problem
- F8.11.6The phase field module shall provide an action to set up a reverse split Cahn-Hilliard problem
- F8.11.7The phase field module shall provide an action to set up a reverse split Cahn-Hilliard problem with higher order elements
- F8.11.8The phase field module shall provide an action to set up a non-split Cahn-Hilliard problem with variable dependent mobilities
- F8.11.9The phase field module shall provide an action to set up a reverse split Cahn-Hilliard problem with variable dependent mobilities
- F8.11.10The phase field module NonconservedAction and ConservedAction can be combined to construct a coupled Allen-Chan and split Cahn-Hilliard problem
- F8.11.11The phase field module NonconservedAction and ConservedAction can be combined to construct a coupled Allen-Chan and non-split Cahn-Hilliard problem
- F8.11.12The phase field module shall provide an action to set up a forward split Cahn-Hilliard problem
- F8.11.13The phase field module shall provide an action to set up grain growth problems
- F8.11.14The action to set up grain growth problems shall be able to set up an AD version of the problem which yields the same results as the non-AD version
- F8.11.15The action to set up grain growth problems shall be able to set up an AD version of the problem which yields the same results as the non-AD version
- F8.11.16The grain growth action shall have the ability to set up problems with a pinning particle
- F8.11.17The grain growth action shall have the ability to set up problems with a temperature gradient
- F8.11.18The GrandPotentialAction shall have the ability to generate kernels
- phase_field: Anisotropic Mobility
- F8.12.1A split Cahn-Hilliard kernel with an anisotropic mobility shall be provided
- F8.12.2A non-split Cahn-Hilliard kernel with an anisotropic mobility shall be provided
- F8.12.3A Diffusion kernel with an anisotropic material property diffusivity shall be provided
- F8.12.4AD Diffusion with an anisotropic material property diffusivity shall agree with the non-AD version
- F8.12.5AD Diffusion with an anisotropic material property diffusivity shall have a perfect Jacobian
- phase_field: Automatic Differentiation
- F8.13.1MOOSE shall provide an automatic differentiation mat reaction kernel
- F8.13.2The Jacobian for the automatic differentiation mat reaction kernel shall be perfect
- phase_field: Boundary Intersecting Features
- F8.14.1The FeatureVolumeVectorPostprocessor shall capture volume information of individual features.
- F8.14.2The FeatureVolumeVectorPostprocessor shall capture whether any feature intersects the boundary, even when the non-root rank doesn't own a part of the feature that intersects the boundary.
- phase_field: Conserved Noise
- F8.15.1A system to supply a noise field with a domain integral of zero shall be provided
- F8.15.2A system to supply a normal distributed noise field with a domain integral of zero shall be provided
- F8.15.3A system to supply a uniformly distributed noise field with a domain integral of zero shall be provided
- F8.15.4A system to supply a normal distributed noise field with an amplitude mask and a domain integral of zero shall be provided
- F8.15.5The conserved noise kernel shall error out with a helpful message if a 'seed' parameter is supplied
- phase_field: Feature Volume Vpp Test
- F8.16.1The FeatureVolumeVectorPostprocessor shall output individual centroid locations when requested.
- F8.16.2The FeatureVolumeVectorPostprocessor shall output individual centroid locations when requested.
- F8.16.3The FeatureVolumeVectorPostprocessor shall output whether a percolated pathway exists between specified primary_percolation_boundaries and secondary_percolation_boundaries.
- F8.16.4The FeatureVolumeVectorPostprocessor shall output whether a percolated pathway exists between specified primary_percolation_boundaries and secondary_percolation_boundaries.
- F8.16.5The FeatureVolumeVectorPostprocessor shall calculate coverage of a supplied boundary by each feature by integrating the corresponding order parameter on the boundary.
- F8.16.6The FeatureVolumeVectorPostprocessor shall calculate coverage of a supplied boundary by each feature by calulating the area/length of boundary elements.
- F8.16.7The FeatureVolumeVectorPostprocessor shall calculate coverage of a supplied boundary by each feature by integrating the corresponding order parameter on the boundary.
- F8.16.8The FeatureVolumeVectorPostprocessor shall calculate coverage of a supplied boundary by each feature by calulating the area/length of boundary elements.
- phase_field: Functions
- F8.17.1A function that returns a new periodic random field with a lower wavelength cut-off shall be provided.
- phase_field: Grain Growth
- F8.18.1MOOSE shall provide a polycrystalline material model with grain growth
- F8.18.2A flat grain boundary shall not move along a temperature gradient
- F8.18.3A thumb shaped grain IC shall be provided for direct comparison to grain boundary mobility experiments
- F8.18.4A hexagonal grain structure IC shall be provided
- F8.18.5A bicrystal grain IC shall be provided to set up a rectangular grain in a matrix
- F8.18.6The grain boundary evolution model shall be able to compute the grain boundary mobility based on an activation energy
- F8.18.7The grain boundary evolution model shall permit specifying a constant mobility
- F8.18.8The grain boundary evolution model shall provide off-diagonal Jacobians
- F8.18.9The grain growth model shall work with explicit time integration
- F8.18.10A voronoi tesselation grain structure IC shall be provided
- F8.18.11A columnar grain IC shall be provided based on a 2D voronoi tesselation
- F8.18.12The grain boundary evolution model shall provide coupling to conserved order parameters
- phase_field: Grain Tracker Test
- F8.19.1The system shall properly create and track grains when using the Nodal mode of the GrainTracker algorithm.
- F8.19.2The system shall properly create and track grains when using the Elemental mode of the GrainTracker algorithm.
- F8.19.3The PolycrystalVoronoi object shall create a valid coloring for a given number of grains and order parameters.
- F8.19.4The PolycrystalUserObject base class shall error when a valid coloring cannot be found when using the simple back-tracking algorithm.
- F8.19.5The PolycrystalUserObject base class shall error when a valid coloring cannot be found when using the built-in PETSc based stochastic algorithms.
- F8.19.6The GrainTracker/PolycrystalUserObject base class shall support having only a grain halo bleeding over a periodic edge.
- F8.19.7The GrainTracker object shall support remapping order parameter values.
- F8.19.8The FeatureFloodCount object shall distribute the merging of features when the processor count exceeds number of order parameters for efficiency.
- F8.19.9The GrainTracker object shall properly checkpoint unique grain information in serial.
- F8.19.10The GrainTracker object shall properly recover unique grain information in serial.
- F8.19.11The GrainTracker object shall properly checkpoint unique grain information in parallel.
- F8.19.12The GrainTracker object shall properly recover unique grain information in parallel.
- F8.19.13The GrainTracker shall support reusing the data structures from the PolycrystalUserObjectBase after the initial condition for efficiency.
- F8.19.14The GrainTracker shall support maintaining reserve order parameters for simulations where new grains can form.
- F8.19.15The GrainTracker shall support beginning a simulation with no active grain structure.
- F8.19.16The GrainTracker shall support reading EBSD data to create initial conditions.
- F8.19.17The GrainTracker shall support reading EBSD data to create initial conditions while supporting initial condition refinement.
- F8.19.18The GrainTracker shall support handling the splitting of a grain during a simulation.
- F8.19.19The AverageFeatureVolume Postprocessor shall calculate the average volume of each active grain in a simulation.
- F8.19.20The GrainTracker shall support a mode where it can continue even when it fails to remap for post-modern analysis and debugging.
- F8.19.21The system shall properly create PolycrystalICs with halo extensions (elements) when using DistributedMesh.
- F8.19.22The system shall properly handle a single feature or grain taking up the entire domain.
- F8.19.23The system shall grain tracking behavior even when the number of grains equals the number of order parameters when using mode Nodal.
- F8.19.24The system shall grain tracking behavior even when the number of grains equals the number of order parameters when using mode Elemental.
- F8.19.25The system shall output individual grain tracker volumes.
- F8.19.26The system shall output individual grain tracker volumes assigning each element to only one grain (conservative).
- F8.19.27The system shall output individual grain tracker volumes when the number of order parameters equals the number of grains.
- phase_field: Initial Conditions
- F8.20.1The system shall support a ramp or linear initial condition in one dimension.
- F8.20.2The system shall support the creation of a smooth cross initial condition.
- F8.20.3The system shall support ellipsoidal phase-field initial conditions:
- bimodal inverse superellipsoidal structures,
- bimodal superellipsoidal structures,
- smooth superellipsoidal structures,
- smooth superellipsoidal structures specified from a file,
- smooth superellipsoidal structures in 3D,
- multiple smooth superellipsoidal structures in 2D, and
- multiple smooth superellipsoidal structures in 3D.
- F8.20.4The system shall support polycrystal phase-field initial conditions:
- large polycrystal structure with voids,
- polycrystal structure with voids,
- polycrystal structure with voids on a periodic domain,
- polycrystal structure with voids with centroids specified from a file,
- polycrystal structure with centroids specified from a file,
- polycrystal circles specified from a file,
- and polycrystal circles specified from an input vector,
- hexagonal structure, and
- smooth interface in a triple junction.
- F8.20.5The system shall support initial adaptivity based on GB locations:
- polycrystal structure with IC specifying the GB locations
- F8.20.6The system shall support phase-field initial conditions consisting of circle patterns:
- smooth interface circles,
- smooth interface spheres,
- smooth interface circles specified from a file, and
- smooth interface circles with random noise.
- F8.20.7The system shall support phase-field initial conditions consisting of close pack particle patterns:
- in 2D, and
- in 3D.
- F8.20.8The system shall support phase-field initial conditions consiting of box patterns:
- bounding boxes,
- bounding boxes with random noise,
- multiple bounding boxes in 1D,
- multiple bounding boxes in 2D, and
- multiple bounding boxes in 3D.
- Diffused interface can be assigned for isolated bounding boxes in 2D,
- 3D,
- nested bounding boxes in 2D, and
- 3D.
- Using IsolatedBoundingBoxIC to create overlapping boxes will throw an error.
- phase_field: Misc
- F8.21.1A material shall be implemented that provides dt, time, and time step number as material properties
- F8.21.2A material shall be implemented that computes the magnitude of the gradient of a given variable
- F8.21.3An interface kernel shall be implemented to match gradients between two subdomains
- F8.21.4Demonstrate an InterfaceKernel (InterfaceDiffusionFlux) that can replace a pair of integrated DiffusionFluxBC boundary conditions.
- F8.21.5An InterfaceKernel set shall be implemnted that can enforce the componentwise continuity of the gradient of a variable using the Lagrange multiplier method
- phase_field: New Initial Conditions
- F8.22.1A smooth circle initial condition with a hyperbolic tangent profile shall be provided
- F8.22.2A capability to initialize polycrystal phase field variables from a file mesh shall be provided
- F8.22.3A capability to initialize polycrystal phase field variables from a file mesh shall be provided through the PolycrystalVariables action
- F8.22.4A capability to initialize polycrystal phase field variables from a file mesh shall be provided through the GrainGrowth action
- phase_field: Phase Field Crystal
- F8.23.1The system shall support a tolerance approach to handing the natural log when using the Cahn-Hilliard RFF kernel
- F8.23.2The system shall support a cancelation approach to handing the natural log when using the Cahn-Hilliard RFF kernel
- F8.23.3The system shall support an expansion approach to handing the natural log when using the Cahn-Hilliard RFF kernel
- phase_field: Phase Field Kernels
- F8.24.1MOOSE shall provide a non-split Cahn-Hilliard formalism
- F8.24.2MOOSE shall provide a split Cahn-Hilliard formalism
- F8.24.3MOOSE shall provide an AD version of the split Cahn-Hilliard formalism
- F8.24.4The Jacobian for the AD split Cahn-Hilliard problem shall be perfect
- F8.24.5MOOSE shall provide a kernel option to implement transport terms for the off-diagonal Onsager matrix components
- F8.24.6A Allen-Cahn phase field formulation shall be provided
- F8.24.7The Allen-Cahn model shall have perfect Jacobians
- F8.24.8A Allen-Cahn phase field formulation with a variable dependent mobility shall be provided
- F8.24.9An AD version of the Allen-Cahn phase field formulation shall be provided
- F8.24.10The Jacobian for the AD Allen-Cahn problem shall be perfect
- F8.24.11An AD version of the Allen-Cahn phase field formulation with a variable dependent mobility shall be provided
- F8.24.12The Jacobian for the AD Allen-Cahn problem with a variable dependent mobility shall be perfect
- F8.24.13A coupled Allen-Cahn formulation shall be provided
- F8.24.14A coupled Allen-Cahn formulation with a user defined prefactor shall be provided
- F8.24.15A coupled gradient square kernel shall be provided
- F8.24.16A suite of simple to understand phase field kernels shall be provided for novice users
- F8.24.17A suite of simple to understand phase field kernels shall be provided for novice users
- F8.24.18A free energy contribution from elastic stresses in interfaces shall be provided
- F8.24.19The free energy contribution from elastic stresses in interfaces shall shall have a perfect Jacobian
- F8.24.20The barrier height and gradient energy parameter must be permitted to depend on non-linear variables
- phase_field: Reconstruction
- F8.25.1The system shall output an RGB field that can be interpreted as either a component or a combined Euler angle given a grain structure.
- F8.25.2The system shall support reading EBSD data and initializing a Polycrystal grain structure with that data.
- F8.25.3The system shall support reading EBSD data to initalized Polycrystal grain structures while supporting reduced order parameter IC assignment.
- F8.25.4The system shall support grain evolution when beginning from EBSD ICs.
- F8.25.5The system shall support reading a single phase of EBSD data at a time to initialize PolycrystalICs.
- F8.25.6The system shall support reading a single phase of EBSD data at a time to initialize PolycrystalICs while supporting reduced order parameter IC assignment.
- F8.25.7The system shall support reading EBSD data to initialize PolycrystalICs with discontinuous numbering.
- F8.25.8The system shall support reading a single phase of EBSD data at a time to initialize PolycrystalICs while supporting reduced order parameter IC assignment and display the coloring.
- F8.25.9The system shall support reading a single phase of EBSD data at a time to initialize PolycrystalICs and support regions within the domain that contain no grains at all.
- F8.25.10The system shall support grain evolution when beginning from EBSD ICs and compute average orientation of non-uniformly oriented grains.