LCOV - code coverage report
Current view: top level - src/base - FlowModel1PhaseBase.C (source / functions) Hit Total Coverage
Test: idaholab/moose thermal_hydraulics: #30301 (3b550b) with base 2ad78d Lines: 275 276 99.6 %
Date: 2025-07-30 13:02:48 Functions: 27 27 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : //* This file is part of the MOOSE framework
       2             : //* https://mooseframework.inl.gov
       3             : //*
       4             : //* All rights reserved, see COPYRIGHT for full restrictions
       5             : //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
       6             : //*
       7             : //* Licensed under LGPL 2.1, please see LICENSE for details
       8             : //* https://www.gnu.org/licenses/lgpl-2.1.html
       9             : 
      10             : #include "FlowModel1PhaseBase.h"
      11             : #include "FlowChannel1PhaseBase.h"
      12             : #include "THMNames.h"
      13             : 
      14             : InputParameters
      15        8320 : FlowModel1PhaseBase::validParams()
      16             : {
      17        8320 :   InputParameters params = FlowModel::validParams();
      18       16640 :   params.addRequiredParam<UserObjectName>("numerical_flux", "Numerical flux user object name");
      19       16640 :   params.addRequiredParam<MooseEnum>("rdg_slope_reconstruction",
      20             :                                      "Slope reconstruction type for rDG");
      21        8320 :   return params;
      22           0 : }
      23             : 
      24        4160 : FlowModel1PhaseBase::FlowModel1PhaseBase(const InputParameters & params)
      25             :   : FlowModel(params),
      26        4160 :     _rdg_slope_reconstruction(params.get<MooseEnum>("rdg_slope_reconstruction")),
      27        8320 :     _numerical_flux_name(params.get<UserObjectName>("numerical_flux"))
      28             : {
      29        4160 : }
      30             : 
      31             : void
      32        4048 : FlowModel1PhaseBase::addVariables()
      33             : {
      34        4048 :   FlowModel::addCommonVariables();
      35             : 
      36        4048 :   const std::vector<SubdomainName> & subdomains = _flow_channel.getSubdomainNames();
      37             : 
      38             :   // Nonlinear variables
      39        4048 :   _sim.addSimVariable(true, THM::RHOA, _fe_type, subdomains, getScalingFactorRhoA());
      40        4048 :   _sim.addSimVariable(true, THM::RHOUA, _fe_type, subdomains, getScalingFactorRhoUA());
      41        4048 :   _sim.addSimVariable(true, THM::RHOEA, _fe_type, subdomains, getScalingFactorRhoEA());
      42             : 
      43             :   // Auxiliary variables
      44        4048 :   _sim.addSimVariable(false, THM::DENSITY, _fe_type, subdomains);
      45        4048 :   if (_output_vector_velocity)
      46             :   {
      47        3028 :     _sim.addSimVariable(false, THM::VELOCITY_X, _fe_type, subdomains);
      48        3028 :     _sim.addSimVariable(false, THM::VELOCITY_Y, _fe_type, subdomains);
      49        6056 :     _sim.addSimVariable(false, THM::VELOCITY_Z, _fe_type, subdomains);
      50             :   }
      51             :   else
      52        2040 :     _sim.addSimVariable(false, THM::VELOCITY, _fe_type, subdomains);
      53        4048 :   _sim.addSimVariable(false, THM::PRESSURE, _fe_type, subdomains);
      54        4048 :   _sim.addSimVariable(false, THM::SPECIFIC_VOLUME, _fe_type, subdomains);
      55        4048 :   _sim.addSimVariable(false, THM::SPECIFIC_INTERNAL_ENERGY, _fe_type, subdomains);
      56        4048 :   _sim.addSimVariable(false, THM::TEMPERATURE, _fe_type, subdomains);
      57        4048 :   _sim.addSimVariable(false, THM::SPECIFIC_TOTAL_ENTHALPY, _fe_type, subdomains);
      58             : 
      59        4048 :   _solution_vars = solutionVariableNames();
      60        4048 :   _derivative_vars = solutionVariableNames();
      61        4048 : }
      62             : 
      63             : void
      64        4048 : FlowModel1PhaseBase::addInitialConditions()
      65             : {
      66        4048 :   FlowModel::addCommonInitialConditions();
      67             : 
      68        4048 :   if (ICParametersAreValid())
      69             :   {
      70        3986 :     addRhoAIC();
      71        3986 :     addRhoUAIC();
      72        3986 :     addRhoEAIC();
      73             : 
      74       11958 :     addFunctionIC(THM::PRESSURE, _flow_channel.getParam<FunctionName>("initial_p"));
      75       11958 :     addFunctionIC(THM::TEMPERATURE, _flow_channel.getParam<FunctionName>("initial_T"));
      76        3986 :     addVelocityIC();
      77        3986 :     addDensityIC();
      78        3986 :     addSpecificVolumeIC();
      79        3986 :     addSpecificInternalEnergyIC();
      80        3986 :     addSpecificTotalEnthalpyIC();
      81             :   }
      82        4048 : }
      83             : 
      84             : bool
      85        4067 : FlowModel1PhaseBase::ICParametersAreValid() const
      86             : {
      87             :   const auto & flow_channel_1phase_base =
      88        4067 :       dynamic_cast<const FlowChannel1PhaseBase &>(_flow_channel);
      89             : 
      90       16120 :   for (const auto & param : flow_channel_1phase_base.ICParameters())
      91       12115 :     if (!_flow_channel.isParamValid(param))
      92        4067 :       return false;
      93             : 
      94        4005 :   return true;
      95             : }
      96             : 
      97             : void
      98        8955 : FlowModel1PhaseBase::addFunctionIC(const VariableName & var_name,
      99             :                                    const FunctionName & function_name)
     100             : {
     101        8955 :   const std::string class_name = "FunctionIC";
     102        8955 :   InputParameters params = _factory.getValidParams(class_name);
     103        8955 :   params.set<VariableName>("variable") = var_name;
     104        8955 :   params.set<std::vector<SubdomainName>>("block") = _flow_channel.getSubdomainNames();
     105        8955 :   params.set<FunctionName>("function") = function_name;
     106       17910 :   _sim.addSimInitialCondition(class_name, genName(_comp_name, var_name + "_ic"), params);
     107       17910 : }
     108             : 
     109             : void
     110        3986 : FlowModel1PhaseBase::addRhoAIC()
     111             : {
     112        3986 :   const std::string class_name = "VariableProductIC";
     113        3986 :   InputParameters params = _factory.getValidParams(class_name);
     114        7972 :   params.set<VariableName>("variable") = THM::RHOA;
     115        7972 :   params.set<std::vector<SubdomainName>>("block") = _flow_channel.getSubdomainNames();
     116       15944 :   params.set<std::vector<VariableName>>("values") = {THM::DENSITY, THM::AREA};
     117        7972 :   _sim.addSimInitialCondition(class_name, genName(_comp_name, "rhoA_ic"), params);
     118        7972 : }
     119             : 
     120             : void
     121        3986 : FlowModel1PhaseBase::addRhoUAIC()
     122             : {
     123        3986 :   const std::string class_name = "VariableFunctionProductIC";
     124        3986 :   InputParameters params = _factory.getValidParams(class_name);
     125        7972 :   params.set<VariableName>("variable") = THM::RHOUA;
     126        7972 :   params.set<std::vector<SubdomainName>>("block") = _flow_channel.getSubdomainNames();
     127       11958 :   params.set<std::vector<VariableName>>("var") = {THM::RHOA};
     128       11958 :   params.set<FunctionName>("fn") = _flow_channel.getParam<FunctionName>("initial_vel");
     129        7972 :   _sim.addSimInitialCondition(class_name, genName(_comp_name, "rhouA_ic"), params);
     130        7972 : }
     131             : 
     132             : void
     133        3986 : FlowModel1PhaseBase::addVelocityIC()
     134             : {
     135        3986 :   if (_output_vector_velocity)
     136             :   {
     137       12088 :     std::vector<VariableName> var_name = {THM::VELOCITY_X, THM::VELOCITY_Y, THM::VELOCITY_Z};
     138       12088 :     for (const auto i : make_range(Moose::dim))
     139             :     {
     140        9066 :       const std::string class_name = "VectorVelocityIC";
     141        9066 :       InputParameters params = _factory.getValidParams(class_name);
     142        9066 :       params.set<VariableName>("variable") = var_name[i];
     143       27198 :       params.set<FunctionName>("vel_fn") = _flow_channel.getParam<FunctionName>("initial_vel");
     144        9066 :       params.set<std::vector<SubdomainName>>("block") = _flow_channel.getSubdomainNames();
     145        9066 :       params.set<unsigned int>("component") = i;
     146       18132 :       _sim.addSimInitialCondition(class_name, genName(_comp_name, "vel_ic", i), params);
     147        9066 :     }
     148        3022 :   }
     149             :   else
     150        2892 :     addFunctionIC(THM::VELOCITY, _flow_channel.getParam<FunctionName>("initial_vel"));
     151        3986 : }
     152             : 
     153             : void
     154        3986 : FlowModel1PhaseBase::addSpecificVolumeIC()
     155             : {
     156        3986 :   const std::string class_name = "SpecificVolumeIC";
     157        3986 :   InputParameters params = _factory.getValidParams(class_name);
     158        7972 :   params.set<VariableName>("variable") = THM::SPECIFIC_VOLUME;
     159        7972 :   params.set<std::vector<SubdomainName>>("block") = _flow_channel.getSubdomainNames();
     160       11958 :   params.set<std::vector<VariableName>>("rhoA") = {THM::RHOA};
     161       11958 :   params.set<std::vector<VariableName>>("A") = {THM::AREA};
     162        7972 :   _sim.addSimInitialCondition(class_name, genName(_comp_name, "v_ic"), params);
     163        7972 : }
     164             : 
     165             : void
     166        3986 : FlowModel1PhaseBase::addSpecificInternalEnergyIC()
     167             : {
     168        3986 :   const std::string class_name = "SpecificInternalEnergyIC";
     169        3986 :   InputParameters params = _factory.getValidParams(class_name);
     170        7972 :   params.set<VariableName>("variable") = THM::SPECIFIC_INTERNAL_ENERGY;
     171        7972 :   params.set<std::vector<SubdomainName>>("block") = _flow_channel.getSubdomainNames();
     172       11958 :   params.set<std::vector<VariableName>>("rhoA") = {THM::RHOA};
     173       11958 :   params.set<std::vector<VariableName>>("rhouA") = {THM::RHOUA};
     174       11958 :   params.set<std::vector<VariableName>>("rhoEA") = {THM::RHOEA};
     175        7972 :   _sim.addSimInitialCondition(class_name, genName(_comp_name, "e_ic"), params);
     176        7972 : }
     177             : 
     178             : void
     179        3986 : FlowModel1PhaseBase::addSpecificTotalEnthalpyIC()
     180             : {
     181        3986 :   const std::string class_name = "SpecificTotalEnthalpyIC";
     182        3986 :   InputParameters params = _factory.getValidParams(class_name);
     183        7972 :   params.set<VariableName>("variable") = THM::SPECIFIC_TOTAL_ENTHALPY;
     184        7972 :   params.set<std::vector<SubdomainName>>("block") = _flow_channel.getSubdomainNames();
     185       11958 :   params.set<std::vector<VariableName>>("p") = {THM::PRESSURE};
     186       11958 :   params.set<std::vector<VariableName>>("rhoA") = {THM::RHOA};
     187       11958 :   params.set<std::vector<VariableName>>("rhoEA") = {THM::RHOEA};
     188       11958 :   params.set<std::vector<VariableName>>("A") = {THM::AREA};
     189        7972 :   _sim.addSimInitialCondition(class_name, genName(_comp_name, "H_ic"), params);
     190        7972 : }
     191             : 
     192             : void
     193        4048 : FlowModel1PhaseBase::addMooseObjects()
     194             : {
     195        4048 :   FlowModel::addCommonMooseObjects();
     196             : 
     197        4048 :   addKernels();
     198        4048 :   addDGKernels();
     199        4048 :   addAuxKernels();
     200        4048 :   addFluidPropertiesMaterials();
     201        4048 :   addNumericalFluxUserObject();
     202        4048 :   addRDGMooseObjects();
     203        4048 : }
     204             : 
     205             : void
     206        4048 : FlowModel1PhaseBase::addKernels()
     207             : {
     208             :   // Mass equation
     209        8096 :   addTimeDerivativeKernelIfTransient(THM::RHOA);
     210             : 
     211             :   // Momentum equation
     212        4048 :   addTimeDerivativeKernelIfTransient(THM::RHOUA);
     213        4048 :   addMomentumAreaGradientKernel();
     214        4048 :   addMomentumFrictionKernel();
     215        4048 :   addMomentumGravityKernel();
     216             : 
     217             :   // Energy equation
     218        4048 :   addTimeDerivativeKernelIfTransient(THM::RHOEA);
     219        4048 :   addEnergyGravityKernel();
     220        4048 : }
     221             : 
     222             : void
     223       12163 : FlowModel1PhaseBase::addTimeDerivativeKernelIfTransient(const VariableName & var_name)
     224             : {
     225       12163 :   if (_flow_channel.problemIsTransient())
     226             :   {
     227       12106 :     const std::string class_name = "ADTimeDerivative";
     228       12106 :     InputParameters params = _factory.getValidParams(class_name);
     229       24212 :     params.set<NonlinearVariableName>("variable") = var_name;
     230       12106 :     params.set<std::vector<SubdomainName>>("block") = _flow_channel.getSubdomainNames();
     231       24212 :     _sim.addKernel(class_name, genName(_comp_name, var_name + "_td"), params);
     232       12106 :   }
     233       12163 : }
     234             : 
     235             : void
     236        4048 : FlowModel1PhaseBase::addMomentumAreaGradientKernel()
     237             : {
     238        4048 :   const std::string class_name = "ADOneD3EqnMomentumAreaGradient";
     239        4048 :   InputParameters params = _factory.getValidParams(class_name);
     240        8096 :   params.set<NonlinearVariableName>("variable") = THM::RHOUA;
     241        8096 :   params.set<std::vector<SubdomainName>>("block") = _flow_channel.getSubdomainNames();
     242       12144 :   params.set<std::vector<VariableName>>("A") = {THM::AREA_LINEAR};
     243        8096 :   params.set<MaterialPropertyName>("direction") = THM::DIRECTION;
     244        8096 :   params.set<MaterialPropertyName>("p") = THM::PRESSURE;
     245        8096 :   _sim.addKernel(class_name, genName(_comp_name, "mom_area_grad"), params);
     246        8096 : }
     247             : 
     248             : void
     249        4048 : FlowModel1PhaseBase::addMomentumFrictionKernel()
     250             : {
     251        4048 :   const std::string class_name = "ADOneD3EqnMomentumFriction";
     252        4048 :   InputParameters params = _factory.getValidParams(class_name);
     253        8096 :   params.set<NonlinearVariableName>("variable") = THM::RHOUA;
     254        8096 :   params.set<std::vector<SubdomainName>>("block") = _flow_channel.getSubdomainNames();
     255       12144 :   params.set<std::vector<VariableName>>("A") = {THM::AREA};
     256        8096 :   params.set<MaterialPropertyName>("D_h") = {THM::HYDRAULIC_DIAMETER};
     257        8096 :   params.set<MaterialPropertyName>("rho") = THM::DENSITY;
     258        8096 :   params.set<MaterialPropertyName>("vel") = THM::VELOCITY;
     259        8096 :   params.set<MaterialPropertyName>("f_D") = THM::FRICTION_FACTOR_DARCY;
     260        8096 :   _sim.addKernel(class_name, genName(_comp_name, "mom_friction"), params);
     261        8096 : }
     262             : 
     263             : void
     264        4048 : FlowModel1PhaseBase::addMomentumGravityKernel()
     265             : {
     266        4048 :   const std::string class_name = "ADOneD3EqnMomentumGravity";
     267        4048 :   InputParameters params = _factory.getValidParams(class_name);
     268        8096 :   params.set<NonlinearVariableName>("variable") = THM::RHOUA;
     269        8096 :   params.set<std::vector<SubdomainName>>("block") = _flow_channel.getSubdomainNames();
     270       12144 :   params.set<std::vector<VariableName>>("A") = {THM::AREA};
     271        8096 :   params.set<MaterialPropertyName>("direction") = THM::DIRECTION;
     272        8096 :   params.set<MaterialPropertyName>("rho") = THM::DENSITY;
     273        4048 :   params.set<RealVectorValue>("gravity_vector") = _gravity_vector;
     274        8096 :   _sim.addKernel(class_name, genName(_comp_name, "mom_gravity"), params);
     275        8096 : }
     276             : 
     277             : void
     278        4048 : FlowModel1PhaseBase::addEnergyGravityKernel()
     279             : {
     280        4048 :   const std::string class_name = "ADOneD3EqnEnergyGravity";
     281        4048 :   InputParameters params = _factory.getValidParams(class_name);
     282        8096 :   params.set<NonlinearVariableName>("variable") = THM::RHOEA;
     283        8096 :   params.set<std::vector<SubdomainName>>("block") = _flow_channel.getSubdomainNames();
     284       12144 :   params.set<std::vector<VariableName>>("A") = {THM::AREA};
     285        8096 :   params.set<MaterialPropertyName>("direction") = THM::DIRECTION;
     286        8096 :   params.set<MaterialPropertyName>("rho") = THM::DENSITY;
     287        8096 :   params.set<MaterialPropertyName>("vel") = THM::VELOCITY;
     288        4048 :   params.set<RealVectorValue>("gravity_vector") = _gravity_vector;
     289        8096 :   _sim.addKernel(class_name, genName(_comp_name, "energy_gravity"), params);
     290        8096 : }
     291             : 
     292             : void
     293        4048 : FlowModel1PhaseBase::addDGKernels()
     294             : {
     295        4048 : }
     296             : 
     297             : void
     298        4048 : FlowModel1PhaseBase::addAuxKernels()
     299             : {
     300        4048 :   addPressureAux();
     301        4048 :   addTemperatureAux();
     302        4048 :   addVelocityAux();
     303        4048 :   addDensityAux();
     304        4048 :   addSpecificVolumeAux();
     305        4048 :   addSpecificInternalEnergyAux();
     306        4048 :   addSpecificTotalEnthalpyAux();
     307        4048 : }
     308             : 
     309             : void
     310        4048 : FlowModel1PhaseBase::addVelocityAux()
     311             : {
     312        4048 :   if (_output_vector_velocity)
     313             :   {
     314       12112 :     std::vector<AuxVariableName> var_names = {THM::VELOCITY_X, THM::VELOCITY_Y, THM::VELOCITY_Z};
     315       12112 :     for (const auto i : make_range(Moose::dim))
     316             :     {
     317        9084 :       const std::string class_name = "ADVectorVelocityComponentAux";
     318        9084 :       InputParameters params = _factory.getValidParams(class_name);
     319        9084 :       params.set<AuxVariableName>("variable") = var_names[i];
     320       18168 :       params.set<std::vector<SubdomainName>>("block") = _flow_channel.getSubdomainNames();
     321       27252 :       params.set<std::vector<VariableName>>("arhoA") = {THM::RHOA};
     322       27252 :       params.set<std::vector<VariableName>>("arhouA") = {THM::RHOUA};
     323       18168 :       params.set<MaterialPropertyName>("direction") = THM::DIRECTION;
     324        9084 :       params.set<unsigned int>("component") = i;
     325       36336 :       params.set<ExecFlagEnum>("execute_on") = {EXEC_INITIAL, EXEC_TIMESTEP_END};
     326        9084 :       _sim.addAuxKernel(class_name, genName(_comp_name, i, "vel_vec"), params);
     327        9084 :     }
     328        3028 :   }
     329             :   else
     330             :   {
     331        1020 :     const std::string class_name = "QuotientAux";
     332        1020 :     InputParameters params = _factory.getValidParams(class_name);
     333        2040 :     params.set<AuxVariableName>("variable") = THM::VELOCITY;
     334        2040 :     params.set<std::vector<SubdomainName>>("block") = _flow_channel.getSubdomainNames();
     335        3060 :     params.set<std::vector<VariableName>>("numerator") = {THM::RHOUA};
     336        3060 :     params.set<std::vector<VariableName>>("denominator") = {THM::RHOA};
     337        4080 :     params.set<ExecFlagEnum>("execute_on") = {EXEC_INITIAL, EXEC_TIMESTEP_END};
     338        2040 :     _sim.addAuxKernel(class_name, genName(_comp_name, "vel"), params);
     339        1020 :   }
     340       14152 : }
     341             : 
     342             : void
     343        4048 : FlowModel1PhaseBase::addDensityAux()
     344             : {
     345        4048 :   const std::string class_name = "QuotientAux";
     346        4048 :   InputParameters params = _factory.getValidParams(class_name);
     347        8096 :   params.set<AuxVariableName>("variable") = THM::DENSITY;
     348        8096 :   params.set<std::vector<SubdomainName>>("block") = _flow_channel.getSubdomainNames();
     349       12144 :   params.set<std::vector<VariableName>>("numerator") = {THM::RHOA};
     350       12144 :   params.set<std::vector<VariableName>>("denominator") = {THM::AREA};
     351       16192 :   params.set<ExecFlagEnum>("execute_on") = {EXEC_INITIAL, EXEC_TIMESTEP_END};
     352        8096 :   _sim.addAuxKernel(class_name, genName(_comp_name, "rho_aux"), params);
     353       12144 : }
     354             : 
     355             : void
     356        4048 : FlowModel1PhaseBase::addSpecificVolumeAux()
     357             : {
     358        4048 :   const std::string class_name = "THMSpecificVolumeAux";
     359        4048 :   InputParameters params = _factory.getValidParams(class_name);
     360        8096 :   params.set<AuxVariableName>("variable") = THM::SPECIFIC_VOLUME;
     361        8096 :   params.set<std::vector<SubdomainName>>("block") = _flow_channel.getSubdomainNames();
     362       12144 :   params.set<std::vector<VariableName>>("rhoA") = {THM::RHOA};
     363       12144 :   params.set<std::vector<VariableName>>("A") = {THM::AREA};
     364       16192 :   params.set<ExecFlagEnum>("execute_on") = {EXEC_INITIAL, EXEC_TIMESTEP_END};
     365        8096 :   _sim.addAuxKernel(class_name, genName(_comp_name, "v_aux"), params);
     366       12144 : }
     367             : 
     368             : void
     369        4048 : FlowModel1PhaseBase::addSpecificInternalEnergyAux()
     370             : {
     371        4048 :   const std::string class_name = "THMSpecificInternalEnergyAux";
     372        4048 :   InputParameters params = _factory.getValidParams(class_name);
     373        8096 :   params.set<AuxVariableName>("variable") = THM::SPECIFIC_INTERNAL_ENERGY;
     374        8096 :   params.set<std::vector<SubdomainName>>("block") = _flow_channel.getSubdomainNames();
     375       12144 :   params.set<std::vector<VariableName>>("rhoA") = {THM::RHOA};
     376       12144 :   params.set<std::vector<VariableName>>("rhouA") = {THM::RHOUA};
     377       12144 :   params.set<std::vector<VariableName>>("rhoEA") = {THM::RHOEA};
     378       16192 :   params.set<ExecFlagEnum>("execute_on") = {EXEC_INITIAL, EXEC_TIMESTEP_END};
     379        8096 :   _sim.addAuxKernel(class_name, genName(_comp_name, "e_aux"), params);
     380       12144 : }
     381             : 
     382             : void
     383        4048 : FlowModel1PhaseBase::addSpecificTotalEnthalpyAux()
     384             : {
     385        4048 :   const std::string class_name = "SpecificTotalEnthalpyAux";
     386        4048 :   InputParameters params = _factory.getValidParams(class_name);
     387        8096 :   params.set<AuxVariableName>("variable") = THM::SPECIFIC_TOTAL_ENTHALPY;
     388        8096 :   params.set<std::vector<SubdomainName>>("block") = _flow_channel.getSubdomainNames();
     389       12144 :   params.set<std::vector<VariableName>>("rhoA") = {THM::RHOA};
     390       12144 :   params.set<std::vector<VariableName>>("rhoEA") = {THM::RHOEA};
     391       12144 :   params.set<std::vector<VariableName>>("p") = {THM::PRESSURE};
     392       12144 :   params.set<std::vector<VariableName>>("A") = {THM::AREA};
     393       16192 :   params.set<ExecFlagEnum>("execute_on") = {EXEC_INITIAL, EXEC_TIMESTEP_END};
     394        8096 :   _sim.addAuxKernel(class_name, genName(_comp_name, "H_auxkernel"), params);
     395       12144 : }
     396             : 
     397             : void
     398        4048 : FlowModel1PhaseBase::addRDGMooseObjects()
     399             : {
     400        4048 :   addSlopeReconstructionMaterial();
     401        4048 :   addRDGAdvectionDGKernels();
     402        4048 : }

Generated by: LCOV version 1.14