Quinoa all test code coverage report
Current view: top level - PDE - ConfigureMultiSpecies.hpp (source / functions) Hit Total Coverage
Commit: -128-NOTFOUND Lines: 0 17 0.0 %
Date: 2024-11-22 09:12:55 Functions: 0 5 0.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 0 20 0.0 %

           Branch data     Line data    Source code
       1                 :            : // *****************************************************************************
       2                 :            : /*!
       3                 :            :   \file      src/PDE/ConfigureMultiSpecies.hpp
       4                 :            :   \copyright 2012-2015 J. Bakosi,
       5                 :            :              2016-2018 Los Alamos National Security, LLC.,
       6                 :            :              2019-2021 Triad National Security, LLC.
       7                 :            :              All rights reserved. See the LICENSE file for details.
       8                 :            :   \brief     Register and compile configuration for multi-species compressible
       9                 :            :      flow PDE
      10                 :            : */
      11                 :            : // *****************************************************************************
      12                 :            : #ifndef ConfigureMultiSpecies_h
      13                 :            : #define ConfigureMultiSpecies_h
      14                 :            : 
      15                 :            : #include <set>
      16                 :            : #include <map>
      17                 :            : #include <vector>
      18                 :            : 
      19                 :            : #include "PDEFactory.hpp"
      20                 :            : #include "Inciter/InputDeck/InputDeck.hpp"
      21                 :            : #include "Inciter/Options/PDE.hpp"
      22                 :            : #include "PDE/MultiSpecies/MultiSpeciesIndexing.hpp"
      23                 :            : #include "ContainerUtil.hpp"
      24                 :            : 
      25                 :            : namespace inciter {
      26                 :            : 
      27                 :            : extern ctr::InputDeck g_inputdeck;
      28                 :            : 
      29                 :            : //! Register compressible flow PDEs into PDE factory
      30                 :            : void
      31                 :            : registerMultiSpecies( DGFactory& df, FVFactory& ff,
      32                 :            :   std::set< ctr::PDEType >& fvt, std::set< ctr::PDEType >& dgt );
      33                 :            : 
      34                 :            : //! Return information on the multi-species compressible flow PDE
      35                 :            : std::vector< std::pair< std::string, std::string > >
      36                 :            : infoMultiSpecies( std::map< ctr::PDEType, tk::ncomp_t >& cnt );
      37                 :            : 
      38                 :            : /** @name Functions that compute physics variables from the numerical solution for MultiSpecies */
      39                 :            : ///@{
      40                 :            : 
      41                 :            : #if defined(__clang__)
      42                 :            :   #pragma clang diagnostic push
      43                 :            :   #pragma clang diagnostic ignored "-Wunused-function"
      44                 :            : #endif
      45                 :            : 
      46                 :            : namespace multispecies {
      47                 :            : 
      48                 :            : //! Compute mixture density for output to file
      49                 :            : //! \note Must follow the signature in tk::GetVarFn
      50                 :            : //! \param[in] U Numerical solution
      51                 :            : //! \param[in] rdof Number of reconstructed solution DOFs
      52                 :            : //! \return Bulk density ready to be output to file
      53                 :            : static tk::GetVarFn::result_type
      54                 :          0 : mixDensityOutVar( const tk::Fields& U, std::size_t rdof )
      55                 :            : {
      56                 :            :   using tk::operator+=;
      57                 :          0 :   auto nspec = g_inputdeck.get< tag::multispecies, tag::nspec >();
      58                 :          0 :   auto r = U.extract_comp( densityDofIdx(nspec,0,rdof,0) );
      59         [ -  - ]:          0 :   for (std::size_t k=1; k<nspec; ++k)
      60 [ -  - ][ -  - ]:          0 :     r += U.extract_comp( densityDofIdx(nspec,k,rdof,0) );
                 [ -  - ]
      61                 :          0 :   return r;
      62                 :            : }
      63                 :            : 
      64                 :            : ////! Compute pressure for output to file
      65                 :            : ////! \note Must follow the signature in tk::GetVarFn
      66                 :            : ////! \param[in] U Numerical solution
      67                 :            : ////! \param[in] rdof Number of reconstructed solution DOFs
      68                 :            : ////! \return Pressure ready to be output to file
      69                 :            : //static tk::GetVarFn::result_type
      70                 :            : //pressureOutVar( const tk::Fields& U, std::size_t rdof )
      71                 :            : //{
      72                 :            : //  using tk::operator+=;
      73                 :            : //  auto nspec = g_inputdeck.get< tag::multispecies, tag::nspec >();
      74                 :            : //  auto p = U.extract_comp( pressureDofIdx(nspec,0,rdof,0) );
      75                 :            : //  for (std::size_t k=1; k<nspec; ++k)
      76                 :            : //    p += U.extract_comp( pressureDofIdx(nspec,k,rdof,0) );
      77                 :            : //  return p;
      78                 :            : //}
      79                 :            : 
      80                 :            : //! Compute specific total energy (energy per unit volume) for output to file
      81                 :            : //! \note Must follow the signature in tk::GetVarFn
      82                 :            : //! \param[in] U Numerical solution
      83                 :            : //! \param[in] rdof Number of reconstructed solution DOFs
      84                 :            : //! \return Specific total energy ready to be output to file
      85                 :            : static tk::GetVarFn::result_type
      86                 :          0 : specificTotalEnergyOutVar( const tk::Fields& U, std::size_t rdof )
      87                 :            : {
      88                 :          0 :   auto nspec = g_inputdeck.get< tag::multispecies, tag::nspec >();
      89                 :          0 :   return U.extract_comp( energyDofIdx(nspec,0,rdof,0) );
      90                 :            : }
      91                 :            : 
      92                 :            : //! Compute velocity component for output to file
      93                 :            : //! \note Must follow the signature in tk::GetVarFn
      94                 :            : //! \tparam dir Physical direction, encoded as 0:x, 1:y, 2:z
      95                 :            : //! \param[in] U Numerical solution
      96                 :            : //! \param[in] rdof Number of reconstructed solution DOFs
      97                 :            : //! \return Velocity component ready to be output to file
      98                 :            : template< tk::ncomp_t dir >
      99                 :            : tk::GetVarFn::result_type
     100                 :          0 : velocityOutVar( const tk::Fields& U, std::size_t rdof )
     101                 :            : {
     102                 :            :   using tk::operator/=;
     103                 :            :   using tk::operator+=;
     104                 :          0 :   auto nspec = g_inputdeck.get< tag::multispecies, tag::nspec >();
     105                 :            : 
     106                 :            :   // mixture density
     107                 :          0 :   auto r = U.extract_comp( densityDofIdx(nspec,0,rdof,0) );
     108         [ -  - ]:          0 :   for (std::size_t k=1; k<nspec; ++k)
     109 [ -  - ][ -  - ]:          0 :     r += U.extract_comp( densityDofIdx(nspec,k,rdof,0) );
                 [ -  - ]
     110                 :            : 
     111                 :            :   // momentum
     112         [ -  - ]:          0 :   auto u = U.extract_comp( momentumDofIdx(nspec,dir,rdof,0) );
     113                 :            : 
     114                 :            :   // velocity
     115         [ -  - ]:          0 :   u /= r;
     116                 :            : 
     117                 :          0 :   return u;
     118                 :            : }
     119                 :            : 
     120                 :            : } // multispecies::
     121                 :            : 
     122                 :            : #if defined(__clang__)
     123                 :            :   #pragma clang diagnostic pop
     124                 :            : #endif
     125                 :            : 
     126                 :            : //@}
     127                 :            : 
     128                 :            : } // inciter::
     129                 :            : 
     130                 :            : #endif // ConfigureMultiSpecies_h

Generated by: LCOV version 1.14