ML22143A829
ML22143A829 | |
Person / Time | |
---|---|
Issue date: | 05/25/2022 |
From: | Patrick Raynaud NRC/RES/DE |
To: | |
Kalikian R, 301-415-5590 | |
Shared Package | |
ML22143A408 | List: |
References | |
Download: ML22143A829 (9) | |
Text
FAVOR/FAVPRO Update Patrick Raynaud Senior Materials Engineer RES/DE/REB
The Past: FAVOR-v16.1
- Developed and issued by ORNL late 2016
- Legacy Fortran
- FAVOR = FAVLOAD + FAVPFM + FAVPOST
- 3 executables
- Information passed via formatted text files
- Serial and sequential code
- SQA gaps
- ML20017A170 05/25/2022 NRC-Industry Meeting 2
- Assessment of SQA documentation revealed gaps
- FAVOR was developed under ORNL SQA program, but documentation lost in time
- What we had:
- Small integration test suite: 27 cases with poor coverage
- Theory and User manuals
- Many reports on FAVOR documenting its use and benchmarking
- What was missing:
- SQA documentation
- Good descriptions of source code structure
- Source code version control 05/25/2022 NRC-Industry Meeting 3
Vision and Goals for FAVOR Modernization
- Completely refactor the code to create an equivalent tool written in modern Fortran
- GOALS
- Maintainability
- SQA and V&V improvements (testing and documentation)
- Modularity (make the code adaptable, enable easier feature addition)
- Object-oriented code
- Parallel code (performance improvements)
- Maximize automation for testing and documentation
- Merge the 3 sub-codes into 1 program: FAVPRO
- Use State-of-Practice tools and libraries
- GitHub: source control
- Fortran Package Manager (fpm): build and test automation
- Veggies/Garden: unit testing framework
- JSON: I/O 05/25/2022 NRC-Industry Meeting 4
From FAVOR-v16.1 to FAVOR-v20.1.12 (current release)
- CMake build system
- Documentation
- Source code improvements: - Automatically generate FORD developer documentation (detailed code descriptions with
- Convert to free form .f90 files source parsing)
- Modularization
- Created new SQA documents:
- Begin removal of obsolete Fortran
- SQAP: ML21180A161
- Testing improvements:
- CMMP: ML21180A167
- New integration tests for better coverage (58
- SRD: ML21246A230 tests)
- SDD: ML22132A068
- A few unit tests - Created new Manuals:
- Automatically run testing on GitHub for all code
- User Manual: ML21175A301 changes
- Theory Manual: ML21175A300 05/25/2022 NRC-Industry Meeting 5
FAVOR-v20.1.12 to FAVPRO
- FAVPRO: Fracture Analysis of Vessels - PRObabilistic
- Current status:
- Partial JSON I/O implemented (ongoing)
- Full modularization complete
- Refactoring ongoing (bit by bit as needed / when it makes sense): goal is 100% in the next 18 months
- Move towards object-oriented functional programming
- Ongoing: merge the 3 sub-programs to reduce/remove intermediate I/O
- Parallelization is the last step (not yet started)
- Maximum leverage of Fortran Ecosystem 05/25/2022 NRC-Industry Meeting 6
FAVOR/FAVPRO User Group Update
- To obtain FAVOR and/or FAVPRO:
- Fill out the NRC Codes NDA
- Once approved, the code executables and input generator are downloaded via NRCs BOX service
- All approved users become members of the User Group
- Regular meetings (first meeting on 5/19/22-5/20/22), then short virtual updates (3-6 months), one longer meeting annually (format TBD)
- Newsletters
- New code versions
- User input to the development team is encouraged (bugs, new features, etc.)
- Cost: free!
- Could change at some point, but not in immediate future
- What about source code?
- Can be obtained on special case-by-case basis, pending approval of special request
- Send any FAVOR/FAVPRO questions to Patrick.Raynaud@nrc.gov 05/25/2022 NRC-Industry Meeting 7
Q&A Start of Backup Slides 05/25/2022 NRC-Industry Meeting 8
Leveraging the Modern Fortran Ecosystem
- Fortran has a growing user community and there is renewed interest in the language
- Fortran 2018 is a modern object-oriented parallel programming language
- High performance for scientific and engineering computations (one of the best)
- We use the following libraries
- fpm: Fortran Package Manager as the building and testing system
- Veggies/Garden for unit test development
- assert: assertion utility -> prerequisite checks
- quaff: quantities for Fortran -> unit tracking
- rojff: return of JSON for Fortran -> JSON interface
- erloff: errors and logging for Fortran Return
- iso_varying_string: implementation of Fortran ISO_VARYING_STRING
- Others 05/25/2022 NRC-Industry Meeting 9