LCOV - code coverage report
Current view: top level - src/kernels - CHBulkPFCTrad.C (source / functions) Hit Total Coverage
Test: idaholab/moose phase_field: #31405 (292dce) with base fef103 Lines: 17 19 89.5 %
Date: 2025-09-04 07:55:36 Functions: 3 3 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 "CHBulkPFCTrad.h"
      11             : 
      12             : registerMooseObject("PhaseFieldApp", CHBulkPFCTrad);
      13             : 
      14             : InputParameters
      15          39 : CHBulkPFCTrad::validParams()
      16             : {
      17          39 :   InputParameters params = CHBulk<Real>::validParams();
      18          39 :   params.addClassDescription(
      19             :       "Cahn-Hilliard kernel for a polynomial phase field crystal free energy.");
      20          39 :   return params;
      21           0 : }
      22             : 
      23          20 : CHBulkPFCTrad::CHBulkPFCTrad(const InputParameters & parameters)
      24             :   : CHBulk<Real>(parameters),
      25          20 :     _C0(getMaterialProperty<Real>("C0")),
      26          40 :     _a(getMaterialProperty<Real>("a")),
      27          60 :     _b(getMaterialProperty<Real>("b"))
      28             : {
      29          20 : }
      30             : 
      31             : RealGradient
      32     3759700 : CHBulkPFCTrad::computeGradDFDCons(PFFunctionType type)
      33             : {
      34     3759700 :   Real d2fdc2 = 1.0 - _C0[_qp] - _a[_qp] * _u[_qp] + _b[_qp] * _u[_qp] * _u[_qp];
      35             : 
      36     3759700 :   switch (type)
      37             :   {
      38     2149300 :     case Residual:
      39     2149300 :       return d2fdc2 * _grad_u[_qp];
      40             : 
      41     1610400 :     case Jacobian:
      42             :     {
      43     1610400 :       Real d3fdc3 = -_a[_qp] + 2.0 * _b[_qp] * _u[_qp];
      44     1610400 :       return d2fdc2 * _grad_phi[_j][_qp] + d3fdc3 * _grad_u[_qp] * _phi[_j][_qp];
      45             :     }
      46             :   }
      47             : 
      48           0 :   mooseError("Invalid type passed in");
      49             : }

Generated by: LCOV version 1.14