Phase 2: Time-dependent Multiphysics Coupling
Description
This phase is composed of a sole task which aims to verify the multiphysics coupled transient calculations. The heat transfer coefficient is represented by a sinusoidal function of the following form (1) where is the reference volumetric heat transfer coefficient, and f is the frequency which results in a sinusoidal behavior of the reactor power. In the simulation, varying values of frequency used are 0.0125, 0.025, 0.05, 0.1, 0.2, 0.4, 0.8. The power gain in the reactor with the varying power can be calculated as a function of frequency according to the following equation
There are two coupled inputs for this stage. The first performs the neutronics calculations and the second performs the Navier-Stocks solution. The sinusoidal power behavior modeling is defined in the neutronics input as a function within the Functions
module within the Navier-Stocks input.
[Functions]
[alpha_val]
type = ParsedFunction
expression = '1.0e+6*(1.0 + 0.1*sin(2.0*pi*${frequency}*t))' # 'alpha_0*(1.0 + a*sin(fq*t))'
[]
[]
(msr/cnrs/s21/cnrs_s21_ns_flow.i)For each frequency, 10 cycles are ran to obtain the asymptotic power wave. The last three cycles are used to obtain the power gain and phase shift. The problem is set to transient and the time step size is set inversely proportional to the frequency. This is requested in the Executioner
block in the neutronics input as
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu NONZERO superlu_dist'
start_time = 0.0
dt = '${fparse max(0.005, 0.05*0.0125/frequency)}'
end_time = '${fparse 10/frequency}'
#[TimeStepper]
# type = IterationAdaptiveDT
# dt = 0.1
# growth_factor = 2
#[]
line_search = none #l2
l_max_its = 200
l_tol = 1e-3
nl_max_its = 200
nl_rel_tol = 1e-6
nl_abs_tol = 1e-8
# MultiApp iteration parameters
fixed_point_min_its = 2
fixed_point_max_its = 50
fixed_point_rel_tol = 1e-6
fixed_point_abs_tol = 1e-6
[]
(msr/cnrs/s21/cnrs_s21_griffin_neutronics.i)The rest of the transport solve input has a structure similar to that of the transport input in Step 1.3. The difference is in assigning a transient
equation type instead of
eigenvalue
, and changing
type
input in
Executioner
block to
Transient
.
On the Navier-Stokes solve side, the problem is still executed as a transient solver. However, instead of running the problem for a long time to achieve steady state, the problem is defined as follows
[Executioner]
type = Transient
start_time = 0.0
dt = '${fparse max(0.005, 0.05*0.0125/frequency)}'
end_time = '${fparse 10/frequency}'
#[TimeStepper]
# type = IterationAdaptiveDT
# dt = 0.1
# growth_factor = 2
#[]
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu NONZERO superlu_dist'
line_search = l2 #'none'
nl_rel_tol = 1e-6
nl_abs_tol = 2e-8
nl_max_its = 200
l_max_its = 200
automatic_scaling = true
[]
(msr/cnrs/s21/cnrs_s21_ns_flow.i)Results
The results for this exercise report the power gain and the phase shift as a function of the frequency as defined above. The power gain decreases with increases the frequency, and the phase shift approaches 90 degrees with increasing the frequency. These results are displayed in Figure 1

Figure 1: