LCOV - code coverage report
Current view: top level - src/tensor_computes - FFTGradient.C (source / functions) Hit Total Coverage
Test: idaholab/swift: #92 (25e020) with base b3cd84 Lines: 21 22 95.5 %
Date: 2025-09-10 17:10:32 Functions: 3 3 100.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 "FFTGradient.h"
      10             : #include "SwiftUtils.h"
      11             : 
      12             : registerMooseObject("SwiftApp", FFTGradient);
      13             : 
      14             : InputParameters
      15          24 : FFTGradient::validParams()
      16             : {
      17          24 :   InputParameters params = TensorOperator<>::validParams();
      18          24 :   params.addClassDescription("Tensor gradient.");
      19          48 :   params.addRequiredParam<TensorInputBufferName>("input", "Input buffer name");
      20          48 :   params.addParam<bool>("input_is_reciprocal", false, "Input buffer is already in reciprocal space");
      21          48 :   params.addRequiredParam<MooseEnum>(
      22          72 :       "direction", MooseEnum("X=0 Y=1 Z=2"), "Which axis to take the gradient along.");
      23          24 :   return params;
      24           0 : }
      25             : 
      26          12 : FFTGradient::FFTGradient(const InputParameters & parameters)
      27             :   : TensorOperator<>(parameters),
      28          12 :     _input(getInputBuffer("input")),
      29          24 :     _input_is_reciprocal(getParam<bool>("input_is_reciprocal")),
      30          24 :     _direction(getParam<MooseEnum>("direction")),
      31          24 :     _i(torch::tensor(c10::complex<double>(0.0, 1.0), MooseTensor::complexFloatTensorOptions()))
      32             : {
      33          12 : }
      34             : 
      35             : void
      36          12 : FFTGradient::computeBuffer()
      37             : {
      38          12 :   std::cout << "_x " << _direction << " = " << _x << std::endl;
      39          12 :   std::cout << "_y " << _direction << " = " << _y << std::endl;
      40          12 :   std::cout << "_z " << _direction << " = " << _z << std::endl;
      41             : 
      42          24 :   _u = _domain.ifft((_input_is_reciprocal ? _input : _domain.fft(_input)) *
      43          12 :                     _domain.getReciprocalAxis(_direction) * _i);
      44          12 : }

Generated by: LCOV version 1.14