GapHeatTransfer::GapHeatTransfer(const InputParameters & parameters) : IntegratedBC(parameters), _gap_geometry_params_set(false), _gap_geometry_type(GapConductance::PLATE), _quadrature(getParam<bool>("quadrature")), _slave_flux(!_quadrature ? &_sys.getVector("slave_flux") : NULL), _gap_conductance(getMaterialProperty<Real>("gap_conductance" + getParam<std::string>("appended_property_name"))), _gap_conductance_dT(getMaterialProperty<Real>( "gap_conductance" + getParam<std::string>("appended_property_name") + "_dT")), _min_gap(getParam<Real>("min_gap")), _max_gap(getParam<Real>("max_gap")), _gap_temp(0), _gap_distance(std::numeric_limits<Real>::max()), _edge_multiplier(1.0), _has_info(false), _disp_vars(3, libMesh::invalid_uint), _gap_distance_value(_quadrature ? _zero : coupledValue("gap_distance")), _gap_temp_value(_quadrature ? _zero : coupledValue("gap_temp")), _penetration_locator( !_quadrature ? NULL : &getQuadraturePenetrationLocator( parameters.get<BoundaryName>("paired_boundary"), getParam<std::vector<BoundaryName>>("boundary")[0], Utility::string_to_enum<Order>(parameters.get<MooseEnum>("order")))), _warnings(getParam<bool>("warnings")) { if (isParamValid("displacements")) { // modern parameter scheme for displacements for (unsigned int i = 0; i < coupledComponents("displacements"); ++i) _disp_vars[i] = coupled("displacements", i); } else { // Legacy parameter scheme for displacements if (isParamValid("disp_x")) _disp_vars[0] = coupled("disp_x"); if (isParamValid("disp_y")) _disp_vars[1] = coupled("disp_y"); if (isParamValid("disp_z")) _disp_vars[2] = coupled("disp_z"); // TODO: these are only used in one Bison test. Deprecate soon! } if (_quadrature) { if (!parameters.isParamValid("paired_boundary")) mooseError(std::string("No 'paired_boundary' provided for ") + _name); } else { if (!isCoupled("gap_distance")) mooseError(std::string("No 'gap_distance' provided for ") + _name); if (!isCoupled("gap_temp")) mooseError(std::string("No 'gap_temp' provided for ") + _name); } }
PenetrationAux::PenetrationAux(const InputParameters & parameters) : AuxKernel(parameters), // Here we cast the value of the MOOSE enum to an integer to the class-based enum. _quantity(getParam<MooseEnum>("quantity").getEnum<PenetrationAux::PA_ENUM>()), _penetration_locator( _nodal ? getPenetrationLocator( parameters.get<BoundaryName>("paired_boundary"), boundaryNames()[0], Utility::string_to_enum<Order>(parameters.get<MooseEnum>("order"))) : getQuadraturePenetrationLocator( parameters.get<BoundaryName>("paired_boundary"), boundaryNames()[0], Utility::string_to_enum<Order>(parameters.get<MooseEnum>("order")))) { if (parameters.isParamValid("tangential_tolerance")) _penetration_locator.setTangentialTolerance(getParam<Real>("tangential_tolerance")); if (parameters.isParamValid("normal_smoothing_distance")) _penetration_locator.setNormalSmoothingDistance(getParam<Real>("normal_smoothing_distance")); if (parameters.isParamValid("normal_smoothing_method")) _penetration_locator.setNormalSmoothingMethod( parameters.get<std::string>("normal_smoothing_method")); }
GapHeatTransfer::GapHeatTransfer(const InputParameters & parameters) :IntegratedBC(parameters), _gap_type_set(false), _gap_type(Moose::COORD_XYZ), _quadrature(getParam<bool>("quadrature")), _slave_flux(!_quadrature ? &_sys.getVector("slave_flux") : NULL), _gap_conductance(getMaterialProperty<Real>("gap_conductance"+getParam<std::string>("appended_property_name"))), _gap_conductance_dT(getMaterialProperty<Real>("gap_conductance"+getParam<std::string>("appended_property_name")+"_dT")), _min_gap(getParam<Real>("min_gap")), _max_gap(getParam<Real>("max_gap")), _gap_temp(0), _gap_distance(88888), _edge_multiplier(1.0), _has_info(false), _xdisp_coupled(isCoupled("disp_x")), _ydisp_coupled(isCoupled("disp_y")), _zdisp_coupled(isCoupled("disp_z")), _xdisp_var(_xdisp_coupled ? coupled("disp_x") : 0), _ydisp_var(_ydisp_coupled ? coupled("disp_y") : 0), _zdisp_var(_zdisp_coupled ? coupled("disp_z") : 0), _gap_distance_value(_quadrature ? _zero : coupledValue("gap_distance")), _gap_temp_value(_quadrature ? _zero : coupledValue("gap_temp")), _penetration_locator(!_quadrature ? NULL : &getQuadraturePenetrationLocator(parameters.get<BoundaryName>("paired_boundary"), getParam<std::vector<BoundaryName> >("boundary")[0], Utility::string_to_enum<Order>(parameters.get<MooseEnum>("order")))), _warnings(getParam<bool>("warnings")) { if (_quadrature) { if (!parameters.isParamValid("paired_boundary")) mooseError(std::string("No 'paired_boundary' provided for ") + _name); } else { if (!isCoupled("gap_distance")) mooseError(std::string("No 'gap_distance' provided for ") + _name); if (!isCoupled("gap_temp")) mooseError(std::string("No 'gap_temp' provided for ") + _name); } }
GapValueAux::GapValueAux(const InputParameters & parameters) : AuxKernel(parameters), _penetration_locator( _nodal ? getPenetrationLocator( parameters.get<BoundaryName>("paired_boundary"), boundaryNames()[0], Utility::string_to_enum<Order>(parameters.get<MooseEnum>("order"))) : getQuadraturePenetrationLocator( parameters.get<BoundaryName>("paired_boundary"), boundaryNames()[0], Utility::string_to_enum<Order>(parameters.get<MooseEnum>("order")))), _moose_var(_subproblem.getStandardVariable(_tid, getParam<VariableName>("paired_variable"))), _serialized_solution(_moose_var.sys().currentSolution()), _dof_map(_moose_var.dofMap()), _warnings(getParam<bool>("warnings")) { if (parameters.isParamValid("tangential_tolerance")) _penetration_locator.setTangentialTolerance(getParam<Real>("tangential_tolerance")); if (parameters.isParamValid("normal_smoothing_distance")) _penetration_locator.setNormalSmoothingDistance(getParam<Real>("normal_smoothing_distance")); if (parameters.isParamValid("normal_smoothing_method")) _penetration_locator.setNormalSmoothingMethod( parameters.get<std::string>("normal_smoothing_method")); Order pairedVarOrder(_moose_var.order()); Order gvaOrder(Utility::string_to_enum<Order>(parameters.get<MooseEnum>("order"))); if (pairedVarOrder != gvaOrder && pairedVarOrder != CONSTANT) mooseError("ERROR: specified order for GapValueAux (", Utility::enum_to_string<Order>(gvaOrder), ") does not match order for paired_variable \"", _moose_var.name(), "\" (", Utility::enum_to_string<Order>(pairedVarOrder), ")"); }