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 "LBMMacroscopicDirichletBC.h" 10 : 11 : using namespace torch::indexing; 12 : 13 : registerMooseObject("SwiftApp", LBMMacroscopicDirichletBC); 14 : 15 : InputParameters 16 0 : LBMMacroscopicDirichletBC::validParams() 17 : { 18 0 : InputParameters params = LBMBoundaryCondition::validParams(); 19 0 : params.addClassDescription("LBMMacroscopicDirichletBC object"); 20 0 : params.addParam<std::string>("value", 21 : "0.0" 22 : "Value at the boundary"); 23 0 : return params; 24 0 : } 25 : 26 0 : LBMMacroscopicDirichletBC::LBMMacroscopicDirichletBC(const InputParameters & parameters) 27 : : LBMBoundaryCondition(parameters), 28 0 : _value(_lb_problem.getConstant<Real>(getParam<std::string>("value"))) 29 : { 30 0 : } 31 : 32 : void 33 0 : LBMMacroscopicDirichletBC::bottomBoundary() 34 : { 35 : // along y direction at y = 0 36 0 : _u.index_put_({Slice(), 0, Slice()}, _value); 37 0 : } 38 : 39 : void 40 0 : LBMMacroscopicDirichletBC::topBoundary() 41 : { 42 : // along y direction at y = N_y - 1 43 0 : _u.index_put_({Slice(), _grid_size[1] - 1, Slice()}, _value); 44 0 : } 45 : 46 : void 47 0 : LBMMacroscopicDirichletBC::leftBoundary() 48 : { 49 : // along x direction at x = 0 50 0 : _u.index_put_({0, Slice(), Slice()}, _value); 51 0 : } 52 : 53 : void 54 0 : LBMMacroscopicDirichletBC::rightBoundary() 55 : { 56 : // along x direction at x = N_x - 1 57 0 : _u.index_put_({_grid_size[0] - 1, Slice(), Slice()}, _value); 58 0 : } 59 : 60 : void 61 0 : LBMMacroscopicDirichletBC::frontBoundary() 62 : { 63 : // along z direction at z = 0 64 0 : _u.index_put_({Slice(), Slice(), 0}, _value); 65 0 : } 66 : 67 : void 68 0 : LBMMacroscopicDirichletBC::backBoundary() 69 : { 70 : // along z direction at z = N_z-1 71 0 : _u.index_put_({Slice(), Slice(), _grid_size[2] - 1}, _value); 72 0 : } 73 : 74 : void 75 0 : LBMMacroscopicDirichletBC::wallBoundary() 76 : { 77 : // TBD 78 0 : mooseError( 79 : "LBMMacroscopicDirichletBC::wallBoundary is not implemented, use LBMDirichletWallBC instead"); 80 : }