LCOV - code coverage report
Current view: top level - src/ics - C1ICBase.C (source / functions) Hit Total Coverage
Test: idaholab/moose phase_field: #31405 (292dce) with base fef103 Lines: 24 30 80.0 %
Date: 2025-09-04 07:55:36 Functions: 3 4 75.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 "C1ICBase.h"
      11             : 
      12             : // Portions of this code Copyright 2007-2009 Roy Stogner
      13             : //
      14             : // Permission is hereby granted, free of charge, to any person obtaining
      15             : // a copy of this software and associated documentation files (the
      16             : //"Software"), to deal in the Software without restriction, including
      17             : // without limitation the rights to use, copy, modify, merge, publish,
      18             : // distribute, sublicense, and/or sell copies of the Software, and to
      19             : // permit persons to whom the Software is furnished to do so, subject to
      20             : // the following conditions:
      21             : //
      22             : // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
      23             : // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
      24             : // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
      25             : // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
      26             : // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
      27             : // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
      28             : // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
      29             : 
      30             : InputParameters
      31         507 : C1ICBase::validParams()
      32             : {
      33         507 :   InputParameters params = InitialCondition::validParams();
      34             : 
      35        1014 :   params.addParam<Real>("average", 0, "The average value");
      36        1014 :   params.addParam<Real>("amplitude", 1., "The amplitude");
      37        1014 :   params.addParam<Real>("length", 0.75, "The length");
      38        1014 :   params.addParam<Real>("width", .125, "The width");
      39        1014 :   params.addParam<Real>("buffer", 0.03125, "A small area between the max value and the interface");
      40        1014 :   params.addParam<Real>("interface", 0.03125, "The interface width");
      41             : 
      42         507 :   return params;
      43           0 : }
      44             : 
      45         266 : C1ICBase::C1ICBase(const InputParameters & parameters)
      46             :   : InitialCondition(parameters),
      47         266 :     _average(parameters.get<Real>("average")),
      48         266 :     _amplitude(parameters.get<Real>("amplitude")),
      49         266 :     _length(parameters.get<Real>("length")),
      50         266 :     _width(parameters.get<Real>("width")),
      51         266 :     _buffer(parameters.get<Real>("buffer")),
      52         532 :     _interface(parameters.get<Real>("interface"))
      53             : {
      54         266 : }
      55             : 
      56             : Number
      57      200640 : C1ICBase::interfaceValue(Real r)
      58             : {
      59      200640 :   Real x = (r - _buffer) / _interface;
      60             : 
      61      200640 :   if (x < 0.0)
      62       89116 :     return (_average + _amplitude);
      63      111524 :   if (x > 1.0)
      64       37244 :     return (_average - _amplitude);
      65             : 
      66       74280 :   return ((1.0 + 4.0 * x * x * x - 6.0 * x * x) * _amplitude + _average);
      67             : }
      68             : 
      69             : Number
      70           0 : C1ICBase::interfaceDerivative(Real r)
      71             : {
      72           0 :   Real x = (r - _buffer) / _interface;
      73             : 
      74           0 :   if (x < 0.0)
      75             :     return 0.0;
      76           0 :   if (x > 1.0)
      77             :     return 0.0;
      78             : 
      79           0 :   return ((12.0 * x * x - 12.0 * x) * _amplitude);
      80             : }

Generated by: LCOV version 1.14