From 35cd17de75c0f78f5831f8c8bb1fa6117962afe7 Mon Sep 17 00:00:00 2001 From: smpark7 Date: Sat, 26 Oct 2024 00:15:36 -0700 Subject: [PATCH 1/4] Add PostprocessorVelocityFunctionTemperatureInflowBC; let rho and cp names be modifiable --- ...essorVelocityFunctionTemperatureInflowBC.h | 24 +++++++++++ src/bcs/PostprocessorTemperatureInflowBC.C | 2 + ...essorVelocityFunctionTemperatureInflowBC.C | 43 +++++++++++++++++++ .../VelocityFunctionTemperatureOutflowBC.C | 2 + .../DGFunctionTemperatureAdvection.C | 2 + .../VelocityFunctionTemperatureAdvection.C | 2 + 6 files changed, 75 insertions(+) create mode 100644 include/bcs/PostprocessorVelocityFunctionTemperatureInflowBC.h create mode 100644 src/bcs/PostprocessorVelocityFunctionTemperatureInflowBC.C diff --git a/include/bcs/PostprocessorVelocityFunctionTemperatureInflowBC.h b/include/bcs/PostprocessorVelocityFunctionTemperatureInflowBC.h new file mode 100644 index 0000000..61a56d9 --- /dev/null +++ b/include/bcs/PostprocessorVelocityFunctionTemperatureInflowBC.h @@ -0,0 +1,24 @@ +#pragma once + +#include "PostprocessorVelocityFunctionInflowBC.h" +#include "JvarMapInterface.h" +#include "DerivativeMaterialInterface.h" + +class PostprocessorVelocityFunctionTemperatureInflowBC + : public DerivativeMaterialInterface> +{ +public: + PostprocessorVelocityFunctionTemperatureInflowBC(const InputParameters & parameters); + + static InputParameters validParams(); + +protected: + virtual void initialSetup() override; + virtual Real computeQpResidual() override; + virtual Real computeQpJacobian() override; + + const MaterialProperty & _rho; + const MaterialProperty & _d_rho_d_u; + const MaterialProperty & _cp; + const MaterialProperty & _d_cp_d_u; +}; diff --git a/src/bcs/PostprocessorTemperatureInflowBC.C b/src/bcs/PostprocessorTemperatureInflowBC.C index e478639..377e1e9 100644 --- a/src/bcs/PostprocessorTemperatureInflowBC.C +++ b/src/bcs/PostprocessorTemperatureInflowBC.C @@ -6,6 +6,8 @@ InputParameters PostprocessorTemperatureInflowBC::validParams() { InputParameters params = PostprocessorInflowBC::validParams(); + params.addParam("rho", "rho", "Density material property name"); + params.addParam("cp", "cp", "Specific heat material property name"); return params; } diff --git a/src/bcs/PostprocessorVelocityFunctionTemperatureInflowBC.C b/src/bcs/PostprocessorVelocityFunctionTemperatureInflowBC.C new file mode 100644 index 0000000..e87f5e2 --- /dev/null +++ b/src/bcs/PostprocessorVelocityFunctionTemperatureInflowBC.C @@ -0,0 +1,43 @@ +#include "PostprocessorVelocityFunctionTemperatureInflowBC.h" + +registerMooseObject("SquirrelApp", PostprocessorVelocityFunctionTemperatureInflowBC); + +InputParameters +PostprocessorVelocityFunctionTemperatureInflowBC::validParams() +{ + InputParameters params = PostprocessorVelocityFunctionInflowBC::validParams(); + params.addParam("rho", "rho", "Density material property name"); + params.addParam("cp", "cp", "Specific heat material property name"); + return params; +} + +PostprocessorVelocityFunctionTemperatureInflowBC::PostprocessorVelocityFunctionTemperatureInflowBC( + const InputParameters & parameters) + : DerivativeMaterialInterface>(parameters), + _rho(getMaterialProperty("rho")), + _d_rho_d_u(getMaterialPropertyDerivative("rho", _var.name())), + _cp(getMaterialProperty("cp")), + _d_cp_d_u(getMaterialPropertyDerivative("cp", _var.name())) +{ +} + +void +PostprocessorVelocityFunctionTemperatureInflowBC::initialSetup() +{ + validateNonlinearCoupling("rho"); + validateNonlinearCoupling("cp"); +} + +Real +PostprocessorVelocityFunctionTemperatureInflowBC::computeQpResidual() +{ + return _rho[_qp] * _cp[_qp] * PostprocessorVelocityFunctionInflowBC::computeQpResidual(); +} + +Real +PostprocessorVelocityFunctionTemperatureInflowBC::computeQpJacobian() +{ + return _rho[_qp] * _cp[_qp] * PostprocessorVelocityFunctionInflowBC::computeQpJacobian() + + _d_rho_d_u[_qp] * _phi[_j][_qp] * _cp[_qp] * PostprocessorVelocityFunctionInflowBC::computeQpResidual() + + _rho[_qp] * _d_cp_d_u[_qp] * _phi[_j][_qp] * PostprocessorVelocityFunctionInflowBC::computeQpResidual(); +} diff --git a/src/bcs/VelocityFunctionTemperatureOutflowBC.C b/src/bcs/VelocityFunctionTemperatureOutflowBC.C index 8d5fdca..409f587 100644 --- a/src/bcs/VelocityFunctionTemperatureOutflowBC.C +++ b/src/bcs/VelocityFunctionTemperatureOutflowBC.C @@ -10,6 +10,8 @@ VelocityFunctionTemperatureOutflowBC::validParams() params.addRequiredParam("vel_x_func", "The x velocity function"); params.addRequiredParam("vel_y_func", "The y velocity function"); params.addRequiredParam("vel_z_func", "The z velocity function"); + params.addParam("rho", "rho", "Density material property name"); + params.addParam("cp", "cp", "Specific heat material property name"); return params; } diff --git a/src/dgkernels/DGFunctionTemperatureAdvection.C b/src/dgkernels/DGFunctionTemperatureAdvection.C index 63adbc1..b75eb09 100644 --- a/src/dgkernels/DGFunctionTemperatureAdvection.C +++ b/src/dgkernels/DGFunctionTemperatureAdvection.C @@ -7,6 +7,8 @@ DGFunctionTemperatureAdvection::validParams() { InputParameters params = DGFunctionConvection::validParams(); params.addClassDescription("DG upwinding for func temp convection"); + params.addParam("rho", "rho", "Density material property name"); + params.addParam("cp", "cp", "Specific heat material property name"); return params; } diff --git a/src/kernels/VelocityFunctionTemperatureAdvection.C b/src/kernels/VelocityFunctionTemperatureAdvection.C index b1a1d8d..39fe9d3 100644 --- a/src/kernels/VelocityFunctionTemperatureAdvection.C +++ b/src/kernels/VelocityFunctionTemperatureAdvection.C @@ -10,6 +10,8 @@ VelocityFunctionTemperatureAdvection::validParams() params.addRequiredParam("vel_x_func", "The x velocity function"); params.addRequiredParam("vel_y_func", "The y velocity function"); params.addRequiredParam("vel_z_func", "The z velocity function"); + params.addParam("rho", "rho", "Density material property name"); + params.addParam("cp", "cp", "Specific heat material property name"); return params; } From fff9b1d2d27030e7431dc069f011bb9de89475de Mon Sep 17 00:00:00 2001 From: Sun Myung Park Date: Mon, 13 Jul 2026 13:07:24 -0500 Subject: [PATCH 2/4] Add CI testing --- .github/workflows/tests.yml | 64 +++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 .github/workflows/tests.yml diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..d988ede --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,64 @@ +# Adapted from the RACCOON project's test workflow: +# https://github.com/hugary1995/raccoon/blob/devel/.github/workflows/tests.yml + +name: Tests + +on: + # Triggers the workflow on pushes to the master branch + push: + branches: [ master ] + pull_request: + branches: [ master ] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +env: + # Squirrel does not carry MOOSE as a submodule, so CI clones it next to the + # checkout. Pin this to the MOOSE commit the downstream apps use whenever + # master drifts away from squirrel. + MOOSE_REF: master + +jobs: + build: + runs-on: ubuntu-latest + + defaults: + run: + shell: bash -el {0} + + steps: + - uses: actions/checkout@v4 + with: + path: squirrel + + - name: Clone MOOSE + run: | + git clone --depth 1 --branch "${MOOSE_REF}" https://github.com/idaholab/moose.git moose + + - name: Setup environment + uses: mamba-org/setup-micromamba@v2 + with: + environment-name: moose + condarc: | + channels: + - https://conda.software.inl.gov/public + - conda-forge + channel_priority: flexible + init-shell: bash + create-args: moose-dev mpich + continue-on-error: false + + - name: Compile squirrel + working-directory: squirrel + env: + MOOSE_DIR: ${{ github.workspace }}/moose + run: | + make -j 4 + + - name: Regression tests + working-directory: squirrel + env: + MOOSE_DIR: ${{ github.workspace }}/moose + run: | + ./run_tests -j 4 From 775d6811bf1c9ee9c4a66e2cfb1c4e265261a3a6 Mon Sep 17 00:00:00 2001 From: Sun Myung Park Date: Mon, 13 Jul 2026 13:08:20 -0500 Subject: [PATCH 3/4] Add squirrel tests --- .gitignore | 3 + src/bcs/DiffusiveFluxBC.C | 4 +- .../InterTemperatureAdvection.C | 4 +- .../density_from_log/density_from_log.i | 58 +++++++ .../gold/density_from_log_out.e | Bin 0 -> 47604 bytes .../gold/larger_scale_height_out.e | Bin 0 -> 47932 bytes tests/auxkernels/density_from_log/tests | 16 ++ .../function_derivative_aux.i | 61 ++++++++ .../gold/function_derivative_aux_out.e | Bin 0 -> 47924 bytes .../gold/y_derivative_out.e | Bin 0 -> 48316 bytes .../auxkernels/function_derivative_aux/tests | 17 ++ tests/bcs/channel_gradient/channel_gradient.i | 145 ++++++++++++++++++ .../gold/adiabatic_wall_out.csv | 3 + ...iabatic_wall_out_channel_gradient_0001.csv | 6 + .../gold/channel_gradient_out.csv | 3 + ...nel_gradient_out_channel_gradient_0001.csv | 6 + tests/bcs/channel_gradient/tests | 18 +++ tests/bcs/diffusive_flux/diffusive_flux.i | 96 ++++++++++++ .../gold/diffusive_flux_bc_out.e | Bin 0 -> 55988 bytes .../diffusive_flux/gold/diffusive_flux_out.e | Bin 0 -> 55904 bytes tests/bcs/diffusive_flux/tests | 27 ++++ .../example_shape_side/example_shape_side.i | 97 ++++++++++++ .../gold/example_shape_side_out.e | Bin 0 -> 54344 bytes .../example_shape_side/gold/larger_bias_out.e | Bin 0 -> 54660 bytes tests/bcs/example_shape_side/tests | 23 +++ .../gold/penalty_out.e | Bin 0 -> 45356 bytes .../gold/postprocessor_dirichlet_out.e | Bin 0 -> 44968 bytes .../postprocessor_dirichlet.i | 69 +++++++++ tests/bcs/postprocessor_dirichlet/tests | 17 ++ tests/bcs/robin/gold/faster_flow_out.e | Bin 0 -> 43832 bytes tests/bcs/robin/gold/robin_out.e | Bin 0 -> 43500 bytes tests/bcs/robin/robin.i | 58 +++++++ tests/bcs/robin/tests | 16 ++ tests/dgkernels/dg_advection/dg_advection.i | 109 +++++++++++++ .../dg_advection/gold/dg_advection_out.e | Bin 0 -> 57408 bytes .../gold/function_temperature_out.e | Bin 0 -> 58224 bytes .../dg_advection/gold/temperature_out.e | Bin 0 -> 58136 bytes tests/dgkernels/dg_advection/tests | 33 ++++ .../dg_coupled_advection.i | 79 ++++++++++ .../gold/dg_coupled_advection_out.e | Bin 0 -> 48852 bytes .../gold/faster_flow_out.e | Bin 0 -> 49168 bytes tests/dgkernels/dg_coupled_advection/tests | 16 ++ .../dg_diffusion_pp_dirichlet.i | 90 +++++++++++ .../gold/dg_diffusion_pp_dirichlet_out.e | Bin 0 -> 48692 bytes .../gold/hotter_inlet_out.e | Bin 0 -> 49004 bytes .../dgkernels/dg_diffusion_pp_dirichlet/tests | 16 ++ .../gold/heat_removal_out.e | Bin 0 -> 57948 bytes .../gold/inter_temperature_advection_out.e | Bin 0 -> 57640 bytes .../inter_temperature_advection.i | 112 ++++++++++++++ .../inter_temperature_advection/tests | 16 ++ .../conservative_advection.i | 107 +++++++++++++ .../gold/conservative_advection_out.e | Bin 0 -> 60208 bytes .../conservative_advection/gold/ctrl_out.e | Bin 0 -> 60592 bytes .../gold/ctrl_temperature_out.e | Bin 0 -> 61008 bytes .../gold/pp_inlet_out.e | Bin 0 -> 60596 bytes .../gold/pp_temperature_inlet_out.e | Bin 0 -> 61176 bytes .../gold/temperature_out.e | Bin 0 -> 60844 bytes tests/kernels/conservative_advection/tests | 90 +++++++++++ .../gold/heated_slab_out.csv | 4 + .../heated_slab.i | 73 +++++++++ .../mat_ins_temperature_time_derivative/tests | 17 ++ .../gold/nonconservative_advection_out.e | Bin 0 -> 41332 bytes .../gold/reverse_out.e | Bin 0 -> 41724 bytes .../nonconservative_advection.i | 52 +++++++ tests/kernels/nonconservative_advection/tests | 17 ++ .../gold/negative_charge_out.e | Bin 0 -> 47728 bytes .../gold/potential_advection_out.e | Bin 0 -> 47408 bytes .../potential_advection/potential_advection.i | 70 +++++++++ tests/kernels/potential_advection/tests | 22 +++ .../gold/simple_diffusion_out.e | Bin 19804 -> 0 bytes .../simple_diffusion/simple_diffusion.i | 44 ------ tests/kernels/simple_diffusion/tests | 7 - .../gold/temperature_out.e | Bin 0 -> 56468 bytes .../gold/velocity_function_advection_out.e | Bin 0 -> 55268 bytes .../kernels/velocity_function_advection/tests | 31 ++++ .../velocity_function_advection.i | 103 +++++++++++++ 76 files changed, 1800 insertions(+), 55 deletions(-) create mode 100644 tests/auxkernels/density_from_log/density_from_log.i create mode 100644 tests/auxkernels/density_from_log/gold/density_from_log_out.e create mode 100644 tests/auxkernels/density_from_log/gold/larger_scale_height_out.e create mode 100644 tests/auxkernels/density_from_log/tests create mode 100644 tests/auxkernels/function_derivative_aux/function_derivative_aux.i create mode 100644 tests/auxkernels/function_derivative_aux/gold/function_derivative_aux_out.e create mode 100644 tests/auxkernels/function_derivative_aux/gold/y_derivative_out.e create mode 100644 tests/auxkernels/function_derivative_aux/tests create mode 100644 tests/bcs/channel_gradient/channel_gradient.i create mode 100644 tests/bcs/channel_gradient/gold/adiabatic_wall_out.csv create mode 100644 tests/bcs/channel_gradient/gold/adiabatic_wall_out_channel_gradient_0001.csv create mode 100644 tests/bcs/channel_gradient/gold/channel_gradient_out.csv create mode 100644 tests/bcs/channel_gradient/gold/channel_gradient_out_channel_gradient_0001.csv create mode 100644 tests/bcs/channel_gradient/tests create mode 100644 tests/bcs/diffusive_flux/diffusive_flux.i create mode 100644 tests/bcs/diffusive_flux/gold/diffusive_flux_bc_out.e create mode 100644 tests/bcs/diffusive_flux/gold/diffusive_flux_out.e create mode 100644 tests/bcs/diffusive_flux/tests create mode 100644 tests/bcs/example_shape_side/example_shape_side.i create mode 100644 tests/bcs/example_shape_side/gold/example_shape_side_out.e create mode 100644 tests/bcs/example_shape_side/gold/larger_bias_out.e create mode 100644 tests/bcs/example_shape_side/tests create mode 100644 tests/bcs/postprocessor_dirichlet/gold/penalty_out.e create mode 100644 tests/bcs/postprocessor_dirichlet/gold/postprocessor_dirichlet_out.e create mode 100644 tests/bcs/postprocessor_dirichlet/postprocessor_dirichlet.i create mode 100644 tests/bcs/postprocessor_dirichlet/tests create mode 100644 tests/bcs/robin/gold/faster_flow_out.e create mode 100644 tests/bcs/robin/gold/robin_out.e create mode 100644 tests/bcs/robin/robin.i create mode 100644 tests/bcs/robin/tests create mode 100644 tests/dgkernels/dg_advection/dg_advection.i create mode 100644 tests/dgkernels/dg_advection/gold/dg_advection_out.e create mode 100644 tests/dgkernels/dg_advection/gold/function_temperature_out.e create mode 100644 tests/dgkernels/dg_advection/gold/temperature_out.e create mode 100644 tests/dgkernels/dg_advection/tests create mode 100644 tests/dgkernels/dg_coupled_advection/dg_coupled_advection.i create mode 100644 tests/dgkernels/dg_coupled_advection/gold/dg_coupled_advection_out.e create mode 100644 tests/dgkernels/dg_coupled_advection/gold/faster_flow_out.e create mode 100644 tests/dgkernels/dg_coupled_advection/tests create mode 100644 tests/dgkernels/dg_diffusion_pp_dirichlet/dg_diffusion_pp_dirichlet.i create mode 100644 tests/dgkernels/dg_diffusion_pp_dirichlet/gold/dg_diffusion_pp_dirichlet_out.e create mode 100644 tests/dgkernels/dg_diffusion_pp_dirichlet/gold/hotter_inlet_out.e create mode 100644 tests/dgkernels/dg_diffusion_pp_dirichlet/tests create mode 100644 tests/interfacekernels/inter_temperature_advection/gold/heat_removal_out.e create mode 100644 tests/interfacekernels/inter_temperature_advection/gold/inter_temperature_advection_out.e create mode 100644 tests/interfacekernels/inter_temperature_advection/inter_temperature_advection.i create mode 100644 tests/interfacekernels/inter_temperature_advection/tests create mode 100644 tests/kernels/conservative_advection/conservative_advection.i create mode 100644 tests/kernels/conservative_advection/gold/conservative_advection_out.e create mode 100644 tests/kernels/conservative_advection/gold/ctrl_out.e create mode 100644 tests/kernels/conservative_advection/gold/ctrl_temperature_out.e create mode 100644 tests/kernels/conservative_advection/gold/pp_inlet_out.e create mode 100644 tests/kernels/conservative_advection/gold/pp_temperature_inlet_out.e create mode 100644 tests/kernels/conservative_advection/gold/temperature_out.e create mode 100644 tests/kernels/conservative_advection/tests create mode 100644 tests/kernels/mat_ins_temperature_time_derivative/gold/heated_slab_out.csv create mode 100644 tests/kernels/mat_ins_temperature_time_derivative/heated_slab.i create mode 100644 tests/kernels/mat_ins_temperature_time_derivative/tests create mode 100644 tests/kernels/nonconservative_advection/gold/nonconservative_advection_out.e create mode 100644 tests/kernels/nonconservative_advection/gold/reverse_out.e create mode 100644 tests/kernels/nonconservative_advection/nonconservative_advection.i create mode 100644 tests/kernels/nonconservative_advection/tests create mode 100644 tests/kernels/potential_advection/gold/negative_charge_out.e create mode 100644 tests/kernels/potential_advection/gold/potential_advection_out.e create mode 100644 tests/kernels/potential_advection/potential_advection.i create mode 100644 tests/kernels/potential_advection/tests delete mode 100644 tests/kernels/simple_diffusion/gold/simple_diffusion_out.e delete mode 100644 tests/kernels/simple_diffusion/simple_diffusion.i delete mode 100644 tests/kernels/simple_diffusion/tests create mode 100644 tests/kernels/velocity_function_advection/gold/temperature_out.e create mode 100644 tests/kernels/velocity_function_advection/gold/velocity_function_advection_out.e create mode 100644 tests/kernels/velocity_function_advection/tests create mode 100644 tests/kernels/velocity_function_advection/velocity_function_advection.i diff --git a/.gitignore b/.gitignore index 9082198..1c4bc34 100644 --- a/.gitignore +++ b/.gitignore @@ -152,3 +152,6 @@ squirrel.yaml # VSCode dotfolder .vscode + +# JIT files +**/.jitcache/* diff --git a/src/bcs/DiffusiveFluxBC.C b/src/bcs/DiffusiveFluxBC.C index c6426bc..fa93a9d 100644 --- a/src/bcs/DiffusiveFluxBC.C +++ b/src/bcs/DiffusiveFluxBC.C @@ -27,12 +27,12 @@ DiffusiveFluxBC::initialSetup() Real DiffusiveFluxBC::computeQpResidual() { - return _normals[_qp] * -_D[_qp] * _grad_u[_qp]; + return -_test[_i][_qp] * _normals[_qp] * _D[_qp] * _grad_u[_qp]; } Real DiffusiveFluxBC::computeQpJacobian() { - return -_normals[_qp] * + return -_test[_i][_qp] * _normals[_qp] * (_d_D_d_u[_qp] * _phi[_j][_qp] * _grad_u[_qp] + _D[_qp] * _grad_phi[_j][_qp]); } diff --git a/src/interface_kernels/InterTemperatureAdvection.C b/src/interface_kernels/InterTemperatureAdvection.C index 24a0945..75fd53f 100644 --- a/src/interface_kernels/InterTemperatureAdvection.C +++ b/src/interface_kernels/InterTemperatureAdvection.C @@ -42,12 +42,12 @@ InterTemperatureAdvection::computeQpResidual(Moose::DGResidualType type) if (vdotn >= 0) r += vdotn * _u[_qp] * _test[_i][_qp]; else - r += vdotn * _neighbor_value[_qp] * _test[_i][_qp] - _heat_source; + r += (vdotn * _neighbor_value[_qp] - _heat_source) * _test[_i][_qp]; break; case Moose::Neighbor: if (vdotn >= 0) - r -= vdotn * _u[_qp] * _test_neighbor[_i][_qp] - _heat_source; + r -= (vdotn * _u[_qp] - _heat_source) * _test_neighbor[_i][_qp]; else r -= vdotn * _neighbor_value[_qp] * _test_neighbor[_i][_qp]; break; diff --git a/tests/auxkernels/density_from_log/density_from_log.i b/tests/auxkernels/density_from_log/density_from_log.i new file mode 100644 index 0000000..5282248 --- /dev/null +++ b/tests/auxkernels/density_from_log/density_from_log.i @@ -0,0 +1,58 @@ +# DensityFromLog exponentiates a log-density field. Here the log-density falls +# linearly with x, so the recovered density is rho = exp(-x/H). + +H = 0.5 + +[Mesh] + [column] + type = GeneratedMeshGenerator + dim = 1 + nx = 4 + xmax = 1 + [] +[] + +[Problem] + solve = false + kernel_coverage_check = false +[] + +[Variables] + [dummy] + [] +[] + +[AuxVariables] + [log_rho] + [] + [rho] + [] +[] + +[Functions] + [log_rho_func] + type = ParsedFunction + expression = '-x / ${H}' + [] +[] + +[AuxKernels] + [log_rho] + type = FunctionAux + variable = log_rho + function = log_rho_func + [] + [rho] + type = DensityFromLog + variable = rho + density_log = log_rho + [] +[] + +[Executioner] + type = Steady +[] + +[Outputs] + exodus = true +[] diff --git a/tests/auxkernels/density_from_log/gold/density_from_log_out.e b/tests/auxkernels/density_from_log/gold/density_from_log_out.e new file mode 100644 index 0000000000000000000000000000000000000000..8634549e8aff15cd1a79fcabe23970d4bdeb47cf GIT binary patch literal 47604 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 O=ig`l_`lKLT>5|YQADT! literal 0 HcmV?d00001 diff --git a/tests/auxkernels/density_from_log/tests b/tests/auxkernels/density_from_log/tests new file mode 100644 index 0000000..d9786cf --- /dev/null +++ b/tests/auxkernels/density_from_log/tests @@ -0,0 +1,16 @@ +[Tests] + [density_from_log] + type = Exodiff + input = 'density_from_log.i' + exodiff = 'density_from_log_out.e' + requirement = 'The system shall recover a density field by exponentiating a log-density variable.' + [] + [larger_scale_height] + type = Exodiff + input = 'density_from_log.i' + cli_args = 'H=2 + Outputs/file_base=larger_scale_height_out' + exodiff = 'larger_scale_height_out.e' + requirement = 'The system shall flatten the recovered density profile as the log-density scale height increases.' + [] +[] diff --git a/tests/auxkernels/function_derivative_aux/function_derivative_aux.i b/tests/auxkernels/function_derivative_aux/function_derivative_aux.i new file mode 100644 index 0000000..3bed7e6 --- /dev/null +++ b/tests/auxkernels/function_derivative_aux/function_derivative_aux.i @@ -0,0 +1,61 @@ +# FunctionDerivativeAux samples a component of a function gradient. For the +# field u(x) = x^2 the x derivative is 2x, evaluated both at nodes and at +# element quadrature points. + +[Mesh] + [rod] + type = GeneratedMeshGenerator + dim = 1 + nx = 4 + xmax = 1 + [] +[] + +[Problem] + solve = false + kernel_coverage_check = false +[] + +[Variables] + [dummy] + [] +[] + +[Functions] + [quadratic] + type = ParsedFunction + expression = 'x * x' + [] +[] + +[AuxVariables] + [dudx_nodal] + [] + [dudx_elemental] + order = CONSTANT + family = MONOMIAL + [] +[] + +[AuxKernels] + [nodal] + type = FunctionDerivativeAux + variable = dudx_nodal + function = quadratic + component = 1 + [] + [elemental] + type = FunctionDerivativeAux + variable = dudx_elemental + function = quadratic + component = 1 + [] +[] + +[Executioner] + type = Steady +[] + +[Outputs] + exodus = true +[] diff --git a/tests/auxkernels/function_derivative_aux/gold/function_derivative_aux_out.e b/tests/auxkernels/function_derivative_aux/gold/function_derivative_aux_out.e new file mode 100644 index 0000000000000000000000000000000000000000..9557c1e2ab55363c9276debe9c83358f449ee76b GIT binary patch literal 47924 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 L|3mHK2R!{h8x(s^ literal 0 HcmV?d00001 diff --git a/tests/auxkernels/function_derivative_aux/tests b/tests/auxkernels/function_derivative_aux/tests new file mode 100644 index 0000000..2514883 --- /dev/null +++ b/tests/auxkernels/function_derivative_aux/tests @@ -0,0 +1,17 @@ +[Tests] + [x_derivative] + type = Exodiff + input = 'function_derivative_aux.i' + exodiff = 'function_derivative_aux_out.e' + requirement = 'The system shall evaluate a component of a function gradient at nodes and at element quadrature points.' + [] + [y_derivative] + type = Exodiff + input = 'function_derivative_aux.i' + cli_args = 'AuxKernels/nodal/component=2 + AuxKernels/elemental/component=2 + Outputs/file_base=y_derivative_out' + exodiff = 'y_derivative_out.e' + requirement = 'The system shall return a zero derivative for the direction in which the sampled function is constant.' + [] +[] diff --git a/tests/bcs/channel_gradient/channel_gradient.i b/tests/bcs/channel_gradient/channel_gradient.i new file mode 100644 index 0000000..7c9a327 --- /dev/null +++ b/tests/bcs/channel_gradient/channel_gradient.i @@ -0,0 +1,145 @@ +# A heated channel T alongside a coolant channel at a prescribed temperature. +# ChannelGradient forms the axial profile of the temperature difference, and +# ChannelGradientBC applies wall cooling h*(T - T_coolant) from that profile. + +Nu = 4 +k = 1 +half_channel_width = 0.5 +h = ${fparse Nu * k / half_channel_width} + +[Mesh] + [channel] + type = GeneratedMeshGenerator + dim = 2 + nx = 2 + ny = 10 + xmax = 1 + ymax = 1 + [] +[] + +[Variables] + [T] + initial_condition = 2 + [] +[] + +[AuxVariables] + [T_coolant] + [] +[] + +[AuxKernels] + [T_coolant] + type = FunctionAux + variable = T_coolant + function = coolant_temperature + [] +[] + +[Functions] + [coolant_temperature] + type = ParsedFunction + expression = '1 + y' + [] +[] + +[Kernels] + [advection] + type = ConservativeAdvection + variable = T + velocity_variable = '0 1 0' + [] + [conduction] + type = Diffusion + variable = T + [] + [heat] + type = BodyForce + variable = T + value = 1 + [] +[] + +[BCs] + [inlet] + type = DirichletBC + variable = T + boundary = bottom + value = 2 + [] + [outlet] + type = OutflowBC + variable = T + boundary = top + velocity = '0 1 0' + [] + [coolant_wall] + type = ChannelGradientBC + variable = T + boundary = right + channel_gradient_pps = channel_gradient + axis = y + h_name = h + [] +[] + +[Materials] + [heat_transfer_coefficient] + type = GenericConstantMaterial + prop_names = 'h' + prop_values = '${h}' + [] +[] + +[VectorPostprocessors] + [fuel_line] + type = LineValueSampler + variable = T + start_point = '0 0 0' + end_point = '0 1 0' + num_points = 5 + sort_by = y + execute_on = 'initial timestep_begin linear nonlinear timestep_end' + outputs = none + [] + [coolant_line] + type = LineValueSampler + variable = T_coolant + start_point = '1 0 0' + end_point = '1 1 0' + num_points = 5 + sort_by = y + execute_on = 'initial timestep_begin linear nonlinear timestep_end' + outputs = none + [] + [channel_gradient] + type = ChannelGradient + lv1 = fuel_line + lv2 = coolant_line + var1 = T + var2 = T_coolant + axis = y + execute_on = 'initial timestep_begin linear nonlinear timestep_end' + outputs = csv + [] +[] + +[Postprocessors] + [T_outlet] + type = SideAverageValue + variable = T + boundary = top + [] +[] + +[Executioner] + type = Steady + solve_type = NEWTON + petsc_options_iname = '-pc_type -pc_factor_shift_type' + petsc_options_value = 'lu NONZERO' +[] + +[Outputs] + csv = true +[] diff --git a/tests/bcs/channel_gradient/gold/adiabatic_wall_out.csv b/tests/bcs/channel_gradient/gold/adiabatic_wall_out.csv new file mode 100644 index 0000000..f581644 --- /dev/null +++ b/tests/bcs/channel_gradient/gold/adiabatic_wall_out.csv @@ -0,0 +1,3 @@ +time,T_outlet +0,0 +1,2.3675725423829 diff --git a/tests/bcs/channel_gradient/gold/adiabatic_wall_out_channel_gradient_0001.csv b/tests/bcs/channel_gradient/gold/adiabatic_wall_out_channel_gradient_0001.csv new file mode 100644 index 0000000..a5ce698 --- /dev/null +++ b/tests/bcs/channel_gradient/gold/adiabatic_wall_out_channel_gradient_0001.csv @@ -0,0 +1,6 @@ +gradient,y +1,0 +0.89491037241394,0.25 +0.76129493073712,0.5 +0.58795910970821,0.75 +0.36757254238287,1 diff --git a/tests/bcs/channel_gradient/gold/channel_gradient_out.csv b/tests/bcs/channel_gradient/gold/channel_gradient_out.csv new file mode 100644 index 0000000..b5c97d8 --- /dev/null +++ b/tests/bcs/channel_gradient/gold/channel_gradient_out.csv @@ -0,0 +1,3 @@ +time,T_outlet +0,0 +1,1.5874816473487 diff --git a/tests/bcs/channel_gradient/gold/channel_gradient_out_channel_gradient_0001.csv b/tests/bcs/channel_gradient/gold/channel_gradient_out_channel_gradient_0001.csv new file mode 100644 index 0000000..a72b216 --- /dev/null +++ b/tests/bcs/channel_gradient/gold/channel_gradient_out_channel_gradient_0001.csv @@ -0,0 +1,6 @@ +gradient,y +1,0 +0.72851598013405,0.25 +0.4382658663882,0.5 +0.12745947296864,0.75 +-0.1485619113861,1 diff --git a/tests/bcs/channel_gradient/tests b/tests/bcs/channel_gradient/tests new file mode 100644 index 0000000..97171c8 --- /dev/null +++ b/tests/bcs/channel_gradient/tests @@ -0,0 +1,18 @@ +[Tests] + [channel_gradient] + type = CSVDiff + input = 'channel_gradient.i' + csvdiff = 'channel_gradient_out.csv + channel_gradient_out_channel_gradient_0001.csv' + requirement = 'The system shall compute the axial profile of the difference between two line samplers and apply it as a wall heat transfer boundary condition.' + [] + [adiabatic_wall] + type = CSVDiff + input = 'channel_gradient.i' + cli_args = 'Nu=0 + Outputs/file_base=adiabatic_wall_out' + csvdiff = 'adiabatic_wall_out.csv + adiabatic_wall_out_channel_gradient_0001.csv' + requirement = 'The system shall recover an insulated wall when the heat transfer coefficient of the channel gradient boundary condition is zero.' + [] +[] diff --git a/tests/bcs/diffusive_flux/diffusive_flux.i b/tests/bcs/diffusive_flux/diffusive_flux.i new file mode 100644 index 0000000..29c3d44 --- /dev/null +++ b/tests/bcs/diffusive_flux/diffusive_flux.i @@ -0,0 +1,96 @@ +# Heated flow down a channel: -k T'' + v T' = q, T(0) = 1, with the enthalpy +# leaving through an OutflowBC. The conductive part of the outlet flux is +# supplied by one of two boundary conditions selected by the tests. + +k = 0.1 +v = 1 +q = 1 + +[Mesh] + [channel] + type = GeneratedMeshGenerator + dim = 1 + nx = 10 + xmax = 1 + [] +[] + +[Variables] + [T] + initial_condition = 1 + [] +[] + +[Kernels] + [conduction] + type = MatDiffusion + variable = T + diffusivity = k + [] + [advection] + type = ConservativeAdvection + variable = T + velocity_variable = '${v} 0 0' + [] + [heating] + type = BodyForce + variable = T + value = ${q} + [] +[] + +[BCs] + [inlet] + type = DirichletBC + variable = T + boundary = left + value = 1 + [] + [outlet_advection] + type = OutflowBC + variable = T + boundary = right + velocity = '${v} 0 0' + [] + [outlet_conduction] + type = MatINSTemperatureNoBCBC + variable = T + boundary = right + k = k + [] + [outlet_diffusive_flux] + type = DiffusiveFluxBC + variable = T + boundary = right + D_name = k + enable = false + [] +[] + +[Materials] + [conductivity] + type = DerivativeParsedMaterial + property_name = k + coupled_variables = 'T' + expression = '${k}' + derivative_order = 1 + [] +[] + +[Preconditioning] + [smp] + type = SMP + full = true + [] +[] + +[Executioner] + type = Steady + solve_type = NEWTON + petsc_options_iname = '-pc_type -pc_factor_shift_type' + petsc_options_value = 'lu NONZERO' +[] + +[Outputs] + exodus = true +[] diff --git a/tests/bcs/diffusive_flux/gold/diffusive_flux_bc_out.e b/tests/bcs/diffusive_flux/gold/diffusive_flux_bc_out.e new file mode 100644 index 0000000000000000000000000000000000000000..de88fea2debf3dae74507eb2a78fa269f683b606 GIT binary patch literal 55988 zcmeHQ&5zthc5i!kZAq5BtK?$jM8F5zSbJvlVaYPkn8?z|n5;CTSQG7s5)kZWbvGq8 zN%Lbqbjp8_^DgoygX-?{txU@)N11$-{ybIxah9XN9~7`%qd!THpiGdoFHL|5W? zGsxz)>&@xvTlk!(>mYPlB7T1hU+3r^^BE-~>hp@k!ZLxt5C@g%yRJ8xWQljk?1`Tp+oQ1^X6Xh` zL45xmd@k@hb2JO{2Z;{)$m0#15ZySw{x$xcXQT4vxTdsJKJp-X=!1hlb`I&IIE*Au zDJ_*VJ@;)?fO0oY2O%!s42%d6J>;Gq~ z1bjA0&lbh~QX6~I*{fUtYyQ95{O`9ltffZ> z(pXrgmFeX(@;Ujed|qNm9Ma_ptBxme_MpTB8%|{{H^M9qYZ-0Q;u!Zj5mWj7CqbT?`E3Ic!N`@YxD9id;StR;=0qm-35n6X+&-%U0w=Qp4mv4M_?eb?= zKjFo98vf2P8)vCA@)^g36>lDK;40wNtU1V zw`Oj5@(nND_ieN;CvdHMFfF4wQ-R)!r`a4;$*fQ<>+{>mCTzDpOKljE+-ywZVUq<^ zm4*|TAab)&$FisZ)`~g@P2=3!*9p?H_OlcjO*XlGd*mc+SjEk)&z;boN21#^Hh#)& z^L^B6P-s~{bbOz;V=y^oF)Ts3kl4W_!HISC`qq|}PnC4Zk!2|~mhzg;WZ{mBOmqW8 zzgIkwSU+GyA7+N0$q3yDXllkd~-2iF2K|a6mJ+$t4u{WNfP(HtXI^KW)oKX_`S;}Bs$7B)a zP{%1|UGf4j$?_=70@r~sZ90aQo{@_%T+f->i326V3l=a<%Fy+a$alt!diMo3n`Bw^ zzYDa98$(SYK~J&cG7RCA6fx^hPKXqNk}K9$xTKs4~1)qS`PGN!Z7}BJ4~38B@C`DqWQTX6ob?9FahLJ ztAwbYnJ@)&j2<8DRiVVy(9*N>&{HjqP6C1>o|`$oTJ-Jb)az|*_SECGzh;GBc)y&F zdmNWCk73U$1XDqs`Fdn;%BqXp64NA&mfE`hGci>P0r=rcQ`!@;T%VMY1!r z-Ei(e`|j35Q#tkC(GwsXDOntaK1~a77ehG|>PA;tsfa?EH#%Q9oSp!n}Q|F3SacQfTfxZS(bGD9F}@H z5TLG~!%{B?0(_Xl7e_3s?Z85m;dl&BDjTLvEZDYTB8CA`tors~QskbyKC5U=vOd%X++bP`ov_q8^NoW!df+4k|Nciul)X}*{o#u!Hn9%fhrH#lrYIqLB zbDMiKc15-UOJnX86R4aH+EvTYav!Cgd_i$78}R&!ZS#}3{?tA z-gs3vBmJgV0YrR`UI7~_BWH?MJ@lq1Gjbvm-V=$9g0xAdNol6nRxHbJZN{9{`qjqg zqQ6#hYPGq%g`;b&84!g{LZ(0zW%!8>U@2G&6y;=S<*tGqAwgjYXh+WYsWYwgRcI*) z05k3gM{WrO=)~kZ1b68vtM(`+ofNf>;|anMWRZ(mJtepNbZA|>a`W2F>o>04>{O7j z5l<#AkI7Jn64yiPDC(SFBm^LQGd)|Ff>oiI+S~cz!Tz4ox|W{8MV>Ds5Mj#7oEB&LWk^n9#p8=7`qc(YNrHqHsB@cFlEPmy zUm3^I_1m%vxKL?`%eulrDF0$0;6P@g1b81kVpCf3qo3uxo!AfW@1yPr2YaO`^#L*5 z8HII`P$KFAo&h`d4_F*9|0P}o$QK&)vce#5;l$3Rrg8nY{Nfh?-iFRY>zZlN;VrrR zqE&=ZmV2M07d(Nm`6_eZ@>=y@H7Uap++bUs$xHy(D;L%)7qs<5*hQMxV^SlcPHOEg z_)WMAX3>#{c~L}hZcys5<`EOIt>SOt2Vx}Y4!tf>B*0g6<$~=b#jpZq2*>p(Hjk#r zCZ@=x5VR(mVVEN42UBRy0AN{v`RiU0a4anFtu z3pIV!8(jN>wv@-US>4rv3hK;jU-z9f_qr5e=$Dr=Wx0RtE3WqK^pfJxY?hi8j&v-$cMRDGUYrdiBTh zJ`}%lRb+-(p%?_Lu7_~I{|Bnb=b?LYmzqt<P5Kg?PxkkAnyX0DT|r?M`E8C`CWA+pjbRVR0-t&$Eqa?tmX+F!jngVF zP-ePKu|g#xAHO;F2) z0x=gTMU#^iQHLQU7XgTUI>e$TiBb91uQm;CmMY?q??gx24ytmw{Tz1oz@ybEvaD1v zI@ixK$wQv)I+VE92ZU{oHwtY3f#$rR-ssmu6|ljyWCqCh@#vF63D_Tn*+>KuUo1t# zEEj+aG#UU>EF089ESVi)geH4CS&6#Z8e~<6N!O2Njva@o6j%~U)q^bydL!E$rmdjqR=;lPP z#{=Hyyv(cM2?op)=NWmO@=1dl7lVzw8Zh~_eO_=ZW*iyH#d)?06TYqq` z>lRB`M_3*`+R>Dk^Z^9#`xVsajX zmHZ-XZHts;gqTQdb$21UDG&W>lLIR9Kw|N4W58z>nDW91ury=X2>nvs08w9^LzX2V zY3vjo13{(=5_MY&J?MH$@V^2nKQYNNM)UKQF3LpOVCM1pMDQj$p&j$Jg;N$wxoA>` zQzuIjnEOUfideH0FGwj!6D|iJEothY2-gU(tRxC)`6;-p*)JowR9mwX6ly8319~QC zYj&o9!e~lQHykEq$oCsPLbS{#6QaH$2)3me2F$R?g$)E6aXBf*^Szi^Kw$w$;-*HX zNlQ6~R$PNAFHNM)@w{PIV+m=(<&(ZCJn5UlXMI!ntX~S(({Nps$`_jEIcTtJF27I? zc6r&F%Uw!od78)jBA#L|<2-uRDI+~n=d^s20oeNtcm#8O%H1R3DuNLDPIg?zofyN1 zgwGgu?w)B+Spv+0B#WXjrtL<#%aNRA=!}%}3UdKb#1N>kDabK(_WB*Y0!VROk#E8& z4t?Eb9QvwNxIoHJ^s`Ks_Ry~@T?MWYAXyybK&L<|DAXDR3{bI?!#aq1tsa|4=A?eW$=Sl2`kPKDRg&l_h9$dJ?mii{?5aLod@>L-ksK%p%{xEhi=wZf<&S2 zz^5f#rX&$ISh)?EJ;6R?_GnDI3%ANJcoEEdX38{xi+osZ9+EtK>oaBMxvjOD1M14d zCrJx`1)2I3LLY|J9+Aem;Nt-mxtRcg;V5#BKH$>vya{0L5#&vHR8NY1o??UPqGIZc zFSu_`D8x`S6NOg$ub<@-&~D<-%78r3tU~1~S%&k@;X;+vZ_7%S3DBOy5awfrMc#G* zs1d)LG>1AMMfOw>5y87v5H$TD`{mj;1TH4+9o~ctvdlaB98iV|Evlh`JQSJ(tY0&P zzjcBsR0q{UVo+^3g^Pi~i(KnvT9#o6Sj)8@9Op8pkn`FPYx@?Vf}3PHoYML&rFE#M z`haApQW0wB`Wh@0n~b}8&EO^%#&uhw0fiFK3m~ICtOY!=6>NQ`Bqsr4l2atzT4u$i zewI@NDlobxL{`&rARnzl&Y~=aoo!bx3^* z?QryjZzx5f*%NH@m6B@*b`Oy*mxaF9B%l}WSyrnbi=cIA?Qo5B;mMX8P}*l~{FLwA zR?jWJ*6&7@mA6gmwgI3R>xG!vPaK57s`bqJOo6`*DM((Bg-yDbvxCl2W z!yM2Huo2*5zE=cX9FtO(`CzoA?bdJ8XjGITuY%2hk8a)Dy;Fa(<+=`7DL*Oz^DI}E zuq6el=3IuaI2o4W5{q-l954@LTFPaQ5|df#icQYa#d@6<+d?k!R#85#(;IfDslDu6w-x{uu*G^P}HX|BCWl?L_^X? zOt~tXX{T>kMZ$zH+$u3DXZqEqT6m;r7hOIf>t|VbtTx6ZHUs2?6KW!Tx&G!VNaL8o zD9Z`^DqGlPlrk$0eWqY<6aN~1o7+*F1523R^%-}9EBQEk}A zm#=k_G?b_oTd+!<0MwnzBo}r}QDf)sIrO-N&RIXpLbqNf#I*QgSx2-gj2C2^xo_jf z%^TNmvhQE*vSlU!sXwu2?&Ooj0>m9H^1zfc5G`T9ch?T$i5xM)5TxvS&dXG{3=2O8 z=))u>78s)sC`|;5gGW9Hr;2T6b7&kq5~kjyI&B}H+Vik=N*ET-y+^xW?(f~-+3T{j ziAGW*K7Z6SnZhf!t}%@UK5=-|JQKjhm)1NS20jc6W#RklGRz9_c@TJyWOF%xJG7{s zcNT|(60k+a3IW@FbjEj;^*t;V<-2WT3A`F3j+f#4TN|HRS6V$KYQ&d-Ev-dgbI8Xj zZI%N4mXZS|@ONVMahXxI;WK&&tX>b=2QWJH`;^uxLJ6qb>q$V>xj|s@|N3Q^jA@4= zZvr2(CI!a;kX+<>C8Q127o5-y0Qm-{Euz7MDT-iKimo_?G@M{6h#iITQ;Wos1?Rfb z@&RELFeet4+>MQm0ZD_dt*X|@nlCYh1YrUX5fU&3S;~oi)8l}&Dq2BNPW73>0UNyV za?qg_`S5OO&R@gbJj=9ou-9N@G2!y7w}EN@%2F}uuguXC=c{wrovY&+P≷24asd zZWw`~pf{i5hB|L{i+hYG^QbqHwg!xY3bv@C9!le_!otsFW3!-q6`R%R_CV)>9^v4+S5ct9|L{uUYzq0Z(cX@#l zzLDjnChfBkbh{$~3>Cv?oV|BKV{ g`u2bGbbq@2KRn%y?ceZpf4lv^Jl&Ju739ADfBMmHmH+?% literal 0 HcmV?d00001 diff --git a/tests/bcs/diffusive_flux/gold/diffusive_flux_out.e b/tests/bcs/diffusive_flux/gold/diffusive_flux_out.e new file mode 100644 index 0000000000000000000000000000000000000000..582e5bc69a228ce51264f7e3d9a22302f2941e41 GIT binary patch literal 55904 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 literal 0 HcmV?d00001 diff --git a/tests/bcs/diffusive_flux/tests b/tests/bcs/diffusive_flux/tests new file mode 100644 index 0000000..e4b9e94 --- /dev/null +++ b/tests/bcs/diffusive_flux/tests @@ -0,0 +1,27 @@ +[Tests] + [mat_ins_temperature_no_bc] + type = Exodiff + input = 'diffusive_flux.i' + exodiff = 'diffusive_flux_out.e' + requirement = 'The system shall reintroduce the conductive surface term at an outflow boundary so that heat conducts out consistently with the interior temperature gradient.' + [] + [diffusive_flux] + type = Exodiff + input = 'diffusive_flux.i' + cli_args = 'BCs/outlet_conduction/enable=false + BCs/outlet_diffusive_flux/enable=true + Outputs/file_base=diffusive_flux_bc_out' + exodiff = 'diffusive_flux_bc_out.e' + requirement = 'The system shall apply a diffusive flux at a boundary equal to the conductivity times the outward normal temperature gradient.' + [] + [diffusive_flux_jacobian] + type = PetscJacobianTester + input = 'diffusive_flux.i' + run_sim = true + cli_args = 'BCs/outlet_conduction/enable=false + BCs/outlet_diffusive_flux/enable=true + k=0.1*(1+0.5*T) + Outputs/exodus=false' + requirement = 'The system shall provide an exact Jacobian for the diffusive flux boundary condition with a temperature-dependent conductivity.' + [] +[] diff --git a/tests/bcs/example_shape_side/example_shape_side.i b/tests/bcs/example_shape_side/example_shape_side.i new file mode 100644 index 0000000..1b5b0ec --- /dev/null +++ b/tests/bcs/example_shape_side/example_shape_side.i @@ -0,0 +1,97 @@ +# Nonlocal electrode boundary condition. The species density v is pinned to 1 +# and 2 across the gap, so at the right electrode the user objects supply the +# surface integrals int(grad(v).n) = 1 and int(v) = 2, floating the electrode +# potential to (Vb - 1) / 3 while the potential stays linear across the gap. + +Vb = 3 + +[Mesh] + [gap] + type = GeneratedMeshGenerator + dim = 1 + nx = 4 + xmax = 1 + [] +[] + +[Variables] + [potential] + [] + [v] + initial_condition = 1 + [] +[] + +[Kernels] + [potential_diffusion] + type = Diffusion + variable = potential + [] + [v_diffusion] + type = Diffusion + variable = v + [] +[] + +[BCs] + [grounded_electrode] + type = DirichletBC + variable = potential + boundary = left + value = 0 + [] + [floating_electrode] + type = ExampleShapeSideIntegratedBC + variable = potential + boundary = right + v = v + Vb = ${Vb} + num_user_object = num_integral + denom_user_object = denom_integral + [] + [v_left] + type = DirichletBC + variable = v + boundary = left + value = 1 + [] + [v_right] + type = DirichletBC + variable = v + boundary = right + value = 2 + [] +[] + +[UserObjects] + [num_integral] + type = NumShapeSideUserObject + u = v + boundary = right + execute_on = 'linear nonlinear' + [] + [denom_integral] + type = DenomShapeSideUserObject + u = v + boundary = right + execute_on = 'linear nonlinear' + [] +[] + +[Preconditioning] + [smp] + type = SMP + full = true + [] +[] + +[Executioner] + type = Steady + solve_type = NEWTON + petsc_options_iname = '-pc_type' + petsc_options_value = 'lu' +[] + +[Outputs] + exodus = true +[] diff --git a/tests/bcs/example_shape_side/gold/example_shape_side_out.e b/tests/bcs/example_shape_side/gold/example_shape_side_out.e new file mode 100644 index 0000000000000000000000000000000000000000..49147e4f1102dbe7eb9ee81ae4997b720aedbbc9 GIT binary patch literal 54344 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 literal 0 HcmV?d00001 diff --git a/tests/bcs/example_shape_side/tests b/tests/bcs/example_shape_side/tests new file mode 100644 index 0000000..ced6375 --- /dev/null +++ b/tests/bcs/example_shape_side/tests @@ -0,0 +1,23 @@ +[Tests] + [floating_electrode] + type = Exodiff + input = 'example_shape_side.i' + exodiff = 'example_shape_side_out.e' + requirement = 'The system shall float a boundary potential using nonlocal surface integrals of a coupled species supplied by shape side user objects.' + [] + [larger_bias] + type = Exodiff + input = 'example_shape_side.i' + cli_args = 'Vb=5 + Outputs/file_base=larger_bias_out' + exodiff = 'larger_bias_out.e' + requirement = 'The system shall shift the floated boundary potential with the applied bias.' + [] + [jacobian] + type = PetscJacobianTester + input = 'example_shape_side.i' + run_sim = true + cli_args = 'Outputs/exodus=false' + requirement = 'The system shall provide the nonlocal Jacobian contributions of the shape side boundary condition.' + [] +[] diff --git a/tests/bcs/postprocessor_dirichlet/gold/penalty_out.e b/tests/bcs/postprocessor_dirichlet/gold/penalty_out.e new file mode 100644 index 0000000000000000000000000000000000000000..b701a18a8dba4a58847ce8537f008048a24b30de GIT binary patch literal 45356 zcmeHQOOG5!avphC5-Cx;TG)q$PYLL-S_qsOJ|z-p5EMC-$IF*Rn(|sO3e{cNJtbCG z^;T66XZR<4^}#UUyAS&teBOf(KKNk3d+@;r1Kxw-H=z9@ANA_0o{H?Eq%o(!VLdwQ ztH_AV$jHdZ%sY4Q{m$0b7X7`0zaQc6TqI*J_UCeI>kZs)ozKI$^s-zo=uRJR$IH1F zgmb$49{$eLeVha`)4#uo(>Z!3BT0$AkH2^Hy*G}Yt3(9;o_){DWNzLiTGaC_4Dj9B z^B)+DFeaEw3Wu zXDXjzJWY_~Kk!iTFA8JuZ|jfncL9HIk9zCeicIY^CgMFV&ih_%{-ogdZi{qES!hh%Gxcn&YDJ}8E9z+NI;duMM@ZUM4U!=*x%97F&f9bvN z>oTio{NDauJkjsk_x}&~=i_YUdqk5xD6OGSoz5YB^?Q`|r0?1H>3lw0{T`JCdsM&o zJ|3P!`s(*6ZQt+x7-`>{Bq$+A3Z8gEb<-Y1`-l4GoWNP9JyuWFrTv2l8PW1 zktnDfQF*cQwE1|)yB9{$Ge27D!b553`*h&iUY`34+!Oz+SXNd&u?U)u^9l>Rtzua@ zFtOextapgd1)9#M{a8;tE1LHR?*i#gkCf2dCmuHCLFMH4@Q34lm6u5p$8wTWJ)rNZ zvWBz$_Ic8~UVgmLELLgW+PnMNp3-ExUI?Ve@&4c7zY8jT{rjfgs6=#4<&#do!hh#f z`mE5Y)OOf|(wcYQ|3_S(Yv|vuw7;gb2Di}5cxI0(?my$9#XTwQzffAu--2G^lRc`q z|B8n;t;K!MCd9d#_BXh{Kn02#K2J9YB#R%I^z;pqW6$#b{=Xybdxw66QmXMtxHt&2 zSsp5N`Imo>-=V*!iI>U=YQL>_Kg4q*Gh8X0zxoGtwe=(VmaS-XZeCaK)hoCDPQQ8U z*XB%I#c_+caCQvNfk;mC!9heR2US|fJ$^Z41|0$}fXQZBS;8k#dY!I@2$WSJ` zi~14vnSE}5YyNJZQ+oQN->n_>=2P6f&c_EW$4314K-@{CpUXgukHv#WkDly_4>kiF zn!~uI!o{N1L%IO?Fl_b8o0gXDB&$Kt^rYMhDn2Sj=pW}4nhP=Kj<#hUqNMdn$ z_wx0NyZCpt^|SZG@dKG1h!x1z)IA&dwoTun2TqaX$^E^@-GIAA zy51LemT4;ETs(z;vC2YmFAc>XE+cViS6sSw^Xl%+YgZKePD0*0l9Ofbk0Yrt;mw*a z6z~@)ngl355tnY<+}*u-^>Q!3lRn7)eLr3-a{>Q{{4o3JCgsn5S%{s3WG;8I`NB`1 z@4$ET72E>Z&OC|oRAv{mbh4BEVi|(d(M~Qi{4}0qJBuXCk#-`p41SCtOvA}RB)7M> zxAKnP^6k)m^IJaOLGAM6K-`CmRoqTz%Q*_sChQdA;>94$sN7tH|9Ei&1!J zyeHfY6CiW|L@h4{@-Upp(PXjYqP)uVH6H3hxfv&g`1DS;L%kMn8p)#&yxf7C7^l$` zE)6~-D}ct|Z1M8cI1YIX65`P^he)y=4{vk92NEG4= zKZ=wtM7x*E6y7DHX!kJSa4fD|-`y2v*riXFgs9M1ws~}AnL8;m(GL)|L-9r?ekK>W zq0o3L`=C_P2%#GRDIUeOHbsc1`w#Y>Jl%Wj?LE9JDzALQmyi7vLXlCJ&4&@Q5D%Ag z@z`qftdebqRvz5YfKLx#(*;#DNZAb#)*Q;8ZTSRlzhR!A__;5kz5eXPRNrO-A->$M z>(>qGrAmuYggi|mFZX8|-Pewh*njx!_I)#wc5>e77DvV2*4j_NrZ+O4toqhVLWz{!vZo4aLMvG zS;m16W!iR(1kaI27(wXIyv#q8UKp=ny6_OT%_8zAlI)}vF}q}0H|#64=?5dh>k80Y z@+ePz41MKkcw}W!z&lZ>0PDit2r!&4qHuyvUE48Y>P5mZnN8xTrR2Equ!DP=-jVo8 zc8m~?xu601pVX^G%N@OyOs5FG(C@GO?~>(Or=y8D5}AzA8EGM=^%1?_RY?@KOHIip zKKhOw2ZXYHt(BJchXj*JKb;(SbD19`K@)c*V*HFgnTnk8%#g060FNS&rV6bA(Ut8w zT#C&ylj#3x1rdNyxFE{I1rP(Fq3VK{Fy+-q@SJb-W=Ad7pd$eWhQZR0s+{V+re<_| zXTzqm8-9Ra%7)(bPBtZ$7 zp|7z}xG2~Y8hYK%_fU%3>UZ@OLnmR$s24%B+KH7~Db%*V+x#3*e4ctR1Ux=~k>At02H9IY!jsNAs_e@$M1mytgo2fl}xp$w$<8gSP3YZEZa69gBj!y(Jd3{3Q3Bzh%`LBokU z;1{p;A5#H^8gQ{FL8@2I6e5JEn?jb000BoBck>ntJqlN)j;{G_iV5GT)e)=p;ayMX zo{CH8i!4O7vb9KtFO(W!G)vMjKbV&pABjac@zbD(UNCjJ3W$)#2~9&v=f(IQpNCaI z(l=p!u#jK%YJixrJ1AgFVN^n4mBVlbp3zXS9ThtaT5K-u;^18m zgim_HQ8Wut=%+NkhM=dJthXpGjTF_6qbVj>E*AkDRh8VT%aOQx`Nq{7*FU~|qZcDF z7(AT@YPMz*O5cyfi$(AJA|U_~VG(-T66GB^E@adWIvw(TCND3s9thFc_%IVMKKT&hP=H+|qg$nO0I}HKS!6sn)j&Ah&Bq6VYdB7_>vCRWXEnRX zg<{$_&ocQBtBxDcRUR%Bt^z8f)-7$2j^|tL9;?h(wpkBbF z%xQ7O=OK-I7O$^f@QV!sLgS34>M5UBWww%5j{Le@1zagKBxSC0(8j;+2>7{298hia zSk5SLm!D-*PrN4&9--{$sJ03#`GDx|jFYBHC=t1Ur@)W>GnvLR`VNQktLQ#hNx>3v z@=3h8vz^2Vywe@Ve>a>?mv&vWHjPz#Mp+(yNIgm>&k4Eh;OoP)A@$~*5*HroG5U@G zU>CqsAI9$x-FFr{SF6(8R*zn$mU+-1c>+8Ob*pK0*3Bs}MQAmL&71d25kC&3KAUv&5XwmBKbWjJB3p9M+?G=3qBwW;tb0KV2D}8IAg9gJR~Uw z+0`VAHbgL2uVWsn1E3!Ss!|~864kk0suhLY zCZGzaR@<#-nqRO9kZSRu6k5RHC|r*91d3HII%c^5T%pkckOH1i3NfxSmT61X<2Ivy zv^em+G{Jh|T48M}<+04y;5q0+)#}x$s^0N=I9`TP;30I(v?+)n!&>acgjs%Fo?tqD znuG}HvzirJRYyhbfJ&{JJsw+{K?P%)GE6k zXE<4W6q_K$iW9KpB%)V+3K%F3K84mKE-eLbd|X-)ECwP6m}anU3Z;t$i&htwYfENz zuK8J>`B+bD$hvGzY831oliz7qfqS&gRP}bsPfKU^P{TTWnu9kl&h?vN1~8~YX(7JZ6gqB zR$0n|7B|57LyuallVB+GC4z}aKVZ9x6+?uI&Ch#-QNjwK(qJo){9;p3SZL`Q=mvlY z2gRUK4Gp5<11cL^Tjt)211Lr6K$iw1NBwIaVuZEGY*ARs3oeB$3HC{>##7QH7|hc` zc{}yvDWB=4PzKalF*n^yt5B8^hmd*IS=IE=9{gfs04w^yVyUw;;L93JdE*3Fx-qq>Geeke0PIP=xCQSQe5BY335`avwEVq@ma1 zu4+d=x(Fris&=k`+G$E}w;V1!RMR|PU`j=s3z6>#g0t!X9cJ28rG-EzDQ880eh@bc zC@cU;-89H_sVPUWiW@NHtxK^vnzt-qXCYmrd^|LT$3s*2a%c))4ol&{i(kEl!*GSB z9qQs0Sg>bO9!fZa;haf%b5?%&NC({y*w1f-`dm#{(DSVQ`iFf4ec!M>DPtdMgcD4Y`It@DJ`?4R@btl4E%;3bFL(!+1qBqQDe_<=qrFU*$4Ty zMuR%@ZJS9FRlUMBG(}-g=9wa_90Ul-ZW>($E}w^{9NLaffn+ZDJe*{QO_1t6A23L! z*qXA6QM={?>ZQmeX86~D>yWR8=2HlJ7+!l!N7YkA zDe7Li321Kvr!24S&%5x@L|L60N998!1mNQ>ttL+ge%{Fb{u2oDowX)$uMbbuF;;$$*|3+QU+==my?@@it^2h4C_Jv)%cCX6Ohx#(*Z`pp;cuveN-@=l~w-ER$|1iK<=k zg+hR&acVH-jRT-sC0cqVFKb5p5P-EAxO{zROLM4pl`8XUt~LZ*?UPcLRcEwTW4mvt zH%fa^(xO}_g6)93&6VnaHU3eq-LqUH#e>NDd3yjZGCBZkDN) zRGDl4kI%!R*}Xf%EY6?~#2CJPCT#FbvFTUv#N7=mKit0LD`Hu8Dc0$61uKg%tERW|Yg4gU~y zgN>-PO;|7x7yOV*1E?o4S8AX^<(nb~PEUO(9$O1y=LyP>OsC7nt#~GDXAEN9FK}t){)s z@Hr%z>IIY-wJUzHsWXoZ?V`yiWPX-)#A?ShR2M+iIiV^tROqiUL0bD1PFc?6FP1Ay zQI>My3nf!E4zc#wJCZglEEX!%p!|ZZLZG^8G6{uiIjCtU-5oxDvC;azvoGa9p;}9; zXopL2SRS&oOs=Z-Jst_tAQ-` zwI|*|Fuk_QKs;fQheqNQglRn*JhX#kVtb6}g;$owRy^hM5K9i}I0x9nq$O4a!w0l| zz17a6>V#9lcJn#3b{+|nH>gglpy%E^=^PS%7Kk2M&h7Z^NNu3o%kWZ(O27^s z3ksoN`}fYUmgzE&LQEA^OEROOZ_M|HjCZ#`5tln7B^tz+fE~4kZ#kHLN|&dAUsDWV zhIl905-!50P>tvvU^k8i^GvPgw<(=Ngc^~bWeZphZm8%SK43NpF{L7$Vy})i1IGc7 zLgZB;gl1fgyLSLot6X-d1}B44uX0%(q^_`#wBZy>xylzw`dpA&!lpGxrRT$}8?QaN z+uPe)qz(GkszxPizr_#|>={Iekb`1@5Z%(A zzm}&a%e201*y3byk@D-e%H{CJQZeXX8KWo3*T=AX7spdza6ZPePv})l5Q~wd-^B$( zRm6A(S7b8GmRws@W7ozz^IJV3*2X*YBQZ`GRL2TD#^w3UkCw6~!xm+uvW$KJnR5t~ z#0ER)RcWi6;!#vc3Or*NBJQgfiHEOX&Z8bGtPQf#m+0X40_@nM$|5ZXrB}+wcDN`9^8OFIZ8rvjrQH^$NoDWW z$uNW7r#7yMQ{1~`dF_IQF6EE_2V5!i^_v>@%x(}c*tDS&D-$n)YUrO1NF5d6!5jLi zKM$j3FsQ96BXR%sXP@7G_}N~+tkZjgTMi+X2cj`YWL@t#YN?~MOI@~rYUM~3r2r3! z1$6=JTAWc~!nWD}{7D}-n&vURWVXVvG}X^86s`?v9Ek@BwiB=w>Qn4CvR2$g&MFUW zw*o&>v3a`JKhFf{r>Wmn44oQ!1xTJ^6r4Hs_o8(t>|{8nV$-=^8jbwiARhMV5{DSBuTh^8Y`};nr`o`nvV?*I)n7U;pL)t^fS`>;L`lYaieG NH*^0_`fQclZvm?SJHP+{ literal 0 HcmV?d00001 diff --git a/tests/bcs/postprocessor_dirichlet/gold/postprocessor_dirichlet_out.e b/tests/bcs/postprocessor_dirichlet/gold/postprocessor_dirichlet_out.e new file mode 100644 index 0000000000000000000000000000000000000000..4d99528d87bbcef13a2e1d18721b86e28bcbfdfc GIT binary patch literal 44968 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 literal 0 HcmV?d00001 diff --git a/tests/bcs/postprocessor_dirichlet/postprocessor_dirichlet.i b/tests/bcs/postprocessor_dirichlet/postprocessor_dirichlet.i new file mode 100644 index 0000000..6f71221 --- /dev/null +++ b/tests/bcs/postprocessor_dirichlet/postprocessor_dirichlet.i @@ -0,0 +1,69 @@ +# Conducting rod whose left end is held at a value derived from a postprocessor +# (scale*sensor + offset = 2) and whose right end is held at 0, giving a linear +# profile. The tests select between the two postprocessor-driven Dirichlet BCs. + +[Mesh] + [rod] + type = GeneratedMeshGenerator + dim = 1 + nx = 4 + xmax = 1 + [] +[] + +[Variables] + [T] + [] +[] + +[Kernels] + [conduction] + type = Diffusion + variable = T + [] +[] + +[BCs] + [left_flexible] + type = FlexiblePostprocessorDirichletBC + variable = T + boundary = left + postprocessor = sensor + scale = 0.5 + offset = 1 + [] + [left_penalty] + type = PostprocessorPenaltyDirichletBC + variable = T + boundary = left + postprocessor = sensor + penalty = 1e8 + enable = false + [] + [right] + type = DirichletBC + variable = T + boundary = right + value = 0 + [] +[] + +[Postprocessors] + [sensor] + type = FunctionValuePostprocessor + function = 2 + execute_on = 'initial' + outputs = none + [] +[] + +[Executioner] + type = Steady + solve_type = NEWTON + petsc_options_iname = '-pc_type' + petsc_options_value = 'lu' +[] + +[Outputs] + exodus = true +[] diff --git a/tests/bcs/postprocessor_dirichlet/tests b/tests/bcs/postprocessor_dirichlet/tests new file mode 100644 index 0000000..710fffd --- /dev/null +++ b/tests/bcs/postprocessor_dirichlet/tests @@ -0,0 +1,17 @@ +[Tests] + [flexible] + type = Exodiff + input = 'postprocessor_dirichlet.i' + exodiff = 'postprocessor_dirichlet_out.e' + requirement = 'The system shall strongly impose a Dirichlet value taken from a scaled and offset postprocessor.' + [] + [penalty] + type = Exodiff + input = 'postprocessor_dirichlet.i' + cli_args = 'BCs/left_flexible/enable=false + BCs/left_penalty/enable=true + Outputs/file_base=penalty_out' + exodiff = 'penalty_out.e' + requirement = 'The system shall weakly impose a postprocessor Dirichlet value through a penalty boundary condition.' + [] +[] diff --git a/tests/bcs/robin/gold/faster_flow_out.e b/tests/bcs/robin/gold/faster_flow_out.e new file mode 100644 index 0000000000000000000000000000000000000000..e788810dd95340ad0e9f6143ad96f9fff8821978 GIT binary patch literal 43832 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̴ZoG&!E+UOICgmMNsZ@vAOB^Qup;&X2(n(Kb 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 literal 0 HcmV?d00001 diff --git a/tests/bcs/robin/gold/robin_out.e b/tests/bcs/robin/gold/robin_out.e new file mode 100644 index 0000000000000000000000000000000000000000..8bbdaf4db85134d3f4760f9e62724632cf6c6134 GIT binary patch literal 43500 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 literal 0 HcmV?d00001 diff --git a/tests/bcs/robin/robin.i b/tests/bcs/robin/robin.i new file mode 100644 index 0000000..c836a23 --- /dev/null +++ b/tests/bcs/robin/robin.i @@ -0,0 +1,58 @@ +# Advection-diffusion of u down a channel with a Dirichlet inlet and an open +# outlet. The RobinBC lets u leave at a rate proportional to its local value, +# so the profile decays toward the outlet instead of staying flat. + +v = 1 + +[Mesh] + [channel] + type = GeneratedMeshGenerator + dim = 1 + nx = 10 + xmax = 1 + [] +[] + +[Variables] + [u] + initial_condition = 1 + [] +[] + +[Kernels] + [diffusion] + type = Diffusion + variable = u + [] + [advection] + type = ConservativeAdvection + variable = u + velocity_variable = '${v} 0 0' + [] +[] + +[BCs] + [inlet] + type = DirichletBC + variable = u + boundary = left + value = 1 + [] + [outlet] + type = RobinBC + variable = u + boundary = right + velocity = ${v} + [] +[] + +[Executioner] + type = Steady + solve_type = NEWTON + petsc_options_iname = '-pc_type -pc_factor_shift_type' + petsc_options_value = 'lu NONZERO' +[] + +[Outputs] + exodus = true +[] diff --git a/tests/bcs/robin/tests b/tests/bcs/robin/tests new file mode 100644 index 0000000..783d381 --- /dev/null +++ b/tests/bcs/robin/tests @@ -0,0 +1,16 @@ +[Tests] + [robin] + type = Exodiff + input = 'robin.i' + exodiff = 'robin_out.e' + requirement = 'The system shall apply a Robin outflow boundary condition proportional to the local solution value.' + [] + [faster_flow] + type = Exodiff + input = 'robin.i' + cli_args = 'v=5 + Outputs/file_base=faster_flow_out' + exodiff = 'faster_flow_out.e' + requirement = 'The system shall scale the Robin outflow boundary condition with the specified velocity.' + [] +[] diff --git a/tests/dgkernels/dg_advection/dg_advection.i b/tests/dgkernels/dg_advection/dg_advection.i new file mode 100644 index 0000000..5ab56a8 --- /dev/null +++ b/tests/dgkernels/dg_advection/dg_advection.i @@ -0,0 +1,109 @@ +# Upwind DG advection of u with a uniform source: div(v u) = q, u_in = 1. +# The cell averages step up by q*h/v along the channel. +# The ...Temperature... flavours scale every term by rho*cp. + +v = 1 +q = 2 + +[Mesh] + [channel] + type = GeneratedMeshGenerator + dim = 1 + nx = 10 + xmax = 1 + [] +[] + +[Variables] + [u] + order = CONSTANT + family = MONOMIAL + initial_condition = 1 + [] +[] + +[Functions] + [vel_x] + type = ParsedFunction + expression = '${v}' + [] + [zero] + type = ParsedFunction + expression = '0' + [] +[] + +[Kernels] + [source] + type = BodyForce + variable = u + value = ${q} + [] +[] + +[DGKernels] + [function_advection] + type = DGFunctionConvection + variable = u + vel_x_func = vel_x + vel_y_func = zero + vel_z_func = zero + [] + [advection] + type = DGTemperatureAdvection + variable = u + velocity = '${v} 0 0' + enable = false + [] +[] + +[BCs] + [inlet] + type = InflowBC + variable = u + boundary = left + uu = ${v} + inlet_conc = 1 + [] + [outlet] + type = OutflowBC + variable = u + boundary = right + velocity = '${v} 0 0' + [] +[] + +[Materials] + [rho] + type = DerivativeParsedMaterial + property_name = rho + coupled_variables = 'u' + expression = '1' + derivative_order = 1 + [] + [cp] + type = DerivativeParsedMaterial + property_name = cp + coupled_variables = 'u' + expression = '1' + derivative_order = 1 + [] +[] + +[Preconditioning] + [smp] + type = SMP + full = true + [] +[] + +[Executioner] + type = Steady + solve_type = NEWTON + petsc_options_iname = '-pc_type -pc_factor_shift_type' + petsc_options_value = 'lu NONZERO' +[] + +[Outputs] + exodus = true +[] diff --git a/tests/dgkernels/dg_advection/gold/dg_advection_out.e b/tests/dgkernels/dg_advection/gold/dg_advection_out.e new file mode 100644 index 0000000000000000000000000000000000000000..ef95e545a2d6a5877d07486d36b391059bec3546 GIT binary patch literal 57408 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 literal 0 HcmV?d00001 diff --git a/tests/dgkernels/dg_advection/gold/function_temperature_out.e b/tests/dgkernels/dg_advection/gold/function_temperature_out.e new file mode 100644 index 0000000000000000000000000000000000000000..dd6773eba1f5bcb156ccc181395c4daae88485de GIT binary patch literal 58224 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 P&nW%-#{Yen(x?9qVGSXU literal 0 HcmV?d00001 diff --git a/tests/dgkernels/dg_advection/gold/temperature_out.e b/tests/dgkernels/dg_advection/gold/temperature_out.e new file mode 100644 index 0000000000000000000000000000000000000000..32dd622066d3c0d88b1c9b798ec425100809760f GIT binary patch literal 58136 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 F{{dr02Aco? literal 0 HcmV?d00001 diff --git a/tests/dgkernels/dg_advection/tests b/tests/dgkernels/dg_advection/tests new file mode 100644 index 0000000..a9747d9 --- /dev/null +++ b/tests/dgkernels/dg_advection/tests @@ -0,0 +1,33 @@ +[Tests] + [function_convection] + type = Exodiff + input = 'dg_advection.i' + exodiff = 'dg_advection_out.e' + requirement = 'The system shall advect a scalar with upwind discontinuous Galerkin fluxes using a function velocity.' + [] + [function_temperature_advection] + type = Exodiff + input = 'dg_advection.i' + cli_args = 'DGKernels/function_advection/type=DGFunctionTemperatureAdvection + BCs/inlet/type=TemperatureInflowBC + BCs/outlet/type=TemperatureOutflowBC + Materials/rho/expression=2 + Materials/cp/expression=3 + Outputs/file_base=function_temperature_out' + exodiff = 'function_temperature_out.e' + requirement = 'The system shall advect enthalpy with upwind discontinuous Galerkin fluxes using a function velocity scaled by density and specific heat.' + [] + [temperature_advection] + type = Exodiff + input = 'dg_advection.i' + cli_args = 'DGKernels/function_advection/enable=false + DGKernels/advection/enable=true + BCs/inlet/type=TemperatureInflowBC + BCs/outlet/type=TemperatureOutflowBC + Materials/rho/expression=2 + Materials/cp/expression=3 + Outputs/file_base=temperature_out' + exodiff = 'temperature_out.e' + requirement = 'The system shall advect enthalpy with upwind discontinuous Galerkin fluxes using a constant velocity vector.' + [] +[] diff --git a/tests/dgkernels/dg_coupled_advection/dg_coupled_advection.i b/tests/dgkernels/dg_coupled_advection/dg_coupled_advection.i new file mode 100644 index 0000000..8f575dd --- /dev/null +++ b/tests/dgkernels/dg_coupled_advection/dg_coupled_advection.i @@ -0,0 +1,79 @@ +# Upwind DG advection of u with a uniform source, where the advecting velocity +# is supplied as a variable field rather than a constant. The cell averages step +# up by q*h/v along the channel. + +v = 1 +q = 2 + +[Mesh] + [channel] + type = GeneratedMeshGenerator + dim = 1 + nx = 10 + xmax = 1 + [] +[] + +[Variables] + [u] + order = CONSTANT + family = MONOMIAL + initial_condition = 1 + [] +[] + +[AuxVariables] + [vel_x] + initial_condition = ${v} + [] +[] + +[Kernels] + [source] + type = BodyForce + variable = u + value = ${q} + [] +[] + +[DGKernels] + [advection] + type = DGCoupledAdvection + variable = u + uvel = vel_x + [] +[] + +[BCs] + [inlet] + type = InflowBC + variable = u + boundary = left + uu = ${v} + inlet_conc = 1 + [] + [outlet] + type = OutflowBC + variable = u + boundary = right + velocity = '${v} 0 0' + [] +[] + +[Preconditioning] + [smp] + type = SMP + full = true + [] +[] + +[Executioner] + type = Steady + solve_type = NEWTON + petsc_options_iname = '-pc_type -pc_factor_shift_type' + petsc_options_value = 'lu NONZERO' +[] + +[Outputs] + exodus = true +[] diff --git a/tests/dgkernels/dg_coupled_advection/gold/dg_coupled_advection_out.e b/tests/dgkernels/dg_coupled_advection/gold/dg_coupled_advection_out.e new file mode 100644 index 0000000000000000000000000000000000000000..61d09663085e73c2700faea780df2a2966b547bb GIT binary patch literal 48852 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 literal 0 HcmV?d00001 diff --git a/tests/dgkernels/dg_coupled_advection/tests b/tests/dgkernels/dg_coupled_advection/tests new file mode 100644 index 0000000..849759f --- /dev/null +++ b/tests/dgkernels/dg_coupled_advection/tests @@ -0,0 +1,16 @@ +[Tests] + [dg_coupled_advection] + type = Exodiff + input = 'dg_coupled_advection.i' + exodiff = 'dg_coupled_advection_out.e' + requirement = 'The system shall advect a scalar with upwind discontinuous Galerkin fluxes using a velocity supplied as a variable field.' + [] + [faster_flow] + type = Exodiff + input = 'dg_coupled_advection.i' + cli_args = 'v=2 + Outputs/file_base=faster_flow_out' + exodiff = 'faster_flow_out.e' + requirement = 'The system shall halve the concentration step across each cell when the coupled advecting velocity doubles.' + [] +[] diff --git a/tests/dgkernels/dg_diffusion_pp_dirichlet/dg_diffusion_pp_dirichlet.i b/tests/dgkernels/dg_diffusion_pp_dirichlet/dg_diffusion_pp_dirichlet.i new file mode 100644 index 0000000..252e763 --- /dev/null +++ b/tests/dgkernels/dg_diffusion_pp_dirichlet/dg_diffusion_pp_dirichlet.i @@ -0,0 +1,90 @@ +# Discontinuous Galerkin conduction with both ends set from a sensor +# postprocessor: the hot end at scale*sensor + offset = 1.5 and the cold end at +# 0. The steady profile is the straight line between them. + +[Mesh] + [rod] + type = GeneratedMeshGenerator + dim = 1 + nx = 4 + xmax = 1 + [] +[] + +[Variables] + [T] + order = FIRST + family = MONOMIAL + [] +[] + +[Kernels] + [conduction] + type = MatDiffusion + variable = T + diffusivity = k + [] +[] + +[DGKernels] + [dg_conduction] + type = DGDiffusion + variable = T + diff = k + sigma = 6 + epsilon = -1 + [] +[] + +[BCs] + [hot] + type = DGDiffusionPostprocessorDirichletBC + variable = T + boundary = left + postprocessor = sensor + scale = 1 + offset = -0.5 + D_name = k + sigma = 6 + epsilon = -1 + [] + [cold] + type = DGDiffusionPostprocessorDirichletBC + variable = T + boundary = right + postprocessor = sensor + scale = 0 + offset = 0 + D_name = k + sigma = 6 + epsilon = -1 + [] +[] + +[Materials] + [conductivity] + type = GenericConstantMaterial + prop_names = 'k' + prop_values = '1' + [] +[] + +[Postprocessors] + [sensor] + type = FunctionValuePostprocessor + function = 2 + execute_on = 'initial' + outputs = none + [] +[] + +[Executioner] + type = Steady + solve_type = NEWTON + petsc_options_iname = '-pc_type' + petsc_options_value = 'lu' +[] + +[Outputs] + exodus = true +[] diff --git a/tests/dgkernels/dg_diffusion_pp_dirichlet/gold/dg_diffusion_pp_dirichlet_out.e b/tests/dgkernels/dg_diffusion_pp_dirichlet/gold/dg_diffusion_pp_dirichlet_out.e new file mode 100644 index 0000000000000000000000000000000000000000..5bf4295d59bec1f8019a3a01d6a1077d1b7ed7d3 GIT binary patch literal 48692 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 G>;DG|4q!|G literal 0 HcmV?d00001 diff --git a/tests/dgkernels/dg_diffusion_pp_dirichlet/gold/hotter_inlet_out.e b/tests/dgkernels/dg_diffusion_pp_dirichlet/gold/hotter_inlet_out.e new file mode 100644 index 0000000000000000000000000000000000000000..23e6f2bf136fc476c1fdb512039184f988e8a497 GIT binary patch literal 49004 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 literal 0 HcmV?d00001 diff --git a/tests/dgkernels/dg_diffusion_pp_dirichlet/tests b/tests/dgkernels/dg_diffusion_pp_dirichlet/tests new file mode 100644 index 0000000..468514e --- /dev/null +++ b/tests/dgkernels/dg_diffusion_pp_dirichlet/tests @@ -0,0 +1,16 @@ +[Tests] + [dg_diffusion_pp_dirichlet] + type = Exodiff + input = 'dg_diffusion_pp_dirichlet.i' + exodiff = 'dg_diffusion_pp_dirichlet_out.e' + requirement = 'The system shall weakly impose a Dirichlet value from a postprocessor on a discontinuous Galerkin diffusion problem.' + [] + [hotter_inlet] + type = Exodiff + input = 'dg_diffusion_pp_dirichlet.i' + cli_args = 'BCs/hot/offset=0.5 + Outputs/file_base=hotter_inlet_out' + exodiff = 'hotter_inlet_out.e' + requirement = 'The system shall steepen the discontinuous Galerkin diffusion profile when the postprocessor boundary offset increases.' + [] +[] diff --git a/tests/interfacekernels/inter_temperature_advection/gold/heat_removal_out.e b/tests/interfacekernels/inter_temperature_advection/gold/heat_removal_out.e new file mode 100644 index 0000000000000000000000000000000000000000..e02cd326b15859e16f7dd8d448c6542432d57270 GIT binary patch literal 57948 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 Q_qPhL{=Ds8r$6cZ|8CCyX8-^I literal 0 HcmV?d00001 diff --git a/tests/interfacekernels/inter_temperature_advection/gold/inter_temperature_advection_out.e b/tests/interfacekernels/inter_temperature_advection/gold/inter_temperature_advection_out.e new file mode 100644 index 0000000000000000000000000000000000000000..0fad5ad0cc2585ab0465f9aacefc6e4cc90fe84e GIT binary patch literal 57640 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 V7SrASN&zlDZ~T5Ci+{}Z{{i#@)C~Xt literal 0 HcmV?d00001 diff --git a/tests/interfacekernels/inter_temperature_advection/inter_temperature_advection.i b/tests/interfacekernels/inter_temperature_advection/inter_temperature_advection.i new file mode 100644 index 0000000..3a6e6a6 --- /dev/null +++ b/tests/interfacekernels/inter_temperature_advection/inter_temperature_advection.i @@ -0,0 +1,112 @@ +# Enthalpy advected along a channel split into two blocks by a lumped heat +# exchanger on the interface. The exchanger deposits -heat_source per unit area +# into the downstream stream, so heat_source = -1 warms it from 2 K to 3 K. + +v = 1 +T_in = 2 + +[Mesh] + [channel] + type = GeneratedMeshGenerator + dim = 1 + nx = 10 + xmax = 1 + [] + [downstream] + type = SubdomainBoundingBoxGenerator + input = channel + block_id = 1 + bottom_left = '0.5 0 0' + top_right = '1 0 0' + [] + [exchanger] + type = SideSetsBetweenSubdomainsGenerator + input = downstream + primary_block = 0 + paired_block = 1 + new_boundary = 'exchanger' + [] +[] + +[Variables] + [T_upstream] + order = CONSTANT + family = MONOMIAL + block = 0 + initial_condition = ${T_in} + [] + [T_downstream] + order = CONSTANT + family = MONOMIAL + block = 1 + initial_condition = ${T_in} + [] +[] + +[DGKernels] + [upstream_advection] + type = DGTemperatureAdvection + variable = T_upstream + velocity = '${v} 0 0' + block = 0 + [] + [downstream_advection] + type = DGTemperatureAdvection + variable = T_downstream + velocity = '${v} 0 0' + block = 1 + [] +[] + +[InterfaceKernels] + [exchanger] + type = InterTemperatureAdvection + variable = T_upstream + neighbor_var = T_downstream + boundary = 'exchanger' + u_val = ${v} + heat_source = -1 + [] +[] + +[BCs] + [inlet] + type = TemperatureInflowBC + variable = T_upstream + boundary = left + uu = ${v} + inlet_conc = ${T_in} + [] + [outlet] + type = TemperatureOutflowBC + variable = T_downstream + boundary = right + velocity = '${v} 0 0' + [] +[] + +[Materials] + [properties] + type = GenericConstantMaterial + prop_names = 'rho cp' + prop_values = '1 1' + [] +[] + +[Preconditioning] + [smp] + type = SMP + full = true + [] +[] + +[Executioner] + type = Steady + solve_type = NEWTON + petsc_options_iname = '-pc_type -pc_factor_shift_type' + petsc_options_value = 'lu NONZERO' +[] + +[Outputs] + exodus = true +[] diff --git a/tests/interfacekernels/inter_temperature_advection/tests b/tests/interfacekernels/inter_temperature_advection/tests new file mode 100644 index 0000000..e8d7308 --- /dev/null +++ b/tests/interfacekernels/inter_temperature_advection/tests @@ -0,0 +1,16 @@ +[Tests] + [heat_addition] + type = Exodiff + input = 'inter_temperature_advection.i' + exodiff = 'inter_temperature_advection_out.e' + requirement = 'The system shall exchange advected enthalpy across a block interface, adding heat to the downstream stream.' + [] + [heat_removal] + type = Exodiff + input = 'inter_temperature_advection.i' + cli_args = 'InterfaceKernels/exchanger/heat_source=1 + Outputs/file_base=heat_removal_out' + exodiff = 'heat_removal_out.e' + requirement = 'The system shall remove heat from the downstream stream when the interface heat source sign is reversed.' + [] +[] diff --git a/tests/kernels/conservative_advection/conservative_advection.i b/tests/kernels/conservative_advection/conservative_advection.i new file mode 100644 index 0000000..ec87471 --- /dev/null +++ b/tests/kernels/conservative_advection/conservative_advection.i @@ -0,0 +1,107 @@ +# Steady advection of u along a channel with a uniform source: div(v u) = q. +# With v = 1, q = 2 and u(0) = 1 the exact solution is the line u = 1 + 2 x. +# The ...Temperature... objects scale every term by rho*cp. + +[Mesh] + [channel] + type = GeneratedMeshGenerator + dim = 1 + nx = 10 + xmax = 1 + [] +[] + +[Variables] + [u] + initial_condition = 1 + [] +[] + +[Kernels] + [advection] + type = ConservativeAdvection + variable = u + velocity_variable = '1 0 0' + [] + [ctrl_advection] + type = CtrlConservativeAdvection + variable = u + u_val = 1 + v_val = 0 + w_val = 0 + enable = false + [] + [source] + type = BodyForce + variable = u + value = 2 + [] +[] + +[BCs] + [inlet] + type = InflowBC + variable = u + boundary = left + uu = 1 + inlet_conc = 1 + [] + [pp_inlet] + type = PostprocessorInflowBC + variable = u + boundary = left + uu = 1 + postprocessor = inlet_value + enable = false + [] + [outlet] + type = OutflowBC + variable = u + boundary = right + velocity = '1 0 0' + [] +[] + +[Materials] + [rho] + type = DerivativeParsedMaterial + property_name = rho + coupled_variables = 'u' + expression = '1' + derivative_order = 1 + [] + [cp] + type = DerivativeParsedMaterial + property_name = cp + coupled_variables = 'u' + expression = '1' + derivative_order = 1 + [] +[] + +[Postprocessors] + [inlet_value] + type = FunctionValuePostprocessor + function = 1 + execute_on = 'initial' + outputs = none + [] +[] + +[Preconditioning] + [smp] + type = SMP + full = true + [] +[] + +[Executioner] + type = Steady + solve_type = NEWTON + petsc_options_iname = '-pc_type -pc_factor_shift_type' + petsc_options_value = 'lu NONZERO' +[] + +[Outputs] + exodus = true +[] diff --git a/tests/kernels/conservative_advection/gold/conservative_advection_out.e b/tests/kernels/conservative_advection/gold/conservative_advection_out.e new file mode 100644 index 0000000000000000000000000000000000000000..7b3e57b8f4f5c6971ef5b0e8e09bc97078e42108 GIT binary patch literal 60208 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

  • jpx+{|gesDR83K1srh+Ip3DxGxt0JF<2X3EvmHM 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 literal 0 HcmV?d00001 diff --git a/tests/kernels/conservative_advection/gold/ctrl_temperature_out.e b/tests/kernels/conservative_advection/gold/ctrl_temperature_out.e new file mode 100644 index 0000000000000000000000000000000000000000..f4f9b0702a6733c800626838d6067d3030e0bfd3 GIT binary patch literal 61008 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 literal 0 HcmV?d00001 diff --git a/tests/kernels/conservative_advection/gold/pp_inlet_out.e b/tests/kernels/conservative_advection/gold/pp_inlet_out.e new file mode 100644 index 0000000000000000000000000000000000000000..dffc401d3171e7fda663aea7647fbc1ac4895a78 GIT binary patch literal 60596 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 literal 0 HcmV?d00001 diff --git a/tests/kernels/conservative_advection/gold/temperature_out.e b/tests/kernels/conservative_advection/gold/temperature_out.e new file mode 100644 index 0000000000000000000000000000000000000000..5ab84235b2aefb819ea1664b6e5facff5a18eb9a GIT binary patch literal 60844 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 XcK%OZ{>z>Jk@t;v{#)k1V(9#T#fPs( literal 0 HcmV?d00001 diff --git a/tests/kernels/nonconservative_advection/nonconservative_advection.i b/tests/kernels/nonconservative_advection/nonconservative_advection.i new file mode 100644 index 0000000..57791a4 --- /dev/null +++ b/tests/kernels/nonconservative_advection/nonconservative_advection.i @@ -0,0 +1,52 @@ +# Steady advection of u in non-conservative form with a uniform source: v u' = q. +# With v = 1, q = 2 and u(0) = 1 the exact solution is the line u = 1 + 2 x. + +v = 1 + +[Mesh] + [channel] + type = GeneratedMeshGenerator + dim = 1 + nx = 10 + xmax = 1 + [] +[] + +[Variables] + [u] + initial_condition = 1 + [] +[] + +[Kernels] + [advection] + type = NonConservativeAdvection + variable = u + velocity = '${v} 0 0' + [] + [source] + type = BodyForce + variable = u + value = 2 + [] +[] + +[BCs] + [inlet] + type = DirichletBC + variable = u + boundary = left + value = 1 + [] +[] + +[Executioner] + type = Steady + solve_type = NEWTON + petsc_options_iname = '-pc_type -pc_factor_shift_type' + petsc_options_value = 'lu NONZERO' +[] + +[Outputs] + exodus = true +[] diff --git a/tests/kernels/nonconservative_advection/tests b/tests/kernels/nonconservative_advection/tests new file mode 100644 index 0000000..a4a76c8 --- /dev/null +++ b/tests/kernels/nonconservative_advection/tests @@ -0,0 +1,17 @@ +[Tests] + [forward] + type = Exodiff + input = 'nonconservative_advection.i' + exodiff = 'nonconservative_advection_out.e' + requirement = 'The system shall advect a scalar in non-conservative form driven from the inlet.' + [] + [reverse] + type = Exodiff + input = 'nonconservative_advection.i' + cli_args = 'v=-1 + BCs/inlet/boundary=right + Outputs/file_base=reverse_out' + exodiff = 'reverse_out.e' + requirement = 'The system shall advect a scalar in non-conservative form for a reversed velocity driven from the opposite boundary.' + [] +[] diff --git a/tests/kernels/potential_advection/gold/negative_charge_out.e b/tests/kernels/potential_advection/gold/negative_charge_out.e new file mode 100644 index 0000000000000000000000000000000000000000..7301b8ccf4deb71cb8ddbfe68aefe4e76d0eb3c7 GIT binary patch literal 47728 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 T@AAgC@BH_-|Kh>VH17WboLmx+ literal 0 HcmV?d00001 diff --git a/tests/kernels/potential_advection/gold/potential_advection_out.e b/tests/kernels/potential_advection/gold/potential_advection_out.e new file mode 100644 index 0000000000000000000000000000000000000000..dbcca9d6a22574553a44b8eebdb1eae5d4187d43 GIT binary patch literal 47408 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 literal 0 HcmV?d00001 diff --git a/tests/kernels/potential_advection/potential_advection.i b/tests/kernels/potential_advection/potential_advection.i new file mode 100644 index 0000000..218a3a6 --- /dev/null +++ b/tests/kernels/potential_advection/potential_advection.i @@ -0,0 +1,70 @@ +# Charged scalar u under diffusion and drift in a prescribed potential. +# The potential falls linearly from 1 to 0, so the field points in +x and +# positive charges drift toward the right electrode while negatives drift left. + +[Mesh] + [gap] + type = GeneratedMeshGenerator + dim = 1 + nx = 10 + xmax = 1 + [] +[] + +[Variables] + [u] + initial_condition = 0.5 + [] +[] + +[AuxVariables] + [potential] + [] +[] + +[AuxKernels] + [potential] + type = FunctionAux + variable = potential + function = '1 - x' + [] +[] + +[Kernels] + [diffusion] + type = Diffusion + variable = u + [] + [drift] + type = PotentialAdvection + variable = u + potential = potential + positive_charge = true + [] +[] + +[BCs] + [left] + type = DirichletBC + variable = u + boundary = left + value = 1 + [] + [right] + type = DirichletBC + variable = u + boundary = right + value = 0 + [] +[] + +[Executioner] + type = Steady + solve_type = NEWTON + petsc_options_iname = '-pc_type' + petsc_options_value = 'lu' +[] + +[Outputs] + exodus = true +[] diff --git a/tests/kernels/potential_advection/tests b/tests/kernels/potential_advection/tests new file mode 100644 index 0000000..0bf63a7 --- /dev/null +++ b/tests/kernels/potential_advection/tests @@ -0,0 +1,22 @@ +[Tests] + [positive_charge] + type = Exodiff + input = 'potential_advection.i' + exodiff = 'potential_advection_out.e' + requirement = 'The system shall drift a positively charged scalar down the gradient of a prescribed potential.' + [] + [negative_charge] + type = Exodiff + input = 'potential_advection.i' + cli_args = 'Kernels/drift/positive_charge=false + Outputs/file_base=negative_charge_out' + exodiff = 'negative_charge_out.e' + requirement = 'The system shall drift a negatively charged scalar up the gradient of a prescribed potential.' + [] + [jacobian] + type = PetscJacobianTester + input = 'potential_advection.i' + run_sim = true + requirement = 'The system shall provide an exact Jacobian for potential-driven drift of a charged scalar.' + [] +[] diff --git a/tests/kernels/simple_diffusion/gold/simple_diffusion_out.e b/tests/kernels/simple_diffusion/gold/simple_diffusion_out.e deleted file mode 100644 index 26b05edab2e59e58b7ebd7cc86879bfaf03c1f0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19804 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 literal 0 HcmV?d00001 diff --git a/tests/kernels/velocity_function_advection/gold/velocity_function_advection_out.e b/tests/kernels/velocity_function_advection/gold/velocity_function_advection_out.e new file mode 100644 index 0000000000000000000000000000000000000000..358afb91349471c43d1381d678d58897b7f29393 GIT binary patch literal 55268 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 Z!Not_U;p?U-} Date: Mon, 6 Jul 2026 18:09:37 -0500 Subject: [PATCH 4/4] Uncomment MatINSTemperatureTimeDerivative full Jacobian Revert https://github.com/arfc/squirrel/commit/7ff814daef06d1da91223ab520a541a16d80e8c5#diff-0aea5faa4a76003610576e14bb18841cebc25f74b46275bd6674c328da93733c which inadvertently commented out parts of the MatINSTemperatureTimeDerivative Jacobian definition --- src/kernels/MatINSTemperatureTimeDerivative.C | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/kernels/MatINSTemperatureTimeDerivative.C b/src/kernels/MatINSTemperatureTimeDerivative.C index c7af700..d172ee4 100644 --- a/src/kernels/MatINSTemperatureTimeDerivative.C +++ b/src/kernels/MatINSTemperatureTimeDerivative.C @@ -34,7 +34,7 @@ MatINSTemperatureTimeDerivative::computeQpResidual() Real MatINSTemperatureTimeDerivative::computeQpJacobian() { - return _rho[_qp] * _cp[_qp] * TimeDerivative::computeQpJacobian(); // + - // _d_rho_d_u[_qp] * _phi[_j][_qp] * _cp[_qp] * TimeDerivative::computeQpResidual() + - // _rho[_qp] * _d_cp_d_u[_qp] * _phi[_j][_qp] * TimeDerivative::computeQpResidual(); + return _rho[_qp] * _cp[_qp] * TimeDerivative::computeQpJacobian() + + _d_rho_d_u[_qp] * _phi[_j][_qp] * _cp[_qp] * TimeDerivative::computeQpResidual() + + _rho[_qp] * _d_cp_d_u[_qp] * _phi[_j][_qp] * TimeDerivative::computeQpResidual(); }