diff --git a/modules/navier_stokes/include/bcs/DisplaceBoundaryBC.h b/modules/navier_stokes/include/bcs/DisplaceBoundaryBC.h index f7bd4daacc26..430a54a1bbda 100644 --- a/modules/navier_stokes/include/bcs/DisplaceBoundaryBC.h +++ b/modules/navier_stokes/include/bcs/DisplaceBoundaryBC.h @@ -1,11 +1,11 @@ -/****************************************************************************/ -/* DO NOT MODIFY THIS HEADER */ -/* */ -/* MALAMUTE: MOOSE Application Library for Advanced Manufacturing UTilitiEs */ -/* */ -/* Copyright 2021 - 2023, Battelle Energy Alliance, LLC */ -/* ALL RIGHTS RESERVED */ -/****************************************************************************/ +//* This file is part of the MOOSE framework +//* https://www.mooseframework.org +//* +//* All rights reserved, see COPYRIGHT for full restrictions +//* https://github.com/idaholab/moose/blob/master/COPYRIGHT +//* +//* Licensed under LGPL 2.1, please see LICENSE for details +//* https://www.gnu.org/licenses/lgpl-2.1.html #pragma once @@ -21,6 +21,12 @@ class DisplaceBoundaryBC : public ADNodalBC protected: virtual ADReal computeQpResidual() override; - const ADReal & _velocity; + /// The velocity vector at the node + const ADRealVectorValue & _velocity; + + /// The previous timestep value of the displacement const Real & _u_old; + + /// What component of velocity/displacement this object is acting on + const unsigned short _component; }; diff --git a/modules/navier_stokes/include/bcs/VaporRecoilPressureMomentumFluxBC.h b/modules/navier_stokes/include/bcs/VaporRecoilPressureMomentumFluxBC.h index 8145592f7436..2bc4e21411d4 100644 --- a/modules/navier_stokes/include/bcs/VaporRecoilPressureMomentumFluxBC.h +++ b/modules/navier_stokes/include/bcs/VaporRecoilPressureMomentumFluxBC.h @@ -1,11 +1,11 @@ -/****************************************************************************/ -/* DO NOT MODIFY THIS HEADER */ -/* */ -/* MALAMUTE: MOOSE Application Library for Advanced Manufacturing UTilitiEs */ -/* */ -/* Copyright 2021 - 2023, Battelle Energy Alliance, LLC */ -/* ALL RIGHTS RESERVED */ -/****************************************************************************/ +//* This file is part of the MOOSE framework +//* https://www.mooseframework.org +//* +//* All rights reserved, see COPYRIGHT for full restrictions +//* https://github.com/idaholab/moose/blob/master/COPYRIGHT +//* +//* Licensed under LGPL 2.1, please see LICENSE for details +//* https://www.gnu.org/licenses/lgpl-2.1.html #pragma once @@ -21,5 +21,6 @@ class VaporRecoilPressureMomentumFluxBC : public ADVectorIntegratedBC protected: virtual ADReal computeQpResidual() override; + /// The recoil pressure const ADMaterialProperty & _rc_pressure; }; diff --git a/modules/navier_stokes/src/bcs/DisplaceBoundaryBC.C b/modules/navier_stokes/src/bcs/DisplaceBoundaryBC.C index 2d7504e65bb5..59919b2693b8 100644 --- a/modules/navier_stokes/src/bcs/DisplaceBoundaryBC.C +++ b/modules/navier_stokes/src/bcs/DisplaceBoundaryBC.C @@ -1,15 +1,15 @@ -/****************************************************************************/ -/* DO NOT MODIFY THIS HEADER */ -/* */ -/* MALAMUTE: MOOSE Application Library for Advanced Manufacturing UTilitiEs */ -/* */ -/* Copyright 2021 - 2023, Battelle Energy Alliance, LLC */ -/* ALL RIGHTS RESERVED */ -/****************************************************************************/ +//* This file is part of the MOOSE framework +//* https://www.mooseframework.org +//* +//* All rights reserved, see COPYRIGHT for full restrictions +//* https://github.com/idaholab/moose/blob/master/COPYRIGHT +//* +//* Licensed under LGPL 2.1, please see LICENSE for details +//* https://www.gnu.org/licenses/lgpl-2.1.html #include "DisplaceBoundaryBC.h" -registerMooseObject("MalamuteApp", DisplaceBoundaryBC); +registerMooseObject("NavierStokesApp", DisplaceBoundaryBC); InputParameters DisplaceBoundaryBC::validParams() @@ -17,18 +17,21 @@ DisplaceBoundaryBC::validParams() InputParameters params = ADNodalBC::validParams(); params.addClassDescription("For displacing a boundary"); params.addRequiredCoupledVar("velocity", "The velocity at which to displace"); + params.addRequiredParam( + "component", "What component of velocity/displacement this object is acting on."); return params; } DisplaceBoundaryBC::DisplaceBoundaryBC(const InputParameters & parameters) : ADNodalBC(parameters), - _velocity(adCoupledNodalValue("velocity")), - _u_old(_var.nodalValueOld()) + _velocity(adCoupledNodalValue("velocity")), + _u_old(_var.nodalValueOld()), + _component(getParam("component")) { } ADReal DisplaceBoundaryBC::computeQpResidual() { - return _u - (_u_old + this->_dt * _velocity); + return _u - (_u_old + this->_dt * _velocity(_component)); } diff --git a/modules/navier_stokes/src/bcs/VaporRecoilPressureMomentumFluxBC.C b/modules/navier_stokes/src/bcs/VaporRecoilPressureMomentumFluxBC.C index baa992e791f9..3055e6929bc9 100644 --- a/modules/navier_stokes/src/bcs/VaporRecoilPressureMomentumFluxBC.C +++ b/modules/navier_stokes/src/bcs/VaporRecoilPressureMomentumFluxBC.C @@ -1,15 +1,15 @@ -/****************************************************************************/ -/* DO NOT MODIFY THIS HEADER */ -/* */ -/* MALAMUTE: MOOSE Application Library for Advanced Manufacturing UTilitiEs */ -/* */ -/* Copyright 2021 - 2023, Battelle Energy Alliance, LLC */ -/* ALL RIGHTS RESERVED */ -/****************************************************************************/ +//* This file is part of the MOOSE framework +//* https://www.mooseframework.org +//* +//* All rights reserved, see COPYRIGHT for full restrictions +//* https://github.com/idaholab/moose/blob/master/COPYRIGHT +//* +//* Licensed under LGPL 2.1, please see LICENSE for details +//* https://www.gnu.org/licenses/lgpl-2.1.html #include "VaporRecoilPressureMomentumFluxBC.h" -registerMooseObject("MalamuteApp", VaporRecoilPressureMomentumFluxBC); +registerMooseObject("NavierStokesApp", VaporRecoilPressureMomentumFluxBC); InputParameters VaporRecoilPressureMomentumFluxBC::validParams() @@ -30,8 +30,5 @@ VaporRecoilPressureMomentumFluxBC::VaporRecoilPressureMomentumFluxBC( ADReal VaporRecoilPressureMomentumFluxBC::computeQpResidual() { - return _test[_i][_qp] * - ADRealVectorValue( - std::abs(_normals[_qp](0)), std::abs(_normals[_qp](1)), std::abs(_normals[_qp](2))) * - _rc_pressure[_qp]; + return _test[_i][_qp] * _normals[_qp] * _rc_pressure[_qp]; } diff --git a/modules/navier_stokes/src/materials/INSADMaterial.C b/modules/navier_stokes/src/materials/INSADMaterial.C index 26c395d0085e..c425913fbc1e 100644 --- a/modules/navier_stokes/src/materials/INSADMaterial.C +++ b/modules/navier_stokes/src/materials/INSADMaterial.C @@ -88,11 +88,10 @@ INSADMaterial::subdomainSetup() // safe for dependencies _boussinesq_alpha = &_material_data.getProperty( _object_tracker->get("alpha", _current_subdomain_id), 0, *this); - _temperature = - &_subproblem - .getStandardVariable( - _tid, _object_tracker->get("temperature", _current_subdomain_id)) - .adSln(); + auto & temp_var = _subproblem.getStandardVariable( + _tid, _object_tracker->get("temperature", _current_subdomain_id)); + addMooseVariableDependency(&temp_var); + _temperature = &temp_var.adSln(); _ref_temp = &_material_data.getProperty( _object_tracker->get("ref_temp", _current_subdomain_id), 0, *this); } @@ -114,6 +113,7 @@ INSADMaterial::subdomainSetup() { auto & disp_x = _subproblem.getStandardVariable( _tid, _object_tracker->get("disp_x", _current_subdomain_id)); + addMooseVariableDependency(&disp_x); _disp_x_dot = &disp_x.adUDot(); _disp_x_sys_num = disp_x.sys().number(); _disp_x_num = @@ -125,6 +125,7 @@ INSADMaterial::subdomainSetup() { auto & disp_y = _subproblem.getStandardVariable( _tid, _object_tracker->get("disp_y", _current_subdomain_id)); + addMooseVariableDependency(&disp_y); _disp_y_dot = &disp_y.adUDot(); _disp_y_sys_num = disp_y.sys().number(); _disp_y_num = @@ -143,6 +144,7 @@ INSADMaterial::subdomainSetup() { auto & disp_z = _subproblem.getStandardVariable( _tid, _object_tracker->get("disp_z", _current_subdomain_id)); + addMooseVariableDependency(&disp_z); _disp_z_dot = &disp_z.adUDot(); _disp_z_sys_num = disp_z.sys().number(); _disp_z_num = diff --git a/modules/navier_stokes/test/include/bcs/CrazyKCPlantFits.h b/modules/navier_stokes/test/include/bcs/CrazyKCPlantFits.h index 70549f7cb27f..d687caff98a2 100644 --- a/modules/navier_stokes/test/include/bcs/CrazyKCPlantFits.h +++ b/modules/navier_stokes/test/include/bcs/CrazyKCPlantFits.h @@ -1,11 +1,11 @@ -/****************************************************************************/ -/* DO NOT MODIFY THIS HEADER */ -/* */ -/* MALAMUTE: MOOSE Application Library for Advanced Manufacturing UTilitiEs */ -/* */ -/* Copyright 2021 - 2023, Battelle Energy Alliance, LLC */ -/* ALL RIGHTS RESERVED */ -/****************************************************************************/ +//* This file is part of the MOOSE framework +//* https://www.mooseframework.org +//* +//* All rights reserved, see COPYRIGHT for full restrictions +//* https://github.com/idaholab/moose/blob/master/COPYRIGHT +//* +//* Licensed under LGPL 2.1, please see LICENSE for details +//* https://www.gnu.org/licenses/lgpl-2.1.html #pragma once diff --git a/modules/navier_stokes/test/include/bcs/CrazyKCPlantFitsBoundary.h b/modules/navier_stokes/test/include/bcs/CrazyKCPlantFitsBoundary.h index 4ddd608a6248..538b3d250751 100644 --- a/modules/navier_stokes/test/include/bcs/CrazyKCPlantFitsBoundary.h +++ b/modules/navier_stokes/test/include/bcs/CrazyKCPlantFitsBoundary.h @@ -1,11 +1,11 @@ -/****************************************************************************/ -/* DO NOT MODIFY THIS HEADER */ -/* */ -/* MALAMUTE: MOOSE Application Library for Advanced Manufacturing UTilitiEs */ -/* */ -/* Copyright 2021 - 2023, Battelle Energy Alliance, LLC */ -/* ALL RIGHTS RESERVED */ -/****************************************************************************/ +//* This file is part of the MOOSE framework +//* https://www.mooseframework.org +//* +//* All rights reserved, see COPYRIGHT for full restrictions +//* https://github.com/idaholab/moose/blob/master/COPYRIGHT +//* +//* Licensed under LGPL 2.1, please see LICENSE for details +//* https://www.gnu.org/licenses/lgpl-2.1.html #pragma once @@ -47,8 +47,6 @@ class CrazyKCPlantFitsBoundary : public ADMaterial ADMaterialProperty & _surface_tension; ADMaterialProperty & _grad_surface_tension; const MooseArray & _ad_normals; - const MooseArray & _ad_curvatures; - ADMaterialProperty & _surface_term_curvature; ADMaterialProperty & _surface_term_gradient1; ADMaterialProperty & _surface_term_gradient2; diff --git a/modules/navier_stokes/test/src/bcs/CrazyKCPlantFits.C b/modules/navier_stokes/test/src/bcs/CrazyKCPlantFits.C index 02ca1e75f251..ca9583e9afc0 100644 --- a/modules/navier_stokes/test/src/bcs/CrazyKCPlantFits.C +++ b/modules/navier_stokes/test/src/bcs/CrazyKCPlantFits.C @@ -1,15 +1,15 @@ -/****************************************************************************/ -/* DO NOT MODIFY THIS HEADER */ -/* */ -/* MALAMUTE: MOOSE Application Library for Advanced Manufacturing UTilitiEs */ -/* */ -/* Copyright 2021 - 2023, Battelle Energy Alliance, LLC */ -/* ALL RIGHTS RESERVED */ -/****************************************************************************/ +//* This file is part of the MOOSE framework +//* https://www.mooseframework.org +//* +//* All rights reserved, see COPYRIGHT for full restrictions +//* https://github.com/idaholab/moose/blob/master/COPYRIGHT +//* +//* Licensed under LGPL 2.1, please see LICENSE for details +//* https://www.gnu.org/licenses/lgpl-2.1.html #include "CrazyKCPlantFits.h" -registerMooseObject("MalamuteApp", CrazyKCPlantFits); +registerMooseObject("NavierStokesTestApp", CrazyKCPlantFits); InputParameters CrazyKCPlantFits::validParams() diff --git a/modules/navier_stokes/test/src/bcs/CrazyKCPlantFitsBoundary.C b/modules/navier_stokes/test/src/bcs/CrazyKCPlantFitsBoundary.C index 776bf36bec71..547a1676ae81 100644 --- a/modules/navier_stokes/test/src/bcs/CrazyKCPlantFitsBoundary.C +++ b/modules/navier_stokes/test/src/bcs/CrazyKCPlantFitsBoundary.C @@ -1,16 +1,16 @@ -/****************************************************************************/ -/* DO NOT MODIFY THIS HEADER */ -/* */ -/* MALAMUTE: MOOSE Application Library for Advanced Manufacturing UTilitiEs */ -/* */ -/* Copyright 2021 - 2023, Battelle Energy Alliance, LLC */ -/* ALL RIGHTS RESERVED */ -/****************************************************************************/ +//* This file is part of the MOOSE framework +//* https://www.mooseframework.org +//* +//* All rights reserved, see COPYRIGHT for full restrictions +//* https://github.com/idaholab/moose/blob/master/COPYRIGHT +//* +//* Licensed under LGPL 2.1, please see LICENSE for details +//* https://www.gnu.org/licenses/lgpl-2.1.html #include "CrazyKCPlantFitsBoundary.h" #include "Assembly.h" -registerMooseObject("MalamuteApp", CrazyKCPlantFitsBoundary); +registerMooseObject("NavierStokesTestApp", CrazyKCPlantFitsBoundary); InputParameters CrazyKCPlantFitsBoundary::validParams() @@ -82,8 +82,6 @@ CrazyKCPlantFitsBoundary::CrazyKCPlantFitsBoundary(const InputParameters & param _grad_surface_tension(declareADProperty( getParam("grad_surface_tension_name"))), _ad_normals(_assembly.adNormals()), - _ad_curvatures(_assembly.adCurvatures()), - _surface_term_curvature(declareADProperty("surface_term_curvature")), _surface_term_gradient1(declareADProperty("surface_term_gradient1")), _surface_term_gradient2(declareADProperty("surface_term_gradient2")), _length_units_per_meter(1. / std::pow(10, getParam("length_unit_exponent"))), @@ -117,8 +115,6 @@ CrazyKCPlantFitsBoundary::computeQpProperties() _grad_surface_tension[_qp] = _alpha * _mass_units_per_kilogram / (_time_units_per_second * _time_units_per_second) / _temperature_units_per_kelvin * _grad_temperature[_qp]; - _surface_term_curvature[_qp] = - -2. * _ad_curvatures[_qp] * _surface_tension[_qp] * _ad_normals[_qp]; _surface_term_gradient1[_qp] = -_grad_surface_tension[_qp]; _surface_term_gradient2[_qp] = _ad_normals[_qp] * (_ad_normals[_qp] * _grad_surface_tension[_qp]); } diff --git a/modules/navier_stokes/test/tests/finite_element/ins/laser-welding/3d.i b/modules/navier_stokes/test/tests/finite_element/ins/laser-welding/3d.i index 339146c01dec..64b4137dc983 100644 --- a/modules/navier_stokes/test/tests/finite_element/ins/laser-welding/3d.i +++ b/modules/navier_stokes/test/tests/finite_element/ins/laser-welding/3d.i @@ -1,16 +1,9 @@ period=1.25e-3 -endtime=2.5e-3 +endtime=${period} timestep=1.25e-5 surfacetemp=300 [GlobalParams] - gravity = '0 0 0' - pspg = true - # supg = true - laplace = true - integrate_p_by_parts = true - convective_term = true - transient_term = true temperature = T [] @@ -23,242 +16,155 @@ surfacetemp=300 ymax = .35e-3 zmin = -.7e-3 zmax = 0 - nx = 4 - ny = 4 - nz = 4 + nx = 2 + ny = 2 + nz = 2 displacements = 'disp_x disp_y disp_z' uniform_refine = 2 [] [Variables] - [./vel_x] - [./InitialCondition] - type = ConstantIC - value = 1e-15 - [../] - [../] - - [./vel_y] - [./InitialCondition] - type = ConstantIC - value = 1e-15 - [../] - [../] - - [./vel_z] - [./InitialCondition] - type = ConstantIC - value = 1e-15 - [../] - [../] - - [./T] - [../] + [vel] + family = LAGRANGE_VEC + [] + [T] + [] + [p] + [] + [disp_x] + [] + [disp_y] + [] + [disp_z] + [] +[] - [./p] - [../] - [./disp_x] - [../] - [./disp_y] - [../] - [./disp_z] - [../] +[Problem] + error_on_jacobian_nonzero_reallocation = false [] [ICs] - [./T] + [T] type = FunctionIC variable = T function = '(${surfacetemp} - 300) / .7e-3 * z + ${surfacetemp}' - [../] + [] [] [Kernels] - [./disp_x] + [disp_x] type = Diffusion variable = disp_x - [../] - [./disp_y] + [] + [disp_y] type = Diffusion variable = disp_y - [../] - [./disp_z] + [] + [disp_z] type = Diffusion variable = disp_z - [../] -[] - -[ADKernels] - [./mesh_x] - type = INSConvectedMesh - variable = vel_x - disp_x = disp_x - disp_y = disp_y - disp_z = disp_z + [] + [mass] + type = INSADMass + variable = p use_displaced_mesh = true - [../] - [./mesh_y] - type = INSConvectedMesh - variable = vel_y - disp_x = disp_x - disp_y = disp_y - disp_z = disp_z + [] + [mass_pspg] + type = INSADMassPSPG + variable = p + use_displaced_mesh = true + [] + [momentum_time] + type = INSADMomentumTimeDerivative + variable = vel use_displaced_mesh = true - [../] - [./mesh_z] - type = INSConvectedMesh - variable = vel_z + [] + [mesh] + type = INSADConvectedMesh + variable = vel disp_x = disp_x disp_y = disp_y disp_z = disp_z use_displaced_mesh = true - [../] - - # mass - [./mass] - type = INSADMass - variable = p - u = vel_x - v = vel_y - w = vel_z - p = p + [] + [momentum_convection] + type = INSADMomentumAdvection + variable = vel use_displaced_mesh = true - [../] - - # x-momentum, time - [./x_momentum_time] - type = INSADMomentumTimeDerivative - variable = vel_x + [] + [momentum_viscous] + type = INSADMomentumViscous + variable = vel use_displaced_mesh = true - [../] - - # x-momentum, space - [./x_momentum_space] - type = INSADMomentumBase - variable = vel_x - u = vel_x - v = vel_y - w = vel_z - p = p - component = 0 + [] + [momentum_pressure] + type = INSADMomentumPressure + variable = vel + pressure = p + integrate_p_by_parts = true use_displaced_mesh = true - [../] - - # y-momentum, time - [./y_momentum_time] - type = INSADMomentumTimeDerivative - variable = vel_y + [] + [momentum_supg] + type = INSADMomentumSUPG + variable = vel + velocity = vel use_displaced_mesh = true - [../] - - # y-momentum, space - [./y_momentum_space] - type = INSADMomentumBase - variable = vel_y - u = vel_x - v = vel_y - w = vel_z - p = p - component = 1 + [] + [temperature_advection] + type = INSADEnergyAdvection + variable = T use_displaced_mesh = true - [../] - - # z-momentum, time - [./z_momentum_time] - type = INSADMomentumTimeDerivative - variable = vel_z + [] + [temperature_time] + type = INSADHeatConductionTimeDerivative + variable = T use_displaced_mesh = true - [../] - - # z-momentum, space - [./z_momentum_space] - type = INSADMomentumBase - variable = vel_z - u = vel_x - v = vel_y - w = vel_z - p = p - component = 2 + [] + [temperature_conduction] + type = ADHeatConduction + variable = T + thermal_conductivity = 'k' use_displaced_mesh = true - [../] - - # temperature - [./temperature_time] - type = INSADTemperatureTimeDerivative - variable = T - use_displaced_mesh = true - [../] - - [./temperature_space] - type = INSADTemperature - variable = T - u = vel_x - v = vel_y - w = vel_z - p = p - use_displaced_mesh = true - [../] - [mesh_T] - type = INSTemperatureConvectedMesh - variable = T - disp_x = disp_x - disp_y = disp_y - disp_z = disp_z - use_displaced_mesh = true - [] + [] + [temperature_supg] + type = INSADEnergySUPG + variable = T + velocity = vel + use_displaced_mesh = true + [] [] [BCs] - [./x_no_disp] + [x_no_disp] type = DirichletBC variable = disp_x boundary = 'back' value = 0 - [../] - [./y_no_disp] + [] + [y_no_disp] type = DirichletBC variable = disp_y boundary = 'back' value = 0 - [../] - [./z_no_disp] + [] + [z_no_disp] type = DirichletBC variable = disp_z boundary = 'back' value = 0 - [../] - - [./x_no_slip] - type = DirichletBC - variable = vel_x - boundary = 'bottom right left top back' - value = 0.0 - [../] - - [./y_no_slip] - type = DirichletBC - variable = vel_y - boundary = 'bottom right left top back' - value = 0.0 - [../] - - [./z_no_slip] - type = DirichletBC - variable = vel_z + [] + [no_slip] + type = ADVectorFunctionDirichletBC + variable = vel boundary = 'bottom right left top back' - value = 0.0 - [../] - - [./T_cold] + [] + [T_cold] type = DirichletBC variable = T boundary = 'back' value = 300 - [../] -[] - -[ADBCs] - [./radiation_flux] + [] + [radiation_flux] type = RadiationEnergyFluxBC variable = T boundary = 'front' @@ -266,9 +172,8 @@ surfacetemp=300 sb_constant = 'sb_constant' absorptivity = 'abs' use_displaced_mesh = true - [../] - - [./weld_flux] + [] + [weld_flux] type = GaussianWeldEnergyFluxBC variable = T boundary = 'front' @@ -279,79 +184,71 @@ surfacetemp=300 y_beam_coord = '2e-4 * sin(t * 2 * pi / ${period})' z_beam_coord = 0 use_displaced_mesh = true - [../] - - [./vapor_recoil_x] + [] + [vapor_recoil] type = VaporRecoilPressureMomentumFluxBC - variable = vel_x + variable = vel boundary = 'front' - component = 0 use_displaced_mesh = true - [../] - - [./vapor_recoil_y] - type = VaporRecoilPressureMomentumFluxBC - variable = vel_y - boundary = 'front' - component = 1 - use_displaced_mesh = true - [../] - - [./vapor_recoil_z] - type = VaporRecoilPressureMomentumFluxBC - variable = vel_z - boundary = 'front' - component = 2 - use_displaced_mesh = true - [../] - -[./displace_x_top] + [] + [displace_x_top] type = DisplaceBoundaryBC boundary = 'front' variable = 'disp_x' - velocity = 'vel_x' - [../] - [./displace_y_top] + velocity = 'vel' + component = 0 + [] + [displace_y_top] type = DisplaceBoundaryBC boundary = 'front' variable = 'disp_y' - velocity = 'vel_y' - [../] - [./displace_z_top] + velocity = 'vel' + component = 1 + [] + [displace_z_top] type = DisplaceBoundaryBC boundary = 'front' variable = 'disp_z' - velocity = 'vel_z' - [../] + velocity = 'vel' + component = 2 + [] [] -[ADMaterials] - [./kc_fits] +[Materials] + [ins_mat] + type = INSADStabilized3Eqn + velocity = vel + pressure = p + temperature = T + use_displaced_mesh = true + [] + [kc_fits] type = CrazyKCPlantFits temperature = T beta = 1e7 - [../] - [./boundary] + [] + [boundary] type = CrazyKCPlantFitsBoundary boundary = 'front' temperature = T - [../] + [] [] [Materials] - [./const] + [const] type = GenericConstantMaterial prop_names = 'abs sb_constant' prop_values = '1 5.67e-8' - [../] + [] [] [Preconditioning] - [./SMP] + [SMP] type = SMP full = true - solve_type = 'NEWTON' - [../] + petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_mat_solver_type' + petsc_options_value = 'lu NONZERO strumpack' + [] [] [Executioner] @@ -359,34 +256,28 @@ surfacetemp=300 end_time = ${endtime} dtmin = 1e-8 dtmax = ${timestep} - petsc_options = '-snes_converged_reason -ksp_converged_reason -options_left -ksp_monitor_singular_value' - petsc_options_iname = '-ksp_gmres_restart -pc_type' - petsc_options_value = '100 asm' - + petsc_options = '-snes_converged_reason -ksp_converged_reason -options_left' + solve_type = 'NEWTON' line_search = 'none' nl_max_its = 12 l_max_its = 100 - [./TimeStepper] + [TimeStepper] type = IterationAdaptiveDT optimal_iterations = 7 dt = ${timestep} linear_iteration_ratio = 1e6 growth_factor = 1.5 - [../] + [] [] [Outputs] - print_linear_residuals = false - [./exodus] + [exodus] type = Exodus output_material_properties = true show_material_properties = 'mu' - [../] - [./dofmap] - type = DOFMap - execute_on = 'initial' - [../] + [] checkpoint = true + perf_graph = true [] [Debug] @@ -398,114 +289,114 @@ surfacetemp=300 marker = combo max_h_level = 4 - [./Indicators] - # [./error_x] + [Indicators] + # [error_x] # type = GradientJumpIndicator # variable = vel_x - # [../] - # [./error_y] + # [] + # [error_y] # type = GradientJumpIndicator # variable = vel_y - # [../] - # [./error_z] + # [] + # [error_z] # type = GradientJumpIndicator # variable = vel_z - # [../] - # [./error_p] + # [] + # [error_p] # type = GradientJumpIndicator # variable = p - # [../] - [./error_T] + # [] + [error_T] type = GradientJumpIndicator variable = T - [../] - # [./error_dispx] + [] + # [error_dispx] # type = GradientJumpIndicator # variable = disp_x - # [../] - # [./error_dispy] + # [] + # [error_dispy] # type = GradientJumpIndicator # variable = disp_y - # [../] - [./error_dispz] + # [] + [error_dispz] type = GradientJumpIndicator variable = disp_z - [../] - [../] + [] + [] - [./Markers] - # [./errorfrac_x] + [Markers] + # [errorfrac_x] # type = ErrorFractionMarker # refine = 0.7 # coarsen = 0.3 # indicator = error_x - # [../] - # [./errorfrac_y] + # [] + # [errorfrac_y] # type = ErrorFractionMarker # refine = 0.7 # coarsen = 0.3 # indicator = error_y - # [../] - # [./errorfrac_z] + # [] + # [errorfrac_z] # type = ErrorFractionMarker # refine = 0.7 # coarsen = 0.3 # indicator = error_z - # [../] - # [./errorfrac_p] + # [] + # [errorfrac_p] # type = ErrorFractionMarker # refine = 0.7 # coarsen = 0.3 # indicator = error_p - # [../] - [./errorfrac_T] + # [] + [errorfrac_T] type = ErrorFractionMarker refine = 0.4 coarsen = 0.2 indicator = error_T - [../] - # [./errorfrac_dispx] + [] + # [errorfrac_dispx] # type = ErrorFractionMarker # refine = 0.7 # coarsen = 0.3 # indicator = error_dispx - # [../] - # [./errorfrac_dispy] + # [] + # [errorfrac_dispy] # type = ErrorFractionMarker # refine = 0.7 # coarsen = 0.3 # indicator = error_dispy - # [../] - [./errorfrac_dispz] + # [] + [errorfrac_dispz] type = ErrorFractionMarker refine = 0.4 coarsen = 0.2 indicator = error_dispz - [../] - [./combo] + [] + [combo] type = ComboMarker markers = 'errorfrac_T errorfrac_dispz' - [../] - [../] + [] + [] [] [Postprocessors] - [./num_dofs] + [num_dofs] type = NumDOFs system = 'NL' - [../] - [./nl] + [] + [nl] type = NumNonlinearIterations - [../] - [./tot_nl] + [] + [tot_nl] type = CumulativeValuePostprocessor postprocessor = 'nl' - [../] - [./linear] + [] + [linear] type = NumLinearIterations - [../] - [./tot_linear] + [] + [tot_linear] type = CumulativeValuePostprocessor postprocessor = 'linear' - [../] + [] []