-
Notifications
You must be signed in to change notification settings - Fork 1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Move pieces relevant to laser welding to MOOSE
- Loading branch information
Showing
13 changed files
with
1,134 additions
and
0 deletions.
There are no files selected for viewing
30 changes: 30 additions & 0 deletions
30
modules/heat_conduction/include/bcs/GaussianWeldEnergyFluxBC.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
/****************************************************************************/ | ||
/* DO NOT MODIFY THIS HEADER */ | ||
/* */ | ||
/* MALAMUTE: MOOSE Application Library for Advanced Manufacturing UTilitiEs */ | ||
/* */ | ||
/* Copyright 2021 - 2023, Battelle Energy Alliance, LLC */ | ||
/* ALL RIGHTS RESERVED */ | ||
/****************************************************************************/ | ||
|
||
#pragma once | ||
|
||
#include "ADIntegratedBC.h" | ||
|
||
class GaussianWeldEnergyFluxBC : public ADIntegratedBC | ||
{ | ||
public: | ||
static InputParameters validParams(); | ||
|
||
GaussianWeldEnergyFluxBC(const InputParameters & params); | ||
|
||
protected: | ||
virtual ADReal computeQpResidual() override; | ||
|
||
const Real _reff; | ||
const Real _F0; | ||
const Real _R; | ||
const Function & _x_beam_coord; | ||
const Function & _y_beam_coord; | ||
const Function & _z_beam_coord; | ||
}; |
27 changes: 27 additions & 0 deletions
27
modules/heat_conduction/include/bcs/RadiationEnergyFluxBC.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
/****************************************************************************/ | ||
/* DO NOT MODIFY THIS HEADER */ | ||
/* */ | ||
/* MALAMUTE: MOOSE Application Library for Advanced Manufacturing UTilitiEs */ | ||
/* */ | ||
/* Copyright 2021 - 2023, Battelle Energy Alliance, LLC */ | ||
/* ALL RIGHTS RESERVED */ | ||
/****************************************************************************/ | ||
|
||
#pragma once | ||
|
||
#include "ADIntegratedBC.h" | ||
|
||
class RadiationEnergyFluxBC : public ADIntegratedBC | ||
{ | ||
public: | ||
static InputParameters validParams(); | ||
|
||
RadiationEnergyFluxBC(const InputParameters & parameters); | ||
|
||
protected: | ||
virtual ADReal computeQpResidual() override; | ||
|
||
const ADMaterialProperty<Real> & _sb_constant; | ||
const ADMaterialProperty<Real> & _absorptivity; | ||
const Real _ff_temp; | ||
}; |
49 changes: 49 additions & 0 deletions
49
modules/heat_conduction/src/bcs/GaussianWeldEnergyFluxBC.C
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
/****************************************************************************/ | ||
/* DO NOT MODIFY THIS HEADER */ | ||
/* */ | ||
/* MALAMUTE: MOOSE Application Library for Advanced Manufacturing UTilitiEs */ | ||
/* */ | ||
/* Copyright 2021 - 2023, Battelle Energy Alliance, LLC */ | ||
/* ALL RIGHTS RESERVED */ | ||
/****************************************************************************/ | ||
|
||
#include "GaussianWeldEnergyFluxBC.h" | ||
#include "Function.h" | ||
|
||
registerMooseObject("MalamuteApp", GaussianWeldEnergyFluxBC); | ||
|
||
InputParameters | ||
GaussianWeldEnergyFluxBC::validParams() | ||
{ | ||
InputParameters params = ADIntegratedBC::validParams(); | ||
params.addRequiredParam<Real>("reff", | ||
"The effective radius describing the radial distribution of the " | ||
"beam energy. This should be non-dimensional."); | ||
params.addRequiredParam<Real>("F0", "The average heat flux of the laser"); | ||
params.addRequiredParam<Real>("R", "The beam radius"); | ||
params.addParam<FunctionName>("x_beam_coord", 0, "The x coordinate of the center of the beam"); | ||
params.addParam<FunctionName>("y_beam_coord", 0, "The y coordinate of the center of the beam"); | ||
params.addParam<FunctionName>("z_beam_coord", 0, "The z coordinate of the center of the beam"); | ||
return params; | ||
} | ||
|
||
GaussianWeldEnergyFluxBC::GaussianWeldEnergyFluxBC(const InputParameters & params) | ||
: ADIntegratedBC(params), | ||
_reff(getParam<Real>("reff")), | ||
_F0(getParam<Real>("F0")), | ||
_R(getParam<Real>("R")), | ||
_x_beam_coord(getFunction("x_beam_coord")), | ||
_y_beam_coord(getFunction("y_beam_coord")), | ||
_z_beam_coord(getFunction("z_beam_coord")) | ||
{ | ||
} | ||
|
||
ADReal | ||
GaussianWeldEnergyFluxBC::computeQpResidual() | ||
{ | ||
RealVectorValue beam_coords{_x_beam_coord.value(_t, _q_point[_qp]), | ||
_y_beam_coord.value(_t, _q_point[_qp]), | ||
_z_beam_coord.value(_t, _q_point[_qp])}; | ||
auto r = (_ad_q_points[_qp] - beam_coords).norm(); | ||
return -_test[_i][_qp] * 2. * _reff * _F0 * std::exp(-_reff * r * r / (_R * _R)); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
/****************************************************************************/ | ||
/* DO NOT MODIFY THIS HEADER */ | ||
/* */ | ||
/* MALAMUTE: MOOSE Application Library for Advanced Manufacturing UTilitiEs */ | ||
/* */ | ||
/* Copyright 2021 - 2023, Battelle Energy Alliance, LLC */ | ||
/* ALL RIGHTS RESERVED */ | ||
/****************************************************************************/ | ||
|
||
#include "RadiationEnergyFluxBC.h" | ||
|
||
registerMooseObject("MalamuteApp", RadiationEnergyFluxBC); | ||
|
||
InputParameters | ||
RadiationEnergyFluxBC::validParams() | ||
{ | ||
InputParameters params = ADIntegratedBC::validParams(); | ||
params.addClassDescription("Computes heat flux due to radiation"); | ||
params.addParam<MaterialPropertyName>( | ||
"sb_constant", "sb_constant", "The stefan-boltzmann constant"); | ||
params.addParam<MaterialPropertyName>("absorptivity", "abs", "The absorptivity of the material"); | ||
params.addRequiredParam<Real>("ff_temp", "The far field temperature"); | ||
return params; | ||
} | ||
|
||
RadiationEnergyFluxBC::RadiationEnergyFluxBC(const InputParameters & parameters) | ||
: ADIntegratedBC(parameters), | ||
_sb_constant(getADMaterialProperty<Real>("sb_constant")), | ||
_absorptivity(getADMaterialProperty<Real>("absorptivity")), | ||
_ff_temp(getParam<Real>("ff_temp")) | ||
{ | ||
} | ||
|
||
ADReal | ||
RadiationEnergyFluxBC::computeQpResidual() | ||
{ | ||
auto u2 = _u[_qp] * _u[_qp]; | ||
auto u4 = u2 * u2; | ||
auto ff2 = _ff_temp * _ff_temp; | ||
auto ff4 = ff2 * ff2; | ||
return _test[_i][_qp] * _absorptivity[_qp] * _sb_constant[_qp] * (u4 - ff4); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
/****************************************************************************/ | ||
/* DO NOT MODIFY THIS HEADER */ | ||
/* */ | ||
/* MALAMUTE: MOOSE Application Library for Advanced Manufacturing UTilitiEs */ | ||
/* */ | ||
/* Copyright 2021 - 2023, Battelle Energy Alliance, LLC */ | ||
/* ALL RIGHTS RESERVED */ | ||
/****************************************************************************/ | ||
|
||
#pragma once | ||
|
||
#include "ADNodalBC.h" | ||
|
||
class DisplaceBoundaryBC : public ADNodalBC | ||
{ | ||
public: | ||
static InputParameters validParams(); | ||
|
||
DisplaceBoundaryBC(const InputParameters & parameters); | ||
|
||
protected: | ||
virtual ADReal computeQpResidual() override; | ||
|
||
const ADReal & _velocity; | ||
const Real & _u_old; | ||
}; |
25 changes: 25 additions & 0 deletions
25
modules/navier_stokes/include/bcs/VaporRecoilPressureMomentumFluxBC.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
/****************************************************************************/ | ||
/* DO NOT MODIFY THIS HEADER */ | ||
/* */ | ||
/* MALAMUTE: MOOSE Application Library for Advanced Manufacturing UTilitiEs */ | ||
/* */ | ||
/* Copyright 2021 - 2023, Battelle Energy Alliance, LLC */ | ||
/* ALL RIGHTS RESERVED */ | ||
/****************************************************************************/ | ||
|
||
#pragma once | ||
|
||
#include "ADVectorIntegratedBC.h" | ||
|
||
class VaporRecoilPressureMomentumFluxBC : public ADVectorIntegratedBC | ||
{ | ||
public: | ||
static InputParameters validParams(); | ||
|
||
VaporRecoilPressureMomentumFluxBC(const InputParameters & parameters); | ||
|
||
protected: | ||
virtual ADReal computeQpResidual() override; | ||
|
||
const ADMaterialProperty<Real> & _rc_pressure; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
/****************************************************************************/ | ||
/* DO NOT MODIFY THIS HEADER */ | ||
/* */ | ||
/* MALAMUTE: MOOSE Application Library for Advanced Manufacturing UTilitiEs */ | ||
/* */ | ||
/* Copyright 2021 - 2023, Battelle Energy Alliance, LLC */ | ||
/* ALL RIGHTS RESERVED */ | ||
/****************************************************************************/ | ||
|
||
#include "DisplaceBoundaryBC.h" | ||
|
||
registerMooseObject("MalamuteApp", DisplaceBoundaryBC); | ||
|
||
InputParameters | ||
DisplaceBoundaryBC::validParams() | ||
{ | ||
InputParameters params = ADNodalBC::validParams(); | ||
params.addClassDescription("For displacing a boundary"); | ||
params.addRequiredCoupledVar("velocity", "The velocity at which to displace"); | ||
return params; | ||
} | ||
|
||
DisplaceBoundaryBC::DisplaceBoundaryBC(const InputParameters & parameters) | ||
: ADNodalBC(parameters), | ||
_velocity(adCoupledNodalValue<Real>("velocity")), | ||
_u_old(_var.nodalValueOld()) | ||
{ | ||
} | ||
|
||
ADReal | ||
DisplaceBoundaryBC::computeQpResidual() | ||
{ | ||
return _u - (_u_old + this->_dt * _velocity); | ||
} |
37 changes: 37 additions & 0 deletions
37
modules/navier_stokes/src/bcs/VaporRecoilPressureMomentumFluxBC.C
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
/****************************************************************************/ | ||
/* DO NOT MODIFY THIS HEADER */ | ||
/* */ | ||
/* MALAMUTE: MOOSE Application Library for Advanced Manufacturing UTilitiEs */ | ||
/* */ | ||
/* Copyright 2021 - 2023, Battelle Energy Alliance, LLC */ | ||
/* ALL RIGHTS RESERVED */ | ||
/****************************************************************************/ | ||
|
||
#include "VaporRecoilPressureMomentumFluxBC.h" | ||
|
||
registerMooseObject("MalamuteApp", VaporRecoilPressureMomentumFluxBC); | ||
|
||
InputParameters | ||
VaporRecoilPressureMomentumFluxBC::validParams() | ||
{ | ||
InputParameters params = ADVectorIntegratedBC::validParams(); | ||
params.addClassDescription("Vapor recoil pressure momentum flux"); | ||
params.addParam<MaterialPropertyName>("rc_pressure_name", "rc_pressure", "The recoil pressure"); | ||
params.addCoupledVar("temperature", "The temperature on which the recoil pressure depends"); | ||
return params; | ||
} | ||
|
||
VaporRecoilPressureMomentumFluxBC::VaporRecoilPressureMomentumFluxBC( | ||
const InputParameters & parameters) | ||
: ADVectorIntegratedBC(parameters), _rc_pressure(getADMaterialProperty<Real>("rc_pressure_name")) | ||
{ | ||
} | ||
|
||
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]; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
/****************************************************************************/ | ||
/* DO NOT MODIFY THIS HEADER */ | ||
/* */ | ||
/* MALAMUTE: MOOSE Application Library for Advanced Manufacturing UTilitiEs */ | ||
/* */ | ||
/* Copyright 2021 - 2023, Battelle Energy Alliance, LLC */ | ||
/* ALL RIGHTS RESERVED */ | ||
/****************************************************************************/ | ||
|
||
#pragma once | ||
|
||
#include "ADMaterial.h" | ||
|
||
/** | ||
* A material that couples a material property | ||
*/ | ||
class CrazyKCPlantFits : public ADMaterial | ||
{ | ||
public: | ||
static InputParameters validParams(); | ||
|
||
CrazyKCPlantFits(const InputParameters & parameters); | ||
|
||
protected: | ||
virtual void computeQpProperties(); | ||
|
||
const Real _c_mu0; | ||
const Real _c_mu1; | ||
const Real _c_mu2; | ||
const Real _c_mu3; | ||
const Real _Tmax; | ||
const Real _Tl; | ||
const Real _T90; | ||
const Real _beta; | ||
const Real _c_k0; | ||
const Real _c_k1; | ||
const Real _c_cp0; | ||
const Real _c_cp1; | ||
const Real _c_rho0; | ||
const ADVariableValue & _temperature; | ||
const ADVariableGradient & _grad_temperature; | ||
ADMaterialProperty<Real> & _mu; | ||
ADMaterialProperty<Real> & _k; | ||
ADMaterialProperty<Real> & _cp; | ||
ADMaterialProperty<Real> & _rho; | ||
ADMaterialProperty<RealVectorValue> & _grad_k; | ||
|
||
const Real _length_units_per_meter; | ||
const Real _temperature_units_per_kelvin; | ||
const Real _mass_units_per_kilogram; | ||
const Real _time_units_per_second; | ||
}; |
59 changes: 59 additions & 0 deletions
59
modules/navier_stokes/test/include/bcs/CrazyKCPlantFitsBoundary.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
/****************************************************************************/ | ||
/* DO NOT MODIFY THIS HEADER */ | ||
/* */ | ||
/* MALAMUTE: MOOSE Application Library for Advanced Manufacturing UTilitiEs */ | ||
/* */ | ||
/* Copyright 2021 - 2023, Battelle Energy Alliance, LLC */ | ||
/* ALL RIGHTS RESERVED */ | ||
/****************************************************************************/ | ||
|
||
#pragma once | ||
|
||
#include "ADMaterial.h" | ||
|
||
/** | ||
* A material that couples a material property | ||
*/ | ||
class CrazyKCPlantFitsBoundary : public ADMaterial | ||
{ | ||
public: | ||
static InputParameters validParams(); | ||
|
||
CrazyKCPlantFitsBoundary(const InputParameters & parameters); | ||
|
||
protected: | ||
virtual void computeQpProperties(); | ||
|
||
const Real _ap0; | ||
const Real _ap1; | ||
const Real _ap2; | ||
const Real _ap3; | ||
const Real _bp0; | ||
const Real _bp1; | ||
const Real _bp2; | ||
const Real _bp3; | ||
const Real _Tb; | ||
const Real _Tbound1; | ||
const Real _Tbound2; | ||
|
||
const ADVariableValue & _temperature; | ||
const ADVariableGradient & _grad_temperature; | ||
|
||
ADMaterialProperty<Real> & _rc_pressure; | ||
|
||
const Real _alpha; | ||
const Real _sigma0; | ||
const Real _T0; | ||
ADMaterialProperty<Real> & _surface_tension; | ||
ADMaterialProperty<RealVectorValue> & _grad_surface_tension; | ||
const MooseArray<ADPoint> & _ad_normals; | ||
const MooseArray<ADReal> & _ad_curvatures; | ||
ADMaterialProperty<RealVectorValue> & _surface_term_curvature; | ||
ADMaterialProperty<RealVectorValue> & _surface_term_gradient1; | ||
ADMaterialProperty<RealVectorValue> & _surface_term_gradient2; | ||
|
||
const Real _length_units_per_meter; | ||
const Real _temperature_units_per_kelvin; | ||
const Real _mass_units_per_kilogram; | ||
const Real _time_units_per_second; | ||
}; |
Oops, something went wrong.