Skip to content

Commit

Permalink
Adding core GCMR with bypass flow
Browse files Browse the repository at this point in the history
  • Loading branch information
licharlot committed Oct 4, 2023
1 parent 548f0a5 commit 3dc106b
Show file tree
Hide file tree
Showing 22 changed files with 2,509 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,4 @@ microreactors/mrad/mesh/gold/HPMR_OneSixth_Core_meshgenerator_tri_rotate_bdry.e
microreactors/mrad/mesh/gold/HPMR_OneSixth_Core_meshgenerator_tri_rotate_bdry_fine.e filter=lfs diff=lfs merge=lfs -text
microreactors/gcmr/airjacket/mesh/airjacket.re2 filter=lfs diff=lfs merge=lfs -text
microreactors/gcmr/airjacket/restart_airjacket.fld filter=lfs diff=lfs merge=lfs -text
microreactors/gcmr/bypass_flow/mesh_bypass_in.e filter=lfs diff=lfs merge=lfs -text
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/content/media/gcmr/bypass_flow/T_bypass.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/content/media/gcmr/bypass_flow/T_core.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/content/media/gcmr/bypass_flow/transfers.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Gas-cooled Microreactor Assembly Model Description

The Gas-Cooled Microreactor (GC-MR) core model with bypass flow is a thermal hydraulics model that can be used to evaluate the impact of the inter assembly bypass flow on the fuel temperatures. For simplicity, no neutronics is included in this model and the power density is prescribed. The design is from [!citep](Duchnowski2022). The core layout is modified to include assemblies in the corners for compatibility with the available meshes in Pronghorn-SC as shown in [core_layout].

!media media/gcmr/bypass_flow/core_cross_section.png
style=display: block;margin-left:auto;margin-right:auto;width:50%;
id=core_layout
caption= GCMR core layout

Mesh details showing the inter assembly bypass is shown in [core_layout_detailed].

!media media/gcmr/bypass_flow/mesh_details.png
style=display: block;margin-left:auto;margin-right:auto;width:70%;
id=core_layout_detailed
caption= GCMR core layout mesh


The major technical parameters for the GC-MR core model are:

| Parameter (unit) | Value |
| ---------------------------------- | --------- |
| Reactor Power (MWt) | 15 |
| Fuel | TRISO |
| Coolant | He |
| Moderator | Graphite |
| Reflector | Graphite |
| Inlet/ avg. outlet temperature (K) | 889/ 1200 |
| Pressure (MPa) | 7.9 |
| Inlet velocity (m/s) | 15 |
| Assembly lattice pitch (cm) | 2.20 |
| Total height (cm) | 200 |
| TRISO fuel compact radius (cm) | 0.794 |
| Coolant hole radius (cm) | 0.635 |
| Inter assembly gap (cm) | 0.1 |
175 changes: 175 additions & 0 deletions doc/content/microreactors/gcmr/bypass_flow/Core_with_bypass_model.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
# GCMR Assembly Multiphysics Model

*Point of Contact: Lise Charlot (lise.charlot.at.inl.gov)*

