ML22143A829: Difference between revisions

From kanterella
Jump to navigation Jump to search
(StriderTol Bot insert)
 
(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
- 3 executables
      - Information passed via formatted text files
- Information passed via formatted text files
* Serial and sequential code
* Serial and sequential code
* SQA gaps
* SQA gaps
      - ML20017A171
- ML20017A171
      - ML20017A170 05/25/2022                                   NRC-Industry Meeting 2
- 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
- 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
- Small integration test suite: 27 cases with poor coverage
      - Theory and User manuals
- Theory and User manuals
      - Many reports on FAVOR documenting its use and benchmarking
- Many reports on FAVOR documenting its use and benchmarking
* What was missing:
* What was missing:
      - SQA documentation
- SQA documentation
      - Good descriptions of source code structure
- Good descriptions of source code structure
      - Source code version control 05/25/2022                                     NRC-Industry Meeting 3
- 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
- Maintainability
      -   SQA and V&V improvements (testing and documentation)
- SQA and V&V improvements (testing and documentation)
      -   Modularity (make the code adaptable, enable easier feature addition)
- Modularity (make the code adaptable, enable easier feature addition)
      -   Object-oriented code
- Object-oriented code
      -   Parallel code (performance improvements)
- Parallel code (performance improvements)
      -   Maximize automation for testing and documentation
- Maximize automation for testing and documentation
      -   Merge the 3 sub-codes into 1 program: FAVPRO
- Merge the 3 sub-codes into 1 program: FAVPRO
      -   Use State-of-Practice tools and libraries
- 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                                         NRC-Industry Meeting       4
* 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
* Source code improvements:                                          - Automatically generate FORD developer documentation (detailed code descriptions with
- Automatically generate FORD developer documentation (detailed code descriptions with source parsing)
      - Convert to free form .f90 files source parsing)
- Created new SQA documents:
      - Modularization
                                                                    - Created new SQA documents:
      - Begin removal of obsolete Fortran
* SQAP: ML21180A161
* SQAP: ML21180A161
* Testing improvements:
* CMMP: ML21180A167
* CMMP: ML21180A167
      - New integration tests for better coverage (58
* SRD: ML21246A230
* SRD: ML21246A230 tests)
* SDD: ML22132A068
* SDD: ML22132A068
      - A few unit tests                                            - Created new Manuals:
- Created new Manuals:
      - Automatically run testing on GitHub for all code
* User Manual: ML21175A301
* User Manual: ML21175A301 changes
* Theory Manual: ML21175A300 05/25/2022 NRC-Industry Meeting 5
* Theory Manual: ML21175A300 05/25/2022                                     NRC-Industry Meeting                               5


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)
- Partial JSON I/O implemented (ongoing)
      -   Full modularization complete
- Full modularization complete
      -   Refactoring ongoing (bit by bit as needed / when it makes sense): goal is 100% in the next 18 months
- 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
- Move towards object-oriented functional programming
      -   Ongoing: merge the 3 sub-programs to reduce/remove intermediate I/O
- Ongoing: merge the 3 sub-programs to reduce/remove intermediate I/O
      -   Parallelization is the last step (not yet started)
- Parallelization is the last step (not yet started)
* Maximum leverage of Fortran Ecosystem 05/25/2022                                           NRC-Industry Meeting                       6
* 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
- Fill out the NRC Codes NDA
      - Once approved, the code executables and input generator are downloaded via NRCs BOX service
- 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)
- 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
- Newsletters
      - New code versions
- New code versions
      - User input to the development team is encouraged (bugs, new features, etc.)
- 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
- 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
- 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
* 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
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)
- 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
- fpm: Fortran Package Manager as the building and testing system
      -   Veggies/Garden for unit test development
- Veggies/Garden for unit test development
      -   assert: assertion utility -> prerequisite checks
- assert: assertion utility -> prerequisite checks
      -   quaff: quantities for Fortran -> unit tracking
- quaff: quantities for Fortran -> unit tracking
      -   rojff: return of JSON for Fortran -> JSON interface
- rojff: return of JSON for Fortran -> JSON interface
      -   erloff: errors and logging for Fortran                                       Return
- erloff: errors and logging for Fortran
      -   iso_varying_string: implementation of Fortran ISO_VARYING_STRING
- iso_varying_string: implementation of Fortran ISO_VARYING_STRING
      -   Others 05/25/2022                                           NRC-Industry Meeting             9}}
- Others 05/25/2022 NRC-Industry Meeting 9
Return}}

Latest revision as of 17:01, 27 November 2024

11 - 2022-05 NRC-Industry Meeting - Raynaud - Favor Update
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

- ML20017A171

- ML20017A170 05/25/2022 NRC-Industry Meeting 2

FAVOR-v16.1 Software QA (SQA)

  • 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:

- Created new Manuals:

  • 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