ML22143A829: Difference between revisions
StriderTol (talk | contribs) (StriderTol Bot insert) |
StriderTol (talk | contribs) (StriderTol Bot change) |
||
| (One intermediate revision by the same user not shown) | |||
| Line 22: | Line 22: | ||
* Legacy Fortran | * Legacy Fortran | ||
* FAVOR = FAVLOAD + FAVPFM + FAVPOST | * FAVOR = FAVLOAD + FAVPFM + FAVPOST | ||
- 3 executables | |||
- Information passed via formatted text files | |||
* Serial and sequential code | * Serial and sequential code | ||
* SQA gaps | * SQA gaps | ||
- ML20017A171 | |||
- ML20017A170 05/25/2022 NRC-Industry Meeting 2 | |||
FAVOR-v16.1 Software QA (SQA) | FAVOR-v16.1 Software QA (SQA) | ||
* Assessment of SQA documentation revealed gaps | * Assessment of SQA documentation revealed gaps | ||
- FAVOR was developed under ORNL SQA program, but documentation lost in time | |||
* What we had: | * 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: | * 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 | Vision and Goals for FAVOR Modernization | ||
* Completely refactor the code to create an equivalent tool written in modern Fortran | * Completely refactor the code to create an equivalent tool written in modern Fortran | ||
* GOALS | * 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 | * GitHub: source control | ||
* Fortran Package Manager (fpm): build and test automation | * Fortran Package Manager (fpm): build and test automation | ||
* Veggies/Garden: unit testing framework | * Veggies/Garden: unit testing framework | ||
* JSON: I/O 05/25/2022 | * JSON: I/O 05/25/2022 NRC-Industry Meeting 4 | ||
From FAVOR-v16.1 to FAVOR-v20.1.12 (current release) | From FAVOR-v16.1 to FAVOR-v20.1.12 (current release) | ||
* CMake build system | * CMake build system | ||
* Source code improvements: | |||
- Convert to free form.f90 files | |||
- Modularization | |||
- Begin removal of obsolete Fortran | |||
* Testing improvements: | |||
- New integration tests for better coverage (58 tests) | |||
- A few unit tests | |||
- Automatically run testing on GitHub for all code changes | |||
* Documentation | * Documentation | ||
- Automatically generate FORD developer documentation (detailed code descriptions with source parsing) | |||
- Created new SQA documents: | |||
* SQAP: ML21180A161 | * SQAP: ML21180A161 | ||
* CMMP: ML21180A167 | * CMMP: ML21180A167 | ||
* SRD: ML21246A230 | |||
* SRD: ML21246A230 | |||
* SDD: ML22132A068 | * SDD: ML22132A068 | ||
- Created new Manuals: | |||
* User Manual: ML21175A301 | |||
* User Manual: ML21175A301 | * Theory Manual: ML21175A300 05/25/2022 NRC-Industry Meeting 5 | ||
* Theory Manual: ML21175A300 05/25/2022 | |||
FAVOR-v20.1.12 to FAVPRO | FAVOR-v20.1.12 to FAVPRO | ||
* FAVPRO: Fracture Analysis of Vessels - PRObabilistic | * FAVPRO: Fracture Analysis of Vessels - PRObabilistic | ||
* Current status: | * 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 | * Maximum leverage of Fortran Ecosystem 05/25/2022 NRC-Industry Meeting 6 | ||
FAVOR/FAVPRO User Group Update | FAVOR/FAVPRO User Group Update | ||
* To obtain FAVOR and/or FAVPRO: | * 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 | * 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! | * Cost: free! | ||
- Could change at some point, but not in immediate future | |||
* What about source code? | * 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 | * 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 | Q&A Start of Backup Slides 05/25/2022 NRC-Industry Meeting 8 | ||
Leveraging the Modern Fortran Ecosystem | Leveraging the Modern Fortran Ecosystem | ||
* Fortran has a growing user community and there is renewed interest in the language | * Fortran has a growing user community and there is renewed interest in the language | ||
* Fortran 2018 is a modern object-oriented parallel programming 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 | * 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 | |||
- iso_varying_string: implementation of Fortran ISO_VARYING_STRING | |||
- Others 05/25/2022 NRC-Industry Meeting 9 | |||
Return}} | |||
Latest revision as of 17:01, 27 November 2024
| 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
- Source code improvements:
- Convert to free form.f90 files
- Modularization
- Begin removal of obsolete Fortran
- Testing improvements:
- New integration tests for better coverage (58 tests)
- A few unit tests
- Automatically run testing on GitHub for all code changes
- Documentation
- Automatically generate FORD developer documentation (detailed code descriptions with source parsing)
- Created new SQA documents:
- SQAP: ML21180A161
- CMMP: ML21180A167
- SRD: ML21246A230
- SDD: ML22132A068
- Created new Manuals:
- User Manual: ML21175A301
- 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
- iso_varying_string: implementation of Fortran ISO_VARYING_STRING
- Others 05/25/2022 NRC-Industry Meeting 9
Return