Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fill in empty fields in SQA documentation #31

Merged
merged 4 commits into from
Apr 26, 2024
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions doc/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,11 @@ Extensions:
MooseDocs.extensions.acronym:
acronyms:
framework: !include ${MOOSE_DIR}/framework/doc/acronyms.yml
fenix:
FENIX: Fusion ENergy Integrated multiphys-X
PIC: particle-in-cell
CFD: computational fluid dynamics
CAD: computer-aided design
MooseDocs.extensions.sqa:
active: true
categories:
Expand Down
14 changes: 13 additions & 1 deletion doc/content/sqa/fenix_rtm.md
Original file line number Diff line number Diff line change
@@ -1 +1,13 @@
!template load file=sqa/app_rtm.md.template app=FENIX category=fenix
!template load file=sqa/app_rtm.md.template app=FENIX category=fenix

!template! item key=system-scope
!include fenix_srs.md start=system-scope-begin end=system-scope-finish
!template-end!

!template! item key=system-purpose
!include fenix_srs.md start=system-purpose-begin end=system-purpose-finish
!template-end!

!template! item key=log-revisions
Currently, no errors in issue references related to the changelog have been discovered.
!template-end!
58 changes: 57 additions & 1 deletion doc/content/sqa/fenix_sdd.md
Original file line number Diff line number Diff line change
@@ -1 +1,57 @@
!template load file=sqa/app_sdd.md.template app=FENIX category=fenix
!template load file=sqa/app_sdd.md.template app=FENIX category=fenix

!template! item key=introduction
Many of the phenomena related to fusion energy systems depend on the solutions of multiple
physics models, which can be described by partial differential equations that provide spatially- and
temporally-varying values of solution variables. These models for individual physics often depend on
each other. [!ac]({{app}}) relies on the MOOSE framework to solve these physics models, accounting
for the couplings that may occur between them. This document describes the system design of [!ac]({{app}}).
!template-end!

!template! item key=system-scope
!include fenix_srs.md start=system-scope-begin end=system-scope-finish
!template-end!

!template! item key=dependencies-and-limitations
{{app}} inherits the [software dependencies of the MOOSE framework](framework_sdd.md#dependencies-and-limitations),
with no additional dependencies.
!template-end!

!template! item key=design-stakeholders
Stakeholders for [!ac]({{app}}) include several of the funding sources including [!ac](DOE) and [!ac](INL).
However, since [!ac]({{app}}) is an open-source project, several universities, companies, and foreign
governments have an interest in the development and maintenance of the [!ac]({{app}}) project.
!template-end!

!template! item key=system-design
[!ac]({{app}}) relies on MOOSE to solve the coupled physics models underlying fusion energy systems,
accounting for the couplings that may occur between various components and sub-systems of this class
of devices. The design of MOOSE is based on the concept of modular code objects that define all of
the aspects of the physics model. [!ac]({{app}}) follows this design, providing code objects that
define specific aspects of the solutions for its physics that derive from the base classes defined
by the MOOSE framework and the modules that it depends on. [!ac]({{app}}) provides specialized
[UserObject](syntax/UserObjects/index.md) classes that compute data for velocity updating, charge
accumulation, and [Ray](source/raytracing/Ray.md) data necessary for simple [!ac](PIC) simulations.
It also provides specialized utilities for accumulating field data on rays. Much of the remaining
functionality is provided by MOOSE modules (electromagnetics, ray tracing), the
[Cardinal](https://cardinal.cels.anl.gov/) application ([!ac](CFD) and Monte Carlo radiation transport),
and the [Tritium Migration Analysis Program Version 8 (TMAP8)](https://mooseframework.inl.gov/TMAP8)
application (tritium migration) that [!ac]({{app}}) builds on.
!template-end!

!template! item key=system-structure
[!ac]({{app}}) relies on the MOOSE framework to provide the core functionality of solving multiphysics problems
using the finite element method. It also relies on the MOOSE modules for much of its core functionality.
A summary listing of the current modules required for complete [!ac]({{app}}) operation are shown below:

- [Electromagnetics](electromagnetics/index.md)
- [Ray Tracing](ray_tracing/index.md)
simopier marked this conversation as resolved.
Show resolved Hide resolved

The structure of [!ac]({{app}}) is based on defining C++ classes that derive from classes in the MOOSE
framework or modules that provide functionality that is specifically tailored to fusion device
modeling and simulation. By using the interfaces defined in MOOSE base classes for these classes,
[!ac]({{app}}) is able to rely on MOOSE to execute these models at the appropriate times during the
simulation and use their results in the desired ways.
!template-end!

!syntax complete subsystems=False actions=False objects=False
85 changes: 84 additions & 1 deletion doc/content/sqa/fenix_srs.md
Original file line number Diff line number Diff line change
@@ -1 +1,84 @@
!template load file=sqa/app_srs.md.template app=FENIX category=fenix
!template load file=sqa/app_srs.md.template app=FENIX category=fenix

!template! item key=system-scope
!! system-scope-begin
FENIX is an application for performing system-level, engineering scale (i.e., at the scale of
centimeters and meters), and microstructure-scale (i.e., at the scale of microns) multiphysics
calculations related to fusion energy systems. These models often include highly coupled systems of
equations related to plasma physics, electromagnetics, heat conduction, scalar transport, thermal
hydraulics, [!ac](CFD), and thermomechanics, amongst others. Interfaces to other MOOSE-based codes,
including tritium transport (TMAP8) and neutronics (Cardinal) are also included to support FENIX
simulations. FENIX will enable high-fidelity modeling of irradiation levels and plasma exposure
conditions of plasma facing components and their impact on heat and tritium distributions, as well
as the resulting mechanical constraints experienced by the plasma facing components. The [syntax/MultiApps/index.md]
is leveraged to allow for the multiscale, multiphysics coupling. Further, other MOOSE capabilities
(such as the stochastic tools module) will eventually enable engineering studies, allowing for extended
uncertainty quantification and risk analysis studies for particular system designs. Interfaces for
[!ac](CAD) meshing workflows to model complex geometries are also included. FENIX therefore supports
design, safety, engineering, and research projects.
!! system-scope-finish
!template-end!

!template! item key=system-purpose
!! system-purpose-begin
The purpose of FENIX is to perform fully integrated, high-fidelity, multiphysics simulations of fusion
energy systems and devices at different length scales with a variety of materials, system configurations,
and component designs in order to better understand component degradation and operational impacts on
system performance. FENIX's main goal is to bring together the combined multiphysics capabilities of
the [!ac](MOOSE) ecosystem to provide an open platform for future research, safety assessment,
engineering, and design studies of fusion energy systems.
!! system-purpose-finish
!template-end!

!template! item key=assumptions-and-dependencies
[!ac]({{app}}) has no constraints on hardware and software beyond those of the MOOSE framework and
modules listed in their respective [!ac](SRS) documents, which are accessible through the links at
the beginning of this document.

[!ac]({{app}}) provides access to a number of code objects that perform computations, such as particle
transport, material behavior, and boundary conditions. These objects each make their own physics-based
assumptions, such as the units of the inputs and outputs. Those assumptions are described in the
documentation for those individual objects.
!template-end!

!template! item key=user-characteristics
[!ac]({{app}}) has three main classes of users:

- +[!ac]({{app}}) Developers+: These are the core developers of [!ac]({{app}}). They are responsible
for designing, implementing, and maintaining the software, while following and enforcing its software
development standards.
- +Developers+: These are scientists or engineers that modify or add capabilities to [!ac]({{app}})
for their own purposes, which may include research or extending its capabilities. They will typically
have a background in fusion energy sciences, plasma physics, tritium migration, radiation transport,
heat conduction, and/or material science as well as in modeling and simulation techniques, but may have
cticenhour marked this conversation as resolved.
Show resolved Hide resolved
more limited background in code development using the C++ language. In many cases, these developers
will be encouraged to contribute code back to [!ac]({{app}}).
- +Analysts+: These are users that run [!ac]({{app}}) to run simulations, but do not develop code.
The primary interface of these users with [!ac]({{app}}) is the input files that define their
simulations. These users may interact with developers of the system requesting new features and
reporting bugs found.
!template-end!

!template! item key=information-management
[!ac]({{app}}) as well as the core MOOSE framework in its entirety will be made publicly available
on an appropriate repository hosting site. Day-to-day backups and security services will be provided
by the hosting service. More information about backups of the public repository on [!ac](INL)-hosted
services can be found on the following page: [sqa/github_backup.md]
!template-end!

!template! item key=policies-and-regulations
!include framework_srs.md start=policies-and-regulations-begin end=policies-and-regulations-finish
!template-end!

!template! item key=packaging
No special requirements are needed for packaging or shipping any media containing the [!ac](MOOSE)
and [!ac]({{app}}) source code. However, some [!ac](MOOSE)-based applications that use the [!ac]({{app}})
code may be export-controlled, in which case all export control restrictions must be adhered to when
packaging and shipping media.
!template-end!

!template! item key=reliability
The regression test suite will cover at least 87% of all lines of code at all times. Known
simopier marked this conversation as resolved.
Show resolved Hide resolved
regressions will be recorded and tracked (see [#maintainability]) to an independent and
satisfactory resolution.
!template-end!
6 changes: 5 additions & 1 deletion doc/content/sqa/fenix_vvr.md
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
!template load file=sqa/app_vvr.md.template app=FENIX category=fenix
!template load file=sqa/app_vvr.md.template app=FENIX category=fenix

!template! item key=introduction
The [!ac](VVR) for {{app}} provides evidence that {{app}} fulfills its intended purpose.
!template-end!
3 changes: 3 additions & 0 deletions doc/content/sqa/theory_manual.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# FENIX Theory Manual

Documentation for all the theory supporting FENIX is contained in the [syntax/index.md] page.
3 changes: 3 additions & 0 deletions doc/content/sqa/user_manual.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# FENIX User Manual

Documentation for all FENIX input file objects, and how they can be used in the creation of a simulation, is contained in the [syntax/index.md] page.
3 changes: 2 additions & 1 deletion doc/sqa_reports.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ Documents:
software_library_list: sqa/fenix_sll.md
communication_and_contact_information: sqa/fenix_cci.md
software_coding_standards: sqa/fenix_scs.md
log_default: WARNING
user_manual: sqa/user_manual.md
theory_manual: sqa/theory_manual.md
show_warning: false
working_dirs:
- ${ROOT_DIR}/doc/content
Expand Down