Phase Field schema / Marda working Group
Daniel Wheeler / Trevor Keller
Meeting, 05/23/2023
Motivation
- Realize the potential of phase field in ICME
- Improve FAIR and FAIR4RS practices in phase field
- Make phase field data more interactive
- Categorize phase field software frameworks
- Registry of phase field simulations
- AI potential
PHASE Field Benchmark Team / PFHub
- Larry Aagensen, INL
- Stephen DeWitt, ORNL
- Jon Guyer, NIST
- Olle Heinonen, ANL
- Andrea Jokisaari, INL
- Trevor Keller, NIST
- David Montiel, U. of Michigan
- Daniel Schwen, INL
- Mike Tonks, U. of Florida
- Peter Voorhees, Northwestern
- Jim Warren, NIST
- Daniel Wheeler, NIST
PHASE field Method
Year on year phase field publications
TS=("phase field" OR "phase-field")
Why phase field?
- Diffusive interface good, sharp bad
- No explicit interface tracking
- Many phase field codes available
- Other reasons why phase field is much better than other continuum macro / meso-scale techniques
Issues preventing wider adoption
- Difficult to formulate
- Computationally expensive (resolve interface)
- Many other things to do with implementation
Hasn't fulfilled potential in ICME
PFHUb Website
- PFHub website hosting benchmark specifications and results
- Automated submission procedure
- Phase field best practices guide
- Suggested codes and annotated examples
Data Collection
- What data to we currently collect?
- Provenance
- Benchmark ID
- Implementation repository
- Post-processed outputs
- Limited metadata
- run time
- memory usage
- simulation time
- Limited hardware data
- Limited software data
id: moose_1a_amjokisaari_ia
benchmark_problem: 1a.0
contributors:
- id: https://orcid.org/0000-0002-4945-5714
name: A.M. Jokisaari
affiliation:
- INL
email: andrea.jokisaari@northwestern.edu
date_created: '2016-06-28'
implementation:
url: https://bitbucket.org/ajokisaari/coral
commit: e8fc74f
results:
fictive_time: 935803.78997793
hardware:
architecture: cpu
cores: 6
nodes: 1
memory_in_kb: 815104
time_in_s: 3720
dataset_temporal:
- name: free_energy_1a.csv
columns:
- time
- free_energy
schema:
url: https://github.com/usnistgov/pfhub-schema/tree/e0010d9/project
summary: MOOSE, IA solver, periodic domain.
framework:
- url: https://mooseframework.inl.gov/modules/phase_field/index.html
name: MOOSE
download: https://github.com/idaholab/moose
version: 1.0.0
YAML file showing PFHub result schema derived using LinkML (Trevor Keller)
Data queries
How can we currently query the data
- Plot the dendrite tip position for all results for a particular code
- Show results only from a particular author
- Show results that use >N nodes
- Show results that use a GPU
Better ways to query the data
- Show dendrite curves for all finite difference methods
- Show the transient free energy curve for all results with nominal O(h⁴) accuracy
- Show the resource usage per nominal DOF
- Characterize Ostwald ripening simulations by a length scale associated with the microstructure
- Color data points in an efficiency plot based on numerical method or meshing strategy
Currently collect only derived quantities such as free energy
Data Collection updated
What else should we collect?
- Descriptions of discretization methods (FD, FV, FE, Spectral, ...)
- Nominal order of accuracy, nominal DOF, meshing strategy
- Description of linear solvers, preconditioners, non-linear strategy
- Time stepping strategy (implicit v explicit)
- Field variables at various times for statistical post-processing
- Links to input files (rather than just the implementation repository)
- Container (Docker build, Singularity build, Nix build)
- Descriptions of typical phase field data files
- What about the actual problem being solved?
Not collecting the field variables currently (results during evolution of BM1, Trevor Keller)
Submission Workflow
Submitter has a temporary website to view the submission
GitHub pull-requests (PR) provide a platform for data submissions
- Generate a "pfhub.yaml" using a Jupyter Notebook
- Submit pfhub.yaml and data to Zenodo (or other archival service with DOI)
-
Submit DOI to usnistgov/pfhub issue
- Automatically opens PR and launches automated checks, informs admins and fires up temporary views of the data
- Discussion between submitter and admins in the PR, change or update data if necessary on Zenodo
- Submission is then registered on PFHub website
Ask the submitter to check the submission
Clean up any issues and then admins approve and submitter approves
Automated tests are run on submission
FAir Improvements
- New schema in human readable form using LinkML
- Seamless conversion between schema.org, json-schema, jsonld, yaml
- Require implementation to be in publicly accessible archive
- Encourage use of FAIR4RS principles (metadata.json)
- Require curation of result data on Zenodo (or similar)
- Improve data accessibility using Jupyter Notebooks and Python utility (in place of JS stack and custom apps)
- Effort to develop a phase field best practices guide via the wiki (includes model formulation, numerical implementation, data curation, software dev, setup, dissemination)
data Aspirations (PFHUB)
- Collect enough data to
- evaluate the code implementation verification
- order of accuracy claim
- solve consistently
- evaluate the code solution verification
- Does the code solve the correct equation?
- validate the code
- Is the code efficient (best method, language, implemented well)?
- compare codes
- make results findable and accessible (FA, not IR)
- sort results records more effectively
- evaluate the code implementation verification
- We are not collecting enough data for this aspiration...
IMpact ideas
- Provide tools to generate and lint phase field schema compliant metadata file
- similar to metadata.json for FAIR4RS
- Generate phase field data examples with metadata
- Demonstrate secondary data aggregation and data views using metadata
- Registry of phase field problems (and simulations)
phase-field-schema-marda
By Daniel Wheeler
phase-field-schema-marda
- 255