LCOV - code coverage report
Current view: top level - models - surfaceconductivityoperator.hpp (source / functions) Coverage Total Hit
Test: Palace Coverage Report Lines: 0.0 % 2 0
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_SURFACE_CONDUCTIVITY_OPERATOR_HPP
       5              : #define PALACE_MODELS_SURFACE_CONDUCTIVITY_OPERATOR_HPP
       6              : 
       7              : #include <vector>
       8              : #include <mfem.hpp>
       9              : 
      10              : namespace palace
      11              : {
      12              : 
      13              : class IoData;
      14              : class MaterialOperator;
      15              : class MaterialPropertyCoefficient;
      16              : 
      17              : //
      18              : // A class handling finite conductivity boundaries.
      19              : //
      20            0 : class SurfaceConductivityOperator
      21              : {
      22              : private:
      23              :   // Reference to material property data (not owned).
      24              :   const MaterialOperator &mat_op;
      25              : 
      26              :   // Surface properties for finite conductivity boundary attributes: conductor conductivity
      27              :   // and permeability, and (optionally) thickness.
      28            0 :   struct ConductivityData
      29              :   {
      30              :     double sigma, mu, h;
      31              :     mfem::Array<int> attr_list;
      32              :   };
      33              :   std::vector<ConductivityData> boundaries;
      34              : 
      35              :   void SetUpBoundaryProperties(const IoData &iodata, const mfem::ParMesh &mesh);
      36              :   void PrintBoundaryInfo(const IoData &iodata, const mfem::ParMesh &mesh);
      37              : 
      38              : public:
      39              :   SurfaceConductivityOperator(const IoData &iodata, const MaterialOperator &mat_op,
      40              :                               const mfem::ParMesh &mesh);
      41              : 
      42              :   // Returns array of finite conductivity boundary attributes.
      43              :   mfem::Array<int> GetAttrList() const;
      44              : 
      45              :   // Add contributions to system matrix for a finite conductivity boundary condition.
      46              :   void AddExtraSystemBdrCoefficients(double omega, MaterialPropertyCoefficient &fbr,
      47              :                                      MaterialPropertyCoefficient &fbi);
      48              : };
      49              : 
      50              : }  // namespace palace
      51              : 
      52              : #endif  // PALACE_MODELS_SURFACE_CONDUCTIVITY_OPERATOR_HPP
        

Generated by: LCOV version 2.0-1