LCOV - code coverage report
Current view: top level - src/tensor_computes - LBMMacroscopicNeumannBC.C (source / functions) Hit Total Coverage
Test: idaholab/swift: #92 (25e020) with base b3cd84 Lines: 0 32 0.0 %
Date: 2025-09-10 17:10:32 Functions: 0 9 0.0 %
Legend: Lines: hit not hit

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

Generated by: LCOV version 1.14