Line data Source code
1 : /**********************************************************************/ 2 : /* DO NOT MODIFY THIS HEADER */ 3 : /* Swift, a Fourier spectral solver for MOOSE */ 4 : /* */ 5 : /* Copyright 2024 Battelle Energy Alliance, LLC */ 6 : /* ALL RIGHTS RESERVED */ 7 : /**********************************************************************/ 8 : 9 : #include "ComputeReynoldsNumber.h" 10 : #include "TensorProblem.h" 11 : 12 : registerMooseObject("SwiftApp", ComputeReynoldsNumber); 13 : 14 : InputParameters 15 0 : ComputeReynoldsNumber::validParams() 16 : { 17 0 : InputParameters params = TensorPostprocessor::validParams(); 18 0 : params.addRequiredParam<std::string>("tau", "Fluid viscosity"); 19 0 : params.addRequiredParam<std::string>("diameter", "Characteristic diamaeter"); 20 0 : params.addClassDescription("Compute Reynolds number."); 21 0 : return params; 22 0 : } 23 : 24 0 : ComputeReynoldsNumber::ComputeReynoldsNumber(const InputParameters & parameters) 25 : : TensorPostprocessor(parameters), 26 0 : _tau(_tensor_problem.getConstant<Real>(getParam<std::string>("tau"))), 27 0 : _D(_tensor_problem.getConstant<Real>(getParam<std::string>("diameter"))) 28 : { 29 0 : } 30 : 31 : void 32 0 : ComputeReynoldsNumber::execute() 33 : { 34 0 : const Real kinematic_viscosity = 1.0 / sqrt(3.0) * (_tau - 0.5); 35 0 : const auto avg_speed = _u.sum().cpu().item<double>() / torch::numel(_u); 36 0 : _Reynolds_number = avg_speed * _D / kinematic_viscosity; 37 0 : } 38 : 39 : PostprocessorValue 40 0 : ComputeReynoldsNumber::getValue() const 41 : { 42 0 : return _Reynolds_number; 43 : }