diff --git a/modules/combined/test/tests/subchannel_thm_coupling/subchannel.i b/modules/combined/test/tests/subchannel_thm_coupling/subchannel.i index 80f5a751d6cd..44d701fa344d 100644 --- a/modules/combined/test/tests/subchannel_thm_coupling/subchannel.i +++ b/modules/combined/test/tests/subchannel_thm_coupling/subchannel.i @@ -104,7 +104,6 @@ heated_length = 1.0 T_tol = 1.0e-3 implicit = true segregated = false - staggered_pressure = false verbose_multiapps = true verbose_subchannel = false interpolation_scheme = 'upwind' diff --git a/modules/subchannel/examples/MultiApp/fuel_assembly.i b/modules/subchannel/examples/MultiApp/fuel_assembly.i index 0aefabc503ee..21738b782a1e 100644 --- a/modules/subchannel/examples/MultiApp/fuel_assembly.i +++ b/modules/subchannel/examples/MultiApp/fuel_assembly.i @@ -144,7 +144,6 @@ duct_inside = '${fparse duct_outside - 2 * duct_thickness}' n_blocks = 10 implicit = false segregated = true - staggered_pressure = false # Tolerances P_tol = 1.0e-4 diff --git a/modules/subchannel/include/problems/SubChannel1PhaseProblem.h b/modules/subchannel/include/problems/SubChannel1PhaseProblem.h index 4a39c3c3d967..a3a224f42179 100644 --- a/modules/subchannel/include/problems/SubChannel1PhaseProblem.h +++ b/modules/subchannel/include/problems/SubChannel1PhaseProblem.h @@ -231,8 +231,6 @@ class SubChannel1PhaseProblem : public ExternalProblem, public PostprocessorInte const Real _dir_grav; /// Flag to define the usage of a implicit or explicit solution const bool _implicit_bool; - /// Flag to define the usage of staggered or collocated pressure - const bool _staggered_pressure_bool; /// Segregated solve const bool _segregated_bool; /// Boolean to printout information related to subchannel solve diff --git a/modules/subchannel/src/problems/SubChannel1PhaseProblem.C b/modules/subchannel/src/problems/SubChannel1PhaseProblem.C index e41aff665417..42d5de7c29f7 100644 --- a/modules/subchannel/src/problems/SubChannel1PhaseProblem.C +++ b/modules/subchannel/src/problems/SubChannel1PhaseProblem.C @@ -83,9 +83,6 @@ SubChannel1PhaseProblem::validParams() "gravity", gravity_direction, "Direction of gravity. Default is counter_flow"); params.addParam( "implicit", false, "Boolean to define the use of explicit or implicit solution."); - params.addParam("staggered_pressure", - false, - "Boolean to define the use of staggered or collocated pressure."); params.addParam( "segregated", true, "Boolean to define whether to use a segregated solution."); params.addParam( @@ -143,7 +140,6 @@ SubChannel1PhaseProblem::SubChannel1PhaseProblem(const InputParameters & params) _gravity_direction(getParam("gravity")), _dir_grav(computeGravityDir(_gravity_direction)), _implicit_bool(getParam("implicit")), - _staggered_pressure_bool(getParam("staggered_pressure")), _segregated_bool(getParam("segregated")), _verbose_subchannel(getParam("verbose_subchannel")), _deformation(getParam("deformation")), @@ -1101,228 +1097,98 @@ SubChannel1PhaseProblem::computeP(int iblock) const unsigned int first_node = iblock * _block_size + 1; if (!_implicit_bool) { - if (!_staggered_pressure_bool) - { - for (unsigned int iz = last_node; iz > first_node - 1; iz--) - { - // Calculate pressure in the inlet of the cell assuming known outlet - for (unsigned int i_ch = 0; i_ch < _n_channels; i_ch++) - { - auto * node_out = _subchannel_mesh.getChannelNode(i_ch, iz); - auto * node_in = _subchannel_mesh.getChannelNode(i_ch, iz - 1); - // update Pressure solution - _P_soln->set(node_in, (*_P_soln)(node_out) + (*_DP_soln)(node_out)); - } - } - } - else + for (unsigned int iz = last_node; iz > first_node - 1; iz--) { - for (unsigned int iz = last_node; iz > first_node - 1; iz--) + // Calculate pressure in the inlet of the cell assuming known outlet + for (unsigned int i_ch = 0; i_ch < _n_channels; i_ch++) { - // Calculate pressure in the inlet of the cell assuming known outlet - for (unsigned int i_ch = 0; i_ch < _n_channels; i_ch++) - { - auto * node_out = _subchannel_mesh.getChannelNode(i_ch, iz); - auto * node_in = _subchannel_mesh.getChannelNode(i_ch, iz - 1); - // update Pressure solution - // Note: assuming uniform axial discretization in the curren code - // We will need to update this later if we allow non-uniform refinements in the axial - // direction - PetscScalar Pe = 0.5; - auto alpha = computeInterpolationCoefficients(Pe); - if (iz == last_node) - { - _P_soln->set(node_in, (*_P_soln)(node_out) + (*_DP_soln)(node_out) / 2.0); - } - else - { - _P_soln->set(node_in, - (*_P_soln)(node_out) + (1.0 - alpha) * (*_DP_soln)(node_out) + - alpha * (*_DP_soln)(node_in)); - } - } + auto * node_out = _subchannel_mesh.getChannelNode(i_ch, iz); + auto * node_in = _subchannel_mesh.getChannelNode(i_ch, iz - 1); + // update Pressure solution + _P_soln->set(node_in, (*_P_soln)(node_out) + (*_DP_soln)(node_out)); } } } else { - if (!_staggered_pressure_bool) + LibmeshPetscCall(VecZeroEntries(_amc_pressure_force_rhs)); + for (unsigned int iz = last_node; iz > first_node - 1; iz--) { - LibmeshPetscCall(VecZeroEntries(_amc_pressure_force_rhs)); - for (unsigned int iz = last_node; iz > first_node - 1; iz--) + auto iz_ind = iz - first_node; + // Calculate pressure in the inlet of the cell assuming known outlet + for (unsigned int i_ch = 0; i_ch < _n_channels; i_ch++) { - auto iz_ind = iz - first_node; - // Calculate pressure in the inlet of the cell assuming known outlet - for (unsigned int i_ch = 0; i_ch < _n_channels; i_ch++) - { - auto * node_out = _subchannel_mesh.getChannelNode(i_ch, iz); - auto * node_in = _subchannel_mesh.getChannelNode(i_ch, iz - 1); + auto * node_out = _subchannel_mesh.getChannelNode(i_ch, iz); + auto * node_in = _subchannel_mesh.getChannelNode(i_ch, iz - 1); - // inlet, outlet, and interpolated axial surface area - auto S_in = (*_S_flow_soln)(node_in); - auto S_out = (*_S_flow_soln)(node_out); - auto S_interp = computeInterpolatedValue(S_out, S_in, 0.5); + // inlet, outlet, and interpolated axial surface area + auto S_in = (*_S_flow_soln)(node_in); + auto S_out = (*_S_flow_soln)(node_out); + auto S_interp = computeInterpolatedValue(S_out, S_in, 0.5); + + // Creating matrix of coefficients + PetscInt row = i_ch + _n_channels * iz_ind; + PetscInt col = i_ch + _n_channels * iz_ind; + PetscScalar value = -1.0 * S_interp; + LibmeshPetscCall( + MatSetValues(_amc_pressure_force_mat, 1, &row, 1, &col, &value, INSERT_VALUES)); - // Creating matrix of coefficients + if (iz == last_node) + { + PetscScalar value = -1.0 * (*_P_soln)(node_out)*S_interp; + PetscInt row = i_ch + _n_channels * iz_ind; + LibmeshPetscCall(VecSetValues(_amc_pressure_force_rhs, 1, &row, &value, ADD_VALUES)); + } + else + { PetscInt row = i_ch + _n_channels * iz_ind; - PetscInt col = i_ch + _n_channels * iz_ind; - PetscScalar value = -1.0 * S_interp; + PetscInt col = i_ch + _n_channels * (iz_ind + 1); + PetscScalar value = 1.0 * S_interp; LibmeshPetscCall( MatSetValues(_amc_pressure_force_mat, 1, &row, 1, &col, &value, INSERT_VALUES)); - - if (iz == last_node) - { - PetscScalar value = -1.0 * (*_P_soln)(node_out)*S_interp; - PetscInt row = i_ch + _n_channels * iz_ind; - LibmeshPetscCall(VecSetValues(_amc_pressure_force_rhs, 1, &row, &value, ADD_VALUES)); - } - else - { - PetscInt row = i_ch + _n_channels * iz_ind; - PetscInt col = i_ch + _n_channels * (iz_ind + 1); - PetscScalar value = 1.0 * S_interp; - LibmeshPetscCall( - MatSetValues(_amc_pressure_force_mat, 1, &row, 1, &col, &value, INSERT_VALUES)); - } - - if (_segregated_bool) - { - auto dp_out = (*_DP_soln)(node_out); - PetscScalar value_v = -1.0 * dp_out * S_interp; - PetscInt row_v = i_ch + _n_channels * iz_ind; - LibmeshPetscCall( - VecSetValues(_amc_pressure_force_rhs, 1, &row_v, &value_v, ADD_VALUES)); - } } - } - // Solving pressure problem - LibmeshPetscCall(MatAssemblyBegin(_amc_pressure_force_mat, MAT_FINAL_ASSEMBLY)); - LibmeshPetscCall(MatAssemblyEnd(_amc_pressure_force_mat, MAT_FINAL_ASSEMBLY)); - if (_segregated_bool) - { - KSP ksploc; - PC pc; - Vec sol; - LibmeshPetscCall(VecDuplicate(_amc_pressure_force_rhs, &sol)); - LibmeshPetscCall(KSPCreate(PETSC_COMM_SELF, &ksploc)); - LibmeshPetscCall(KSPSetOperators(ksploc, _amc_pressure_force_mat, _amc_pressure_force_mat)); - LibmeshPetscCall(KSPGetPC(ksploc, &pc)); - LibmeshPetscCall(PCSetType(pc, PCJACOBI)); - LibmeshPetscCall(KSPSetTolerances(ksploc, _rtol, _atol, _dtol, _maxit)); - LibmeshPetscCall(KSPSetFromOptions(ksploc)); - LibmeshPetscCall(KSPSolve(ksploc, _amc_pressure_force_rhs, sol)); - PetscScalar * xx; - LibmeshPetscCall(VecGetArray(sol, &xx)); - // update Pressure solution - for (unsigned int iz = last_node; iz > first_node - 1; iz--) + + if (_segregated_bool) { - auto iz_ind = iz - first_node; - for (unsigned int i_ch = 0; i_ch < _n_channels; i_ch++) - { - auto * node_in = _subchannel_mesh.getChannelNode(i_ch, iz - 1); - PetscScalar value = xx[iz_ind * _n_channels + i_ch]; - _P_soln->set(node_in, value); - } + auto dp_out = (*_DP_soln)(node_out); + PetscScalar value_v = -1.0 * dp_out * S_interp; + PetscInt row_v = i_ch + _n_channels * iz_ind; + LibmeshPetscCall(VecSetValues(_amc_pressure_force_rhs, 1, &row_v, &value_v, ADD_VALUES)); } - LibmeshPetscCall(VecZeroEntries(_amc_pressure_force_rhs)); - LibmeshPetscCall(KSPDestroy(&ksploc)); - LibmeshPetscCall(VecDestroy(&sol)); } } - else + // Solving pressure problem + LibmeshPetscCall(MatAssemblyBegin(_amc_pressure_force_mat, MAT_FINAL_ASSEMBLY)); + LibmeshPetscCall(MatAssemblyEnd(_amc_pressure_force_mat, MAT_FINAL_ASSEMBLY)); + if (_segregated_bool) { - LibmeshPetscCall(VecZeroEntries(_amc_pressure_force_rhs)); + KSP ksploc; + PC pc; + Vec sol; + LibmeshPetscCall(VecDuplicate(_amc_pressure_force_rhs, &sol)); + LibmeshPetscCall(KSPCreate(PETSC_COMM_SELF, &ksploc)); + LibmeshPetscCall(KSPSetOperators(ksploc, _amc_pressure_force_mat, _amc_pressure_force_mat)); + LibmeshPetscCall(KSPGetPC(ksploc, &pc)); + LibmeshPetscCall(PCSetType(pc, PCJACOBI)); + LibmeshPetscCall(KSPSetTolerances(ksploc, _rtol, _atol, _dtol, _maxit)); + LibmeshPetscCall(KSPSetFromOptions(ksploc)); + LibmeshPetscCall(KSPSolve(ksploc, _amc_pressure_force_rhs, sol)); + PetscScalar * xx; + LibmeshPetscCall(VecGetArray(sol, &xx)); + // update Pressure solution for (unsigned int iz = last_node; iz > first_node - 1; iz--) { auto iz_ind = iz - first_node; - // Calculate pressure in the inlet of the cell assuming known outlet for (unsigned int i_ch = 0; i_ch < _n_channels; i_ch++) { - auto * node_out = _subchannel_mesh.getChannelNode(i_ch, iz); auto * node_in = _subchannel_mesh.getChannelNode(i_ch, iz - 1); - - // inlet, outlet, and interpolated axial surface area - auto S_in = (*_S_flow_soln)(node_in); - auto S_out = (*_S_flow_soln)(node_out); - auto S_interp = computeInterpolatedValue(S_out, S_in, 0.5); - - // Creating matrix of coefficients - PetscInt row = i_ch + _n_channels * iz_ind; - PetscInt col = i_ch + _n_channels * iz_ind; - PetscScalar value = -1.0 * S_interp; - LibmeshPetscCall( - MatSetValues(_amc_pressure_force_mat, 1, &row, 1, &col, &value, INSERT_VALUES)); - - if (iz == last_node) - { - PetscScalar value = -1.0 * (*_P_soln)(node_out)*S_interp; - PetscInt row = i_ch + _n_channels * iz_ind; - LibmeshPetscCall(VecSetValues(_amc_pressure_force_rhs, 1, &row, &value, ADD_VALUES)); - - auto dp_out = (*_DP_soln)(node_out); - PetscScalar value_v = -1.0 * dp_out / 2.0 * S_interp; - PetscInt row_v = i_ch + _n_channels * iz_ind; - LibmeshPetscCall( - VecSetValues(_amc_pressure_force_rhs, 1, &row_v, &value_v, ADD_VALUES)); - } - else - { - PetscInt row = i_ch + _n_channels * iz_ind; - PetscInt col = i_ch + _n_channels * (iz_ind + 1); - PetscScalar value = 1.0 * S_interp; - LibmeshPetscCall( - MatSetValues(_amc_pressure_force_mat, 1, &row, 1, &col, &value, INSERT_VALUES)); - - if (_segregated_bool) - { - auto dp_in = (*_DP_soln)(node_in); - auto dp_out = (*_DP_soln)(node_out); - auto dp_interp = computeInterpolatedValue(dp_out, dp_in, 0.5); - PetscScalar value_v = -1.0 * dp_interp * S_interp; - PetscInt row_v = i_ch + _n_channels * iz_ind; - LibmeshPetscCall( - VecSetValues(_amc_pressure_force_rhs, 1, &row_v, &value_v, ADD_VALUES)); - } - } + PetscScalar value = xx[iz_ind * _n_channels + i_ch]; + _P_soln->set(node_in, value); } } - // Solving pressure problem - LibmeshPetscCall(MatAssemblyBegin(_amc_pressure_force_mat, MAT_FINAL_ASSEMBLY)); - LibmeshPetscCall(MatAssemblyEnd(_amc_pressure_force_mat, MAT_FINAL_ASSEMBLY)); - if (_verbose_subchannel) - _console << "Block: " << iblock << " - Axial momentum pressure force matrix assembled" - << std::endl; - - if (_segregated_bool) - { - KSP ksploc; - PC pc; - Vec sol; - LibmeshPetscCall(VecDuplicate(_amc_pressure_force_rhs, &sol)); - LibmeshPetscCall(KSPCreate(PETSC_COMM_SELF, &ksploc)); - LibmeshPetscCall(KSPSetOperators(ksploc, _amc_pressure_force_mat, _amc_pressure_force_mat)); - LibmeshPetscCall(KSPGetPC(ksploc, &pc)); - LibmeshPetscCall(PCSetType(pc, PCJACOBI)); - LibmeshPetscCall(KSPSetTolerances(ksploc, _rtol, _atol, _dtol, _maxit)); - LibmeshPetscCall(KSPSetFromOptions(ksploc)); - LibmeshPetscCall(KSPSolve(ksploc, _amc_pressure_force_rhs, sol)); - PetscScalar * xx; - LibmeshPetscCall(VecGetArray(sol, &xx)); - // update Pressure solution - for (unsigned int iz = last_node; iz > first_node - 1; iz--) - { - auto iz_ind = iz - first_node; - for (unsigned int i_ch = 0; i_ch < _n_channels; i_ch++) - { - auto * node_in = _subchannel_mesh.getChannelNode(i_ch, iz - 1); - PetscScalar value = xx[iz_ind * _n_channels + i_ch]; - _P_soln->set(node_in, value); - } - } - LibmeshPetscCall(VecZeroEntries(_amc_pressure_force_rhs)); - LibmeshPetscCall(KSPDestroy(&ksploc)); - LibmeshPetscCall(VecDestroy(&sol)); - } + LibmeshPetscCall(VecZeroEntries(_amc_pressure_force_rhs)); + LibmeshPetscCall(KSPDestroy(&ksploc)); + LibmeshPetscCall(VecDestroy(&sol)); } } } @@ -1579,53 +1445,36 @@ SubChannel1PhaseProblem::computeWijResidual(int iblock) // Assembling pressure force alpha = computeInterpolationCoefficients(Pe); + PetscScalar pressure_factor = Utility::pow<2>(Sij) * rho_star; + PetscInt row_pf = i_gap + _n_gaps * iz_ind; + PetscInt col_pf = i_ch + _n_channels * iz_ind; + PetscScalar value_pf = -1.0 * alpha * pressure_factor; + LibmeshPetscCall( + MatSetValues(_cmc_pressure_force_mat, 1, &row_pf, 1, &col_pf, &value_pf, ADD_VALUES)); + col_pf = j_ch + _n_channels * iz_ind; + value_pf = alpha * pressure_factor; + LibmeshPetscCall( + MatSetValues(_cmc_pressure_force_mat, 1, &row_pf, 1, &col_pf, &value_pf, ADD_VALUES)); - if (!_staggered_pressure_bool) + if (iz == last_node) { - PetscScalar pressure_factor = Utility::pow<2>(Sij) * rho_star; PetscInt row_pf = i_gap + _n_gaps * iz_ind; - PetscInt col_pf = i_ch + _n_channels * iz_ind; - PetscScalar value_pf = -1.0 * alpha * pressure_factor; + PetscScalar value_pf = (1.0 - alpha) * pressure_factor * (*_P_soln)(node_out_i); LibmeshPetscCall( - MatSetValues(_cmc_pressure_force_mat, 1, &row_pf, 1, &col_pf, &value_pf, ADD_VALUES)); - col_pf = j_ch + _n_channels * iz_ind; - value_pf = alpha * pressure_factor; + VecSetValues(_cmc_pressure_force_rhs, 1, &row_pf, &value_pf, ADD_VALUES)); + value_pf = -1.0 * (1.0 - alpha) * pressure_factor * (*_P_soln)(node_out_j); LibmeshPetscCall( - MatSetValues(_cmc_pressure_force_mat, 1, &row_pf, 1, &col_pf, &value_pf, ADD_VALUES)); - - if (iz == last_node) - { - PetscInt row_pf = i_gap + _n_gaps * iz_ind; - PetscScalar value_pf = (1.0 - alpha) * pressure_factor * (*_P_soln)(node_out_i); - LibmeshPetscCall( - VecSetValues(_cmc_pressure_force_rhs, 1, &row_pf, &value_pf, ADD_VALUES)); - value_pf = -1.0 * (1.0 - alpha) * pressure_factor * (*_P_soln)(node_out_j); - LibmeshPetscCall( - VecSetValues(_cmc_pressure_force_rhs, 1, &row_pf, &value_pf, ADD_VALUES)); - } - else - { - row_pf = i_gap + _n_gaps * iz_ind; - col_pf = i_ch + _n_channels * (iz_ind + 1); - value_pf = -1.0 * (1.0 - alpha) * pressure_factor; - LibmeshPetscCall(MatSetValues( - _cmc_pressure_force_mat, 1, &row_pf, 1, &col_pf, &value_pf, ADD_VALUES)); - col_pf = j_ch + _n_channels * (iz_ind + 1); - value_pf = (1.0 - alpha) * pressure_factor; - LibmeshPetscCall(MatSetValues( - _cmc_pressure_force_mat, 1, &row_pf, 1, &col_pf, &value_pf, ADD_VALUES)); - } + VecSetValues(_cmc_pressure_force_rhs, 1, &row_pf, &value_pf, ADD_VALUES)); } else { - PetscScalar pressure_factor = Utility::pow<2>(Sij) * rho_star; - PetscInt row_pf = i_gap + _n_gaps * iz_ind; - PetscInt col_pf = i_ch + _n_channels * iz_ind; - PetscScalar value_pf = -1.0 * pressure_factor; + row_pf = i_gap + _n_gaps * iz_ind; + col_pf = i_ch + _n_channels * (iz_ind + 1); + value_pf = -1.0 * (1.0 - alpha) * pressure_factor; LibmeshPetscCall( MatSetValues(_cmc_pressure_force_mat, 1, &row_pf, 1, &col_pf, &value_pf, ADD_VALUES)); - col_pf = j_ch + _n_channels * iz_ind; - value_pf = pressure_factor; + col_pf = j_ch + _n_channels * (iz_ind + 1); + value_pf = (1.0 - alpha) * pressure_factor; LibmeshPetscCall( MatSetValues(_cmc_pressure_force_mat, 1, &row_pf, 1, &col_pf, &value_pf, ADD_VALUES)); } diff --git a/modules/subchannel/test/tests/positions/pin_positions.i b/modules/subchannel/test/tests/positions/pin_positions.i index 664f6877ddfe..9ba0924d19df 100644 --- a/modules/subchannel/test/tests/positions/pin_positions.i +++ b/modules/subchannel/test/tests/positions/pin_positions.i @@ -145,7 +145,6 @@ duct_inside = '${fparse duct_outside - 2 * duct_thickness}' n_blocks = 10 implicit = false segregated = true - staggered_pressure = false # Tolerances P_tol = 1.0e-4 diff --git a/modules/subchannel/test/tests/problems/Lead-LBE-19pin/test_LEAD-19pin.i b/modules/subchannel/test/tests/problems/Lead-LBE-19pin/test_LEAD-19pin.i index a5b730b0c054..168f809e7e39 100644 --- a/modules/subchannel/test/tests/problems/Lead-LBE-19pin/test_LEAD-19pin.i +++ b/modules/subchannel/test/tests/problems/Lead-LBE-19pin/test_LEAD-19pin.i @@ -41,7 +41,6 @@ P_out = 1.0e5 # Pa T_tol = 1.0e-4 implicit = true segregated = false - staggered_pressure = false verbose_multiapps = true verbose_subchannel = true interpolation_scheme = upwind diff --git a/modules/subchannel/test/tests/problems/psbt/gold/psbt_explicit_staggered_out.csv b/modules/subchannel/test/tests/problems/psbt/gold/psbt_explicit_staggered_out.csv deleted file mode 100644 index c1bf27ce25ec..000000000000 --- a/modules/subchannel/test/tests/problems/psbt/gold/psbt_explicit_staggered_out.csv +++ /dev/null @@ -1,3 +0,0 @@ -time,T1,T2,T3,T4,T5,T6,report_mass_flux_inlet,total_pressure_drop -0,0,0,0,0,0,0,4722.2222222222,0 -1,387.59208729945,393.83653544323,387.50055707644,375.22683616419,368.57240814639,366.33030313071,4722.2222222222,26888.16586594 diff --git a/modules/subchannel/test/tests/problems/psbt/psbt_explicit_staggered.i b/modules/subchannel/test/tests/problems/psbt/psbt_explicit_staggered.i deleted file mode 100644 index b3e93785e619..000000000000 --- a/modules/subchannel/test/tests/problems/psbt/psbt_explicit_staggered.i +++ /dev/null @@ -1,217 +0,0 @@ -T_in = 359.15 -# [1e+6 kg/m^2-hour] turns into kg/m^2-sec -mass_flux_in = '${fparse 1e+6 * 17.00 / 3600.}' -P_out = 4.923e6 # Pa -pin_diameter = 0.00950 - -[QuadSubChannelMesh] - [sub_channel] - type = SCMQuadSubChannelMeshGenerator - nx = 6 - ny = 6 - n_cells = 10 - pitch = 0.0126 - pin_diameter = ${pin_diameter} - side_gap = 0.00095 - heated_length = 1.0 - spacer_z = '0.0' - spacer_k = '0.0' - [] - - [fuel_pins] - type = SCMQuadPinMeshGenerator - input = sub_channel - nx = 6 - ny = 6 - n_cells = 10 - pitch = 0.0126 - heated_length = 1.0 - [] -[] - -[FluidProperties] - [water] - type = Water97FluidProperties - [] -[] - -[SubChannel] - type = QuadSubChannel1PhaseProblem - fp = water - n_blocks = 1 - beta = 0.006 - CT = 2.6 - compute_density = true - compute_viscosity = true - compute_power = true - P_out = ${P_out} - verbose_subchannel = true - staggered_pressure = true - friction_closure = 'MATRA' - pin_HTC_closure = 'Dittus-Boelter' -[] - -[SCMClosures] - [MATRA] - type = SCMFrictionMATRA - [] - [Dittus-Boelter] - type = SCMHTCDittusBoelter - [] -[] - -[ICs] - [S_IC] - type = SCMQuadFlowAreaIC - variable = S - [] - - [w_perim_IC] - type = SCMQuadWettedPerimIC - variable = w_perim - [] - - [q_prime_IC] - type = SCMQuadPowerIC - variable = q_prime - power = 1.0e6 # W - filename = "power_profile.txt" #type in name of file that describes radial power profile - block = fuel_pins - [] - - [T_ic] - type = ConstantIC - variable = T - value = ${T_in} - [] - - [Dpin_ic] - type = ConstantIC - variable = Dpin - value = ${pin_diameter} - [] - - [P_ic] - type = ConstantIC - variable = P - value = 0.0 - [] - - [DP_ic] - type = ConstantIC - variable = DP - value = 0.0 - [] - - [Viscosity_ic] - type = ViscosityIC - variable = mu - p = ${P_out} - T = T - fp = water - [] - - [rho_ic] - type = RhoFromPressureTemperatureIC - variable = rho - p = ${P_out} - T = T - fp = water - [] - - [h_ic] - type = SpecificEnthalpyFromPressureTemperatureIC - variable = h - p = ${P_out} - T = T - fp = water - [] - - [mdot_ic] - type = ConstantIC - variable = mdot - value = 0.0 - [] -[] - -[AuxKernels] - [T_in_bc] - type = ConstantAux - variable = T - boundary = inlet - value = ${T_in} - execute_on = 'timestep_begin' - block = sub_channel - [] - [mdot_in_bc] - type = SCMMassFlowRateAux - variable = mdot - boundary = inlet - area = S - mass_flux = report_mass_flux_inlet - execute_on = 'timestep_begin' - block = sub_channel - [] -[] - -[Postprocessors] - [report_mass_flux_inlet] - type = Receiver - default = ${mass_flux_in} - [] - [total_pressure_drop] - type = SubChannelDelta - variable = P - execute_on = "timestep_end" - [] - [T1] - type = SubChannelPointValue - variable = T - index = 0 - execute_on = "timestep_end" - height = 1 - [] - [T2] - type = SubChannelPointValue - variable = T - index = 7 - execute_on = "timestep_end" - height = 1 - [] - [T3] - type = SubChannelPointValue - variable = T - index = 14 - execute_on = "timestep_end" - height = 1 - [] - [T4] - type = SubChannelPointValue - variable = T - index = 21 - execute_on = "timestep_end" - height = 1 - [] - [T5] - type = SubChannelPointValue - variable = T - index = 28 - execute_on = "timestep_end" - height = 1 - [] - [T6] - type = SubChannelPointValue - variable = T - index = 35 - execute_on = "timestep_end" - height = 1 - [] -[] - -[Outputs] - csv = true -[] - -[Executioner] - type = Steady -[] diff --git a/modules/subchannel/test/tests/problems/psbt/tests b/modules/subchannel/test/tests/problems/psbt/tests index 7d288772161a..349783130b01 100644 --- a/modules/subchannel/test/tests/problems/psbt/tests +++ b/modules/subchannel/test/tests/problems/psbt/tests @@ -23,17 +23,6 @@ max_threads = 1 requirement = 'The system shall be able to solve a PSBT-type case with the subchannel solver using the non-default friction/mixing model.' [] - [psbt_regression_test_explicit_staggered] - type = CSVDiff - input = psbt_explicit_staggered.i - csvdiff = psbt_explicit_staggered_out.csv - capabilities = 'method!=dbg' - valgrind = NONE - recover = false - abs_zero = 1e-6 - max_threads = 1 - requirement = 'The system shall be able to solve a PSBT-type case with the subchannel solver using an explicit algorithm and a staggered pressure formulation.' - [] [psbt_regression_test_implicit] type = CSVDiff input = psbt_implicit.i diff --git a/modules/subchannel/validation/ORNL_19_pin/test_ORNL_19.i b/modules/subchannel/validation/ORNL_19_pin/test_ORNL_19.i index 5129c1dd87c1..e78c432c2596 100644 --- a/modules/subchannel/validation/ORNL_19_pin/test_ORNL_19.i +++ b/modules/subchannel/validation/ORNL_19_pin/test_ORNL_19.i @@ -48,7 +48,6 @@ P_out = 2.0e5 # Pa T_tol = 1.0e-4 implicit = true segregated = false - staggered_pressure = false verbose_multiapps = true verbose_subchannel = true interpolation_scheme = upwind diff --git a/modules/subchannel/validation/Toshiba_37_pin/toshiba_37_pin.i b/modules/subchannel/validation/Toshiba_37_pin/toshiba_37_pin.i index 68b9bdbde40f..f9806e2ab8d9 100644 --- a/modules/subchannel/validation/Toshiba_37_pin/toshiba_37_pin.i +++ b/modules/subchannel/validation/Toshiba_37_pin/toshiba_37_pin.i @@ -37,7 +37,6 @@ P_out = 2.0e5 # Pa T_tol = 1.0e-3 implicit = true segregated = false - staggered_pressure = false verbose_multiapps = true verbose_subchannel = false # friction model diff --git a/modules/subchannel/validation/psbt/psbt_ss/psbt.i b/modules/subchannel/validation/psbt/psbt_ss/psbt.i index 9e582f20070f..9a07fd8f3210 100644 --- a/modules/subchannel/validation/psbt/psbt_ss/psbt.i +++ b/modules/subchannel/validation/psbt/psbt_ss/psbt.i @@ -88,7 +88,6 @@ P_out = 14.72e6 # Pa P_out = ${P_out} implicit = true segregated = false - staggered_pressure = false verbose_subchannel = true interpolation_scheme = exponential deformation = true # this flag allows the re-calculation of subchannel geometric parameters based on the dpin value