LCOV - code coverage report
Current view: top level - include/materials - PorousFlowMassFraction.h (source / functions) Hit Total Coverage
Test: porous_flow Test Coverage Lines: 1 1 100.0 %
Date: 2017-11-21 14:47:27 Functions: 2 2 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /****************************************************************/
       2             : /* MOOSE - Multiphysics Object Oriented Simulation Environment  */
       3             : /*                                                              */
       4             : /*          All contents are licensed under LGPL V2.1           */
       5             : /*             See LICENSE for full restrictions                */
       6             : /****************************************************************/
       7             : 
       8             : #ifndef POROUSFLOWMASSFRACTION_H
       9             : #define POROUSFLOWMASSFRACTION_H
      10             : 
      11             : #include "PorousFlowMaterialVectorBase.h"
      12             : 
      13             : // Forward Declarations
      14             : class PorousFlowMassFraction;
      15             : 
      16             : template <>
      17             : InputParameters validParams<PorousFlowMassFraction>();
      18             : 
      19             : /**
      20             :  * Material designed to form a std::vector<std::vector>
      21             :  * of mass fractions from the individual mass fraction variables
      22             :  */
      23        1098 : class PorousFlowMassFraction : public PorousFlowMaterialVectorBase
      24             : {
      25             : public:
      26             :   PorousFlowMassFraction(const InputParameters & parameters);
      27             : 
      28             : protected:
      29             :   /// Mass fraction matrix at quadpoint or nodes
      30             :   MaterialProperty<std::vector<std::vector<Real>>> & _mass_frac;
      31             : 
      32             :   /// Gradient of the mass fraction matrix at the quad points
      33             :   MaterialProperty<std::vector<std::vector<RealGradient>>> * const _grad_mass_frac;
      34             : 
      35             :   /// Derivative of the mass fraction matrix with respect to the porous flow variables
      36             :   MaterialProperty<std::vector<std::vector<std::vector<Real>>>> & _dmass_frac_dvar;
      37             : 
      38             :   virtual void initQpStatefulProperties() override;
      39             :   virtual void computeQpProperties() override;
      40             : 
      41             :   /**
      42             :    * Builds the mass-fraction variable matrix at the quad point
      43             :    * @param qp the quad point
      44             :    */
      45             :   void build_mass_frac(unsigned int qp);
      46             : 
      47             :   /**
      48             :    * Number of mass-fraction variables provided by the user
      49             :    * This needs to be _num_phases*(_num_components - 1), since the
      50             :    * mass fraction of the final component in each phase is
      51             :    * determined as 1 - sum_{components}(mass fraction of all other components in the phase)
      52             :    */
      53             :   const unsigned int _num_passed_mf_vars;
      54             : 
      55             :   /// the variable number of the mass-fraction variables
      56             :   std::vector<unsigned int> _mf_vars_num;
      57             : 
      58             :   /// the mass-fraction variables
      59             :   std::vector<const VariableValue *> _mf_vars;
      60             : 
      61             :   /// the gradient of the mass-fraction variables
      62             :   std::vector<const VariableGradient *> _grad_mf_vars;
      63             : };
      64             : 
      65             : #endif // POROUSFLOWMASSFRACTION_H

Generated by: LCOV version 1.11