*Model link: [GCMR Assembly Model](https://github.com/idaholab/virtual_test_bed/tree/devel/microreactors/gcmr/bypass_flow)*

## Mesh file

A 3-D mesh for the core is generated using the MOOSE [`Reactor module`](https://mooseframework.inl.gov/modules/reactor/index.html). Details of the mesh for an assembly is shown in [assembly_mesh].

!media media/gcmr/bypass_flow/assembly_mesh.png
style=display: block;margin-left:auto;margin-right:auto;width:60%;
id=assembly_mesh
caption= Details of the core 3D mesh

First, the pincell for the moderator, fuel and coolant channels are created.
Several rings are used for the fuel channels to be able to prescribe a non-uniform power density in the assembly.

!listing microreactors/gcmr/bypass_flow/mesh_bypass.i start=moderator_pincell
end=fuel_pincell_ring2

Using this pincells, the assembly pattern is created using the [PatternedHexMeshGenerator](https://mooseframework.inl.gov/source/meshgenerators/PatternedHexMeshGenerator.html). The outermost duct block represents the bypass and will be deleted.

!listing microreactors/gcmr/bypass_flow/mesh_bypass.i block=Mesh/fuel_assembly

The assembly mesh is then used to create the core layout.


!listing microreactors/gcmr/bypass_flow/mesh_bypass.i block=Mesh/core

The reflector is added using the [PeripheralRingMeshGenerator](https://mooseframework.inl.gov/source/meshgenerators/PeripheralRingMeshGenerator.html) mesh generator.


!listing microreactors/gcmr/bypass_flow/mesh_bypass.i block=Mesh/reflector

This 2-D mesh is then extruded to create the 3D mesh.


!listing microreactors/gcmr/bypass_flow/mesh_bypass.i block=Mesh/extrude

A sideset for the coolant boundary is created and the coolant channels removed.

!listing microreactors/gcmr/bypass_flow/mesh_bypass.i start=add_coolant_boundary
end=###


A sideset for the bypass boundary is created and the bypass block is removed.

!listing microreactors/gcmr/bypass_flow/mesh_bypass.i start=add_bypass_boundary
end=###

The mesh is then rotated to match the subchannel mesh orientation.

!listing microreactors/gcmr/bypass_flow/mesh_bypass.i block=Mesh/rotate

This mesh is used for the heat conduction problem. The coolant channels and the bypass flow have their own meshes generated internally.

## Heat Conduction Model

The heat conduction input file solves for the temperature in the fuel channels, moderator and reflector. The material properties for each block are defined depending on their composition using the [HeatConductionMaterial](https://mooseframework.inl.gov/source/materials/HeatConductionMaterial.html) and [Density](https://mooseframework.inl.gov/source/materials/Density.html) material blocks.

A spatially variable power density is imposed in the fuel rods. This is done using several functions and assigning them to the `power_density` AuxVariable. The heat source is then applied using a [CoupledForce](https://mooseframework.inl.gov/source/kernels/CoupledForce.html) kernel.


!listing microreactors/gcmr/bypass_flow/core.i block=heat_source_fuel

The coupling to the helium flow in the cooling channels and in the bypass between the assemblies is performed through convective boundary conditions. AuxVariables for the heat transfer coefficient and bulk temperatures in the coolant channels and in the bypass are created and used in the boundary condition blocks. The value of these variables will be assigned by the Transfers system.


!listing microreactors/gcmr/bypass_flow/core.i start=cooling_channels end=outer_to_env

In addition, a convective boundary condition is assigned to the outer surface to model the heat losses through the vessel.


!listing microreactors/gcmr/bypass_flow/core.i block=outer_to_env

## Bypass flow Model

The bypass flow is modeled using Pronghorn-SC. It includes a specific problem for inter-assembly subchannels in an hexagonal pattern.

!alert note
The tri-inter wrapper model has not been validated for gases. This model has been developed is for capability demonstration purposes only.


The mesh is defined using the `TriInterWrapperMesh` with parameters consistent with the 3D mesh used for the heat conduction problem.


!listing microreactors/gcmr/bypass_flow/bypass.i block=Mesh

The helium fluid properties are defined using an ideal gas with the following parameters:

!listing microreactors/gcmr/bypass_flow/bypass.i block=FluidProperties

The flow area and wet perimeter of the subchannels are defined as AuxVariables. They are initialized using the `TriInterWrapperFlowAreaIC` and `TriInterWrapperWettedPerimIC` objects to be consistent with the mesh.

The heat transferred from the moderator block is applied using the linear heat rate AuxVariable `q_prime`. It is defined using a [ParsedAux](https://mooseframework.inl.gov/source/auxkernels/ParsedAux.html) AuxKernel using the wet perimeter (which is equal to the heated perimeter in this case), and the flux transferred from the heat conduction problem. The value of the linear heat rate is bounded to improve the convergence of the fixed point algorithm.

!listing microreactors/gcmr/bypass_flow/bypass.i block=AuxKernels/q_prime_aux

The heat transfer coefficient to be transferred to the heat conduction problem is calculated using [ParsedAux](https://mooseframework.inl.gov/source/auxkernels/ParsedAux.html) AuxKernel. It is set here to a constant value, but a more complex correlation such as Dittus-Boelter could be implemented. This approach was not chosen for this case because it was significantly increasing the number of the fixed point iterations.

The solver and flow model are set using the `LiquidMetalInterWrapper1PhaseProblem`.


!listing microreactors/gcmr/bypass_flow/bypass.i block=SubChannel

Note that `P_out` is set to the outlet pressure and the AuxVariable `P` is initialized to zero as `P` is the pressure difference with the outlet pressure. The value P+P_out is used to calculate the fluid properties.



## Thermal-hydraulic model of the coolant channels

The MOOSE thermal-hydraulics module (THM) is used to mode the response of the coolant channels. The input file represents a single channel that will be replicated and translated through the MultiApp system.

The helium fluid properties are defined using an ideal gas with the following parameters:

!listing microreactors/gcmr/bypass_flow/cooling_channel.i block=FluidProperties

The friction factor and heat transfer coefficient are defined using the default correlations of the [Closures1PhaseTHM](https://mooseframework.inl.gov/source/closures/Closures1PhaseTHM.html) closures sets which are the Churchill equation for the friction factor and the Dittus Boelter correlation for the heat transfer coefficient.

!listing microreactors/gcmr/bypass_flow/cooling_channel.i block=Closures

The channel is defined using a [FlowChannel1Phase](https://mooseframework.inl.gov/source/components/FlowChannel1Phase.html) component and the geometry parameters of a single coolant channel.

The fluid temperature and velocity are prescribed at the channel inlet using a [InletVelocityTemperature1Phase](https://mooseframework.inl.gov/source/components/InletVelocityTemperature1Phase.html) component. The outlet pressure is prescribed using a [Outlet1Phase](https://mooseframework.inl.gov/source/components/Outlet1Phase.html) component.

A convective boundary condition is applied on the channel wall using a[HeatTransferFromExternalAppTemperature1Phase](https://mooseframework.inl.gov/source/components/HeatTransferFromExternalAppTemperature1Phase.html) component. It will use the `T_wall` AuxVariable, the fluid bulk temperature, and the heat transfer coefficeint generated by the closure set to compute the heat transferred to the channel. The value of `T_wall` will be transferred from the 3D heat conduction problem in the core.


!listing microreactors/gcmr/bypass_flow/cooling_channel.i block=Components

The `Steady` Executioner is used. The initial guess for the velocity is defined as the inlet velocity, the pressure initial guess is the outlet pressure, and the temperature is set to a linear function ranging from the prescribed inlet temperature to the arbitrary value of 1100 K.


## Multiphysics Coupling

The heat conduction simulation is the parent app. The cooling channels and bypass flow are sub apps.

!listing microreactors/gcmr/bypass_flow/core.i block=MultiApps

The variables transfers are shown in [transfers].

!media media/gcmr/bypass_flow/transfers.png
style=display: block;margin-left:auto;margin-right:auto;width:60%;
id=transfers
caption= MultiApp and transfers

The wall temperature needed for the flow in the cooling channels is calculated using a [NearestPointLayeredSideAverage](https://mooseframework.inl.gov/source/userobjects/NearestPointLayeredSideAverage.html) UserObject in the heat conduction input file.


!listing microreactors/gcmr/bypass_flow/core.i block=T_wall_coolant_uo

It is then transfered using a [MultiAppGeneralFieldUserObjectTransfer](https://mooseframework.inl.gov/source/transfers/MultiAppGeneralFieldUserObjectTransfer.html).


!listing microreactors/gcmr/bypass_flow/core.i block=T_wall_to_coolant


The heat flux for the bypass flow is calculated using the bypass wall temperature. The wall temperature is calculated with a [NearestPointLayeredSideAverage](https://mooseframework.inl.gov/source/userobjects/NearestPointLayeredSideAverage.html) UserObject and assigned to the `T_wall_bypass` AuxVariable using a [SpatialUserObjectAux](https://mooseframework.inl.gov/source/auxkernels/SpatialUserObjectAux.html) AuxKernel. The heat flux is then calculated using a [ParsedAux](https://mooseframework.inl.gov/source/auxkernels/ParsedAux.html) AuxKernel.


!listing microreactors/gcmr/bypass_flow/core.i block=T_wall_bypass_uo

!listing microreactors/gcmr/bypass_flow/core.i block=T_wall_bypass_aux

!listing microreactors/gcmr/bypass_flow/core.i block=flux_aux

The heat flux is then transferred to the bypass flow sub-app using a [MultiAppGeometricInterpolationTransfer](https://mooseframework.inl.gov/source/transfers/MultiAppGeometricInterpolationTransfer.html) transfer.


!listing microreactors/gcmr/bypass_flow/core.i block=flux_to_bypass

Finally, the bulk coolant temperatures and heat transfer coefficent are transferred form the sub-apps using [MultiAppGeneralFieldNearestLocationTransfer](https://mooseframework.inl.gov/source/transfers/MultiAppGeneralFieldNearestLocationTransfer.html) transfers.

!listing microreactors/gcmr/bypass_flow/core.i block=Transfers
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
## Steady-state results

The temperature and cross flow in the bypass are shown in [T_bypass] and [Cross_flow]. The power extracted by the flow in the bypass is about 2MW, and the maximum outlet temperature in the bypass is about 1370K. [Cross_flow] shows the flow redistribution at the core inlet because of the different flow resistance between the subchannels. [T_core] shows the resulting temperatures in the moderator and fuel.

!media media/gcmr/bypass_flow/T_bypass.png
style=display: block;margin-left:auto;margin-right:auto;width:60%;
id=T_bypass
caption= Helium temperature in the bypass

!media media/gcmr/bypass_flow/Cross_flow.png
style=display: block;margin-left:auto;margin-right:auto;width:60%;
id=Cross_flow
caption= Cross flow in the bypass

!media media/gcmr/bypass_flow/T_core.png
style=display: block;margin-left:auto;margin-right:auto;width:60%;
id=T_core
caption= Temperature distribution in the core

## Run Commands

This simulation is run using Pronghorn by running:

!listing
mpiexec -np number_of_cores /path/to/pronghorn-opt -i core.i

10 changes: 10 additions & 0 deletions doc/content/microreactors/gcmr/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,13 @@
[Model Description](gcmr/BOP_model_description.md)

[Results](gcmr/BOP_results.md)

# Gas-Cooled Microreactor core with Inter-Assembly Bypass Flow

*Contacts: Lise Charlot ([email protected])*

[Description](gcmr/bypass_flow/Core_with_bypass_description.md)

[Multiphysics Models](gcmr/bypass_flow/Core_with_bypass_model.md)

[Steady-State Results](gcmr/bypass_flow/Core_with_bypass_results.md)
Loading

0 comments on commit 3dc106b

Please sign in to comment.