LCOV - code coverage report
Current view: top level - models - farfieldboundaryoperator.hpp (source / functions) Coverage Total Hit
Test: Palace Coverage Report Lines: 50.0 % 2 1
Test Date: 2025-10-23 22:45:05 Functions: - 0 0
Legend: Lines: hit not hit

            Line data    Source code
       1              : // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
       2              : // SPDX-License-Identifier: Apache-2.0
       3              : 
       4              : #ifndef PALACE_MODELS_FARFIELD_BOUNDARY_OPERATOR_HPP
       5              : #define PALACE_MODELS_FARFIELD_BOUNDARY_OPERATOR_HPP
       6              : 
       7              : #include <mfem.hpp>
       8              : 
       9              : namespace palace
      10              : {
      11              : 
      12              : class IoData;
      13              : class MaterialOperator;
      14              : class MaterialPropertyCoefficient;
      15              : 
      16              : //
      17              : // A class handling farfield, or absorbing, boundaries.
      18              : //
      19            0 : class FarfieldBoundaryOperator
      20              : {
      21              : private:
      22              :   // Reference to material property data (not owned).
      23              :   const MaterialOperator &mat_op;
      24              : 
      25              :   // List of all absorbing boundary condition attributes.
      26              :   mfem::Array<int> farfield_attr;
      27              : 
      28              :   // First- or second-order absorbing boundary condition.
      29              :   int order;
      30              : 
      31              :   mfem::Array<int> SetUpBoundaryProperties(const IoData &iodata, const mfem::ParMesh &mesh);
      32              : 
      33              : public:
      34              :   FarfieldBoundaryOperator(const IoData &iodata, const MaterialOperator &mat_op,
      35              :                            const mfem::ParMesh &mesh);
      36              : 
      37              :   // Returns array of farfield BC attributes.
      38           17 :   const auto &GetAttrList() const { return farfield_attr; }
      39              : 
      40              :   // Returns order of absorbing BC approximation.
      41              :   int GetOrder() const { return order; }
      42              : 
      43              :   // Add contributions to system matrices from first- or second-order absorbing boundary
      44              :   // condition.
      45              :   void AddDampingBdrCoefficients(double coeff, MaterialPropertyCoefficient &fb);
      46              :   void AddExtraSystemBdrCoefficients(double omega, MaterialPropertyCoefficient &dfbr,
      47              :                                      MaterialPropertyCoefficient &dfbi);
      48              : };
      49              : 
      50              : }  // namespace palace
      51              : 
      52              : #endif  // PALACE_MODELS_FARFIELD_BOUNDARY_OPERATOR_HPP
        

Generated by: LCOV version 2.0-1