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

[WIP] Add a Fusion Module #30122

Draft
wants to merge 54 commits into
base: next
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
2165fb7
Changed _n_elems and _n_elem so that we reassign values in FilePipe1P…
fdkong Jul 8, 2022
8067d32
Added master boundary information for transfer
fdkong Jul 8, 2022
15c743e
Added nu_scale to adjust nusselt number
fdkong Nov 11, 2021
bfdd187
Correct "fussion" to "fusion"
fdkong Jul 7, 2022
0226f2b
Correct "fussion" to "fusion" across all the files
fdkong Jul 7, 2022
dddb464
Movef thm files to fusion app
fdkong Jul 7, 2022
24cc917
Updated simple input file
fdkong Jul 8, 2022
018126b
Deleted FusionProblem
fdkong Jul 8, 2022
0db6748
Correct application name
fdkong Jul 8, 2022
67da82a
Blanket example input file
fdkong Jul 8, 2022
4a1f3ac
Blanket example: channel meshes
fdkong Jul 8, 2022
d52566d
Added cliargs and positions files
fdkong Jul 8, 2022
f6ec530
Added a porous flow example
fdkong Jul 8, 2022
67e1e51
Added readme for heat transfer simulation for fusion blanket
fdkong Jul 8, 2022
99a5692
Added readme for porous example
fdkong Jul 8, 2022
32b22b9
Added a description of application
fdkong Jul 11, 2022
cde8802
Added more documentation for the blanket example
fdkong Jul 18, 2022
a293673
Rename 'fusion_app' to 'fusion'
cticenhour Jun 19, 2023
5b00d9f
Update FusionApp stork files to module versions
cticenhour Jun 19, 2023
1909e09
Make sure temporary fusion module is registered properly
cticenhour Jun 19, 2023
b03d69d
Remove extraneous stork files
cticenhour Jun 20, 2023
f47adc9
Get tests running and fix registration
cticenhour Jun 20, 2023
eec9006
Move file_pipeflow test to more common location
cticenhour Jun 20, 2023
88bde5a
Regold file_pipeflow test and add quarter mesh file from quarter.py s…
cticenhour Jun 20, 2023
05fcee9
added RunApp test to all the input files already in the testing direc…
FranklinTrevor Jun 20, 2023
ab4dcf6
Started the testing file for the Source Aux kernel
FranklinTrevor Jun 23, 2023
fe1ec72
adding a smaller slice of the fusion blanket for easy runs. Added hea…
FranklinTrevor Jun 28, 2023
292c255
Changed the neutronics from FNSFSourceAux to constant aux kernels
FranklinTrevor Jun 28, 2023
d685e0b
Finishing the capablilites of heat conduction and nuetronics heating …
FranklinTrevor Jun 29, 2023
5e05379
added TH coupling to the simple blanket mesh slice
FranklinTrevor Jun 29, 2023
720e864
starting the capability for tritium diffusion tracking in the simple …
FranklinTrevor Jul 5, 2023
fd96d14
Adding a third TH channel to the back wall of the simple mesh slice
FranklinTrevor Jul 5, 2023
42cc119
addeding Heat conduction and TH capabilites for bigger blanket slice
FranklinTrevor Jul 7, 2023
70121ad
Running heat conduction and th coupling on the bigger blanket slice
FranklinTrevor Jul 8, 2023
25febe8
adding blanket cutout mesh for testing geometry specific objects
FranklinTrevor Jul 13, 2023
4bde97a
Adding input files for TH channels alongside the beginning of some te…
FranklinTrevor Jul 20, 2023
fdaed80
Started gmsh file to match geometry fande used in FNSF
FranklinTrevor Jul 28, 2023
883b7b1
using Fande's custom kernels to produce a gold file to test against g…
FranklinTrevor Jul 31, 2023
6fbe82f
fixing error in FNSFUtils.h
FranklinTrevor Aug 3, 2023
fbbef55
added testing files for FNSFSourceAux object
FranklinTrevor Aug 3, 2023
62f79e7
adding test for custom objects involving ICs, BCs, and kernels
FranklinTrevor Aug 4, 2023
b32bb0e
Adding manufactured solutions for the FNSFheatsource kernel
FranklinTrevor Aug 10, 2023
72ba362
Adding manufactured solutions for the FNSFheatsource kernel
FranklinTrevor Aug 10, 2023
fba00e6
Added input file documentation for each test
FranklinTrevor Aug 10, 2023
dde81dc
Fix typo in pc_hypre_type petsc option usage
cticenhour Sep 13, 2023
1390d4c
Fixup failing test on apple silicon
cticenhour Sep 13, 2023
1cbe09e
Add fusion module resource files to gitignore
cticenhour Sep 14, 2023
485df07
Fixup build errors in fusion module after rebase
cticenhour Sep 14, 2023
b5b9a7e
Remove simple_diffusion test from fusion module
cticenhour Sep 14, 2023
3e55732
Get docs building without errors
cticenhour Sep 29, 2023
079327f
Add initial SQA for fusion module
cticenhour Sep 29, 2023
fd1024d
Fixup registrations for objects in fusion module
cticenhour Sep 29, 2023
5fb832b
Add documentation stubs and system page (for object links)
cticenhour Sep 29, 2023
be698c0
Add fusion module connections to main website sqa pages and module list
cticenhour Sep 29, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,7 @@ share/
/modules/geochemistry/geochemistry.yaml
/modules/thermal_hydraulics/thermal_hydraulics.yaml
/modules/reactor/reactor.yaml
/modules/fusion/fusion.yaml
/modules/rdg/rdg.yaml
/modules/fsi/fsi.yaml
/unit/moose-unit.yaml
Expand Down Expand Up @@ -322,5 +323,6 @@ share/
/modules/rdg/unit/rdg-unit.yaml
/modules/fsi/unit/fsi-unit.yaml
/modules/misc/misc.yaml
/modules/fusion/unit/fusion-unit.yaml
/tutorials/tutorial01_app_development/*/babbler.yaml
/tutorials/darcy_thermo_mech/*/darcy_thermo_mech.yaml
4 changes: 4 additions & 0 deletions framework/include/problems/FEProblemBase.h
Original file line number Diff line number Diff line change
Expand Up @@ -2144,6 +2144,8 @@ class FEProblemBase : public SubProblem, public Restartable
*/
bool identifyVariableGroupsInNL() const { return _identify_variable_groups_in_nl; }

BoundaryName & getMasterBoundaryName() { return _master_bdry_name; }

protected:
/// Create extra tagged vectors and matrices
void createTagVectors();
Expand Down Expand Up @@ -2571,6 +2573,8 @@ class FEProblemBase : public SubProblem, public Restartable
/// Number of steps in a grid sequence
unsigned int _num_grid_steps;

BoundaryName _master_bdry_name;

/// Whether to trust the user coupling matrix no matter what. See
/// https://github.com/idaholab/moose/issues/16395 for detailed background
bool _trust_user_coupling_matrix = false;
Expand Down
5 changes: 5 additions & 0 deletions framework/src/problems/FEProblemBase.C
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,9 @@ FEProblemBase::validParams()
"True to turn on a check that no state presents during the evaluation of "
"user objects and aux kernels");

params.addParam<BoundaryName>("master_bdry_name",
"Boundary name in master subapp wants to transfer data from/to. ");

params.addPrivateParam<MooseMesh *>("mesh");

params.declareControllable("solve");
Expand Down Expand Up @@ -412,6 +415,8 @@ FEProblemBase::FEProblemBase(const InputParameters & parameters)
_u_dotdot_old_requested(false),
_has_mortar(false),
_num_grid_steps(0),
_master_bdry_name(isParamValid("master_bdry_name") ? getParam<BoundaryName>("master_bdry_name")
: ""),
_print_execution_on(),
_identify_variable_groups_in_nl(getParam<bool>("identify_variable_groups_in_nl"))
{
Expand Down
2 changes: 2 additions & 0 deletions modules/combined/src/base/CombinedApp.C
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#include "FluidPropertiesApp.h"
#include "FsiApp.h"
#include "FunctionalExpansionToolsApp.h"
#include "FusionApp.h"
#include "GeochemistryApp.h"
#include "HeatConductionApp.h"
#include "LevelSetApp.h"
Expand Down Expand Up @@ -79,6 +80,7 @@ CombinedApp::registerAll(Factory & f, ActionFactory & af, Syntax & s)
FluidPropertiesApp::registerAll(f, af, s);
FsiApp::registerAll(f, af, s);
FunctionalExpansionToolsApp::registerAll(f, af, s);
FusionApp::registerAll(f, af, s);
GeochemistryApp::registerAll(f, af, s);
HeatConductionApp::registerAll(f, af, s);
LevelSetApp::registerAll(f, af, s);
Expand Down
2 changes: 2 additions & 0 deletions modules/doc/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ Content:
- modules/fluid_properties/doc/content
- modules/fsi/doc/content
- modules/functional_expansion_tools/doc/content
- modules/fusion/doc/content
- modules/geochemistry/doc/content
- modules/heat_transfer/doc/content
- modules/level_set/doc/content
Expand Down Expand Up @@ -176,6 +177,7 @@ Extensions:
electromagnetics: !include modules/electromagnetics/doc/sqa_electromagnetics.yml
fluid_properties: !include modules/fluid_properties/doc/sqa_fluid_properties.yml
fsi: !include modules/fsi/doc/sqa_fsi.yml
fusion: !include modules/fusion/doc/sqa_fusion.yml
heat_transfer: !include modules/heat_transfer/doc/sqa_heat_transfer.yml
level_set: !include modules/level_set/doc/sqa_level_set.yml
misc: !include modules/misc/doc/sqa_misc.yml
Expand Down
1 change: 1 addition & 0 deletions modules/doc/content/modules/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ application.
- [Fluid Properties](modules/fluid_properties/index.md)
- [Fluid-Structure Interaction](modules/fsi/index.md)
- [Functional Expansion Tools](modules/functional_expansion_tools/index.md)
- [Fusion](modules/fusion/index.md)
- [Geochemistry](modules/geochemistry/index.md)
- [Heat Transfer](modules/heat_transfer/index.md)
- [Level Set](modules/level_set/index.md)
Expand Down
26 changes: 26 additions & 0 deletions modules/fusion/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
###############################################################################
################### MOOSE Application Standard Makefile #######################
###############################################################################
#
# Optional Environment variables
# MOOSE_DIR - Root directory of the MOOSE project
# HERD_TRUNK_DIR - Location of the HERD repository
# FRAMEWORK_DIR - Location of the MOOSE framework
#
###############################################################################
MODULE_DIR ?= $(shell dirname `pwd`)
MOOSE_DIR ?= $(shell dirname $(MODULE_DIR))
FRAMEWORK_DIR ?= $(MOOSE_DIR)/framework
ADDITIONAL_CPPFLAGS += -Wall -Wextra
###############################################################################

# framework
include $(FRAMEWORK_DIR)/build.mk
include $(FRAMEWORK_DIR)/moose.mk

# Module
MODULE_NAME := fusion
include $(MODULE_DIR)/modules.mk

###############################################################################
# Additional special case targets should be added here
19 changes: 19 additions & 0 deletions modules/fusion/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
FussionApp
=====

It is a moose-based application that temporality holds some
fusion thermal-hydraulics research files. These files may
be generalized, improved, and then moved to the MOOSE framework in the future.

At this point, the application holder is an entry point for
thermal-hydraulics simulations. Before using this application,
we need to make MOOSE ready. Here is detailed explanation of how
to build MOOSE https://mooseframework.inl.gov/getting_started/installation/index.html#install-moose

Submodule moose should be used since it has a few small necessary modifications.
Submodule moose should be used since it has a few small necessary modifications.
If you have a fresh clone, you could do "git submodule update --init" to prepare
all submodules. If PETSc/libMesh is already, you could do "make -j20" compile
the application otherwise, please follow instructions
https://mooseframework.inl.gov/getting_started/installation/index.html#install-moose
to have these packages ready.
37 changes: 37 additions & 0 deletions modules/fusion/doc/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
Content:
- framework/doc/content
- modules/fusion/doc/content
- modules/thermal_hydraulics/doc/content
- modules/fluid_properties/doc/content
- modules/heat_conduction/doc/content
- modules/misc/doc/content
- modules/navier_stokes/doc/content
- modules/ray_tracing/doc/content
- modules/rdg/doc/content
- modules/solid_properties/doc/content
- infrastructure:
root_dir: modules/doc/content
content:
- application_usage/command_line_usage.md

Renderer:
type: MooseDocs.base.MaterializeRenderer

Extensions:
MooseDocs.extensions.navigation:
name: MOOSE Fusion Module
repo: https://github.com/idaholab/moose
home: /modules/fusion
MooseDocs.extensions.appsyntax:
executable: ${MOOSE_DIR}/modules/fusion
remove: !include framework/doc/remove.yml
includes:
- framework/include
- modules/fusion/include
MooseDocs.extensions.common:
shortcuts: !include framework/doc/globals.yml
MooseDocs.extensions.acronym:
acronyms: !include framework/doc/acronyms.yml
MooseDocs.extensions.template:
active: True
MooseDocs.extensions.sqa: disable
1 change: 1 addition & 0 deletions modules/fusion/doc/content/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[modules/fusion/index.md]
3 changes: 3 additions & 0 deletions modules/fusion/doc/content/modules/fusion/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Fusion Module

- [Systems](modules/fusion/systems.md) - A complete summary of all fusion module objects
1 change: 1 addition & 0 deletions modules/fusion/doc/content/modules/fusion/systems.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
!syntax complete groups=FusionApp
23 changes: 23 additions & 0 deletions modules/fusion/doc/content/source/auxkernels/FNSFSourceAux.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# FNSFSourceAux

!alert construction title=Undocumented Class
The FNSFSourceAux has not been documented. The content listed below should be used as a starting point for
documenting the class, which includes the typical automatic documentation associated with a
MooseObject; however, what is contained is ultimately determined by what is necessary to make the
documentation clear for users.

!syntax description /AuxKernels/FNSFSourceAux

## Overview

!! Replace these lines with information regarding the FNSFSourceAux object.

## Example Input File Syntax

!! Describe and include an example of how to use the FNSFSourceAux object.

!syntax parameters /AuxKernels/FNSFSourceAux

!syntax inputs /AuxKernels/FNSFSourceAux

!syntax children /AuxKernels/FNSFSourceAux
23 changes: 23 additions & 0 deletions modules/fusion/doc/content/source/components/FilePipe1Phase.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# FilePipe1Phase

!alert construction title=Undocumented Class
The FilePipe1Phase has not been documented. The content listed below should be used as a starting point for
documenting the class, which includes the typical automatic documentation associated with a
MooseObject; however, what is contained is ultimately determined by what is necessary to make the
documentation clear for users.

!syntax description /Components/FilePipe1Phase

## Overview

!! Replace these lines with information regarding the FilePipe1Phase object.

## Example Input File Syntax

!! Describe and include an example of how to use the FilePipe1Phase object.

!syntax parameters /Components/FilePipe1Phase

!syntax inputs /Components/FilePipe1Phase

!syntax children /Components/FilePipe1Phase
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# FVFunctionalNormalDirichletBC

!alert construction title=Undocumented Class
The FVFunctionalNormalDirichletBC has not been documented. The content listed below should be used as a starting point for
documenting the class, which includes the typical automatic documentation associated with a
MooseObject; however, what is contained is ultimately determined by what is necessary to make the
documentation clear for users.

!syntax description /FVBCs/FVFunctionalNormalDirichletBC

## Overview

!! Replace these lines with information regarding the FVFunctionalNormalDirichletBC object.

## Example Input File Syntax

!! Describe and include an example of how to use the FVFunctionalNormalDirichletBC object.

!syntax parameters /FVBCs/FVFunctionalNormalDirichletBC

!syntax inputs /FVBCs/FVFunctionalNormalDirichletBC

!syntax children /FVBCs/FVFunctionalNormalDirichletBC
23 changes: 23 additions & 0 deletions modules/fusion/doc/content/source/ics/FNSFHeatIC.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# FNSFHeatIC

!alert construction title=Undocumented Class
The FNSFHeatIC has not been documented. The content listed below should be used as a starting point for
documenting the class, which includes the typical automatic documentation associated with a
MooseObject; however, what is contained is ultimately determined by what is necessary to make the
documentation clear for users.

!syntax description /ICs/FNSFHeatIC

## Overview

!! Replace these lines with information regarding the FNSFHeatIC object.

## Example Input File Syntax

!! Describe and include an example of how to use the FNSFHeatIC object.

!syntax parameters /ICs/FNSFHeatIC

!syntax inputs /ICs/FNSFHeatIC

!syntax children /ICs/FNSFHeatIC
23 changes: 23 additions & 0 deletions modules/fusion/doc/content/source/ics/FNSFOBExpHeatIC.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# FNSFOBExpHeatIC

!alert construction title=Undocumented Class
The FNSFOBExpHeatIC has not been documented. The content listed below should be used as a starting point for
documenting the class, which includes the typical automatic documentation associated with a
MooseObject; however, what is contained is ultimately determined by what is necessary to make the
documentation clear for users.

!syntax description /ICs/FNSFOBExpHeatIC

## Overview

!! Replace these lines with information regarding the FNSFOBExpHeatIC object.

## Example Input File Syntax

!! Describe and include an example of how to use the FNSFOBExpHeatIC object.

!syntax parameters /ICs/FNSFOBExpHeatIC

!syntax inputs /ICs/FNSFOBExpHeatIC

!syntax children /ICs/FNSFOBExpHeatIC
23 changes: 23 additions & 0 deletions modules/fusion/doc/content/source/kernels/FNSFHeatSource.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# FNSFHeatSource

!alert construction title=Undocumented Class
The FNSFHeatSource has not been documented. The content listed below should be used as a starting point for
documenting the class, which includes the typical automatic documentation associated with a
MooseObject; however, what is contained is ultimately determined by what is necessary to make the
documentation clear for users.

!syntax description /Kernels/FNSFHeatSource

## Overview

!! Replace these lines with information regarding the FNSFHeatSource object.

## Example Input File Syntax

!! Describe and include an example of how to use the FNSFHeatSource object.

!syntax parameters /Kernels/FNSFHeatSource

!syntax inputs /Kernels/FNSFHeatSource

!syntax children /Kernels/FNSFHeatSource
23 changes: 23 additions & 0 deletions modules/fusion/doc/content/source/kernels/FNSFOBExpHeatSource.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# FNSFOBExpHeatSource

!alert construction title=Undocumented Class
The FNSFOBExpHeatSource has not been documented. The content listed below should be used as a starting point for
documenting the class, which includes the typical automatic documentation associated with a
MooseObject; however, what is contained is ultimately determined by what is necessary to make the
documentation clear for users.

!syntax description /Kernels/FNSFOBExpHeatSource

## Overview

!! Replace these lines with information regarding the FNSFOBExpHeatSource object.

## Example Input File Syntax

!! Describe and include an example of how to use the FNSFOBExpHeatSource object.

!syntax parameters /Kernels/FNSFOBExpHeatSource

!syntax inputs /Kernels/FNSFOBExpHeatSource

!syntax children /Kernels/FNSFOBExpHeatSource
23 changes: 23 additions & 0 deletions modules/fusion/doc/content/source/kernels/FNSFTritiumSource.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# FNSFTritiumSource

!alert construction title=Undocumented Class
The FNSFTritiumSource has not been documented. The content listed below should be used as a starting point for
documenting the class, which includes the typical automatic documentation associated with a
MooseObject; however, what is contained is ultimately determined by what is necessary to make the
documentation clear for users.

!syntax description /Kernels/FNSFTritiumSource

## Overview

!! Replace these lines with information regarding the FNSFTritiumSource object.

## Example Input File Syntax

!! Describe and include an example of how to use the FNSFTritiumSource object.

!syntax parameters /Kernels/FNSFTritiumSource

!syntax inputs /Kernels/FNSFTritiumSource

!syntax children /Kernels/FNSFTritiumSource
Loading