www.mooseframework.org
ThumbIC.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 "ThumbIC.h"
11 
12 registerMooseObject("PhaseFieldApp", ThumbIC);
13 
14 template <>
15 InputParameters
17 {
18  InputParameters params = validParams<InitialCondition>();
19  params.addClassDescription("Thumb shaped bicrystal for grain boundary mobility tests");
20  params.addRequiredParam<Real>("xcoord", "The x coordinate of the circle center");
21  params.addRequiredParam<Real>("width", "The y coordinate of the circle center");
22  params.addRequiredParam<Real>("height", "The z coordinate of the circle center");
23  params.addRequiredParam<Real>("invalue", "The variable value inside the circle");
24  params.addRequiredParam<Real>("outvalue", "The variable value outside the circle");
25  return params;
26 }
27 
28 ThumbIC::ThumbIC(const InputParameters & parameters)
29  : InitialCondition(parameters),
30  _xcoord(parameters.get<Real>("xcoord")),
31  _width(parameters.get<Real>("width")),
32  _height(parameters.get<Real>("height")),
33  _invalue(parameters.get<Real>("invalue")),
34  _outvalue(parameters.get<Real>("outvalue"))
35 {
36 }
37 
38 Real
39 ThumbIC::value(const Point & p)
40 {
41  Real value = 0.0;
42 
43  if (p(1) > _height)
44  {
45  Real rad = 0.0;
46  Point center(_xcoord, _height, 0.0);
47  for (unsigned int i = 0; i < 2; ++i)
48  rad += (p(i) - center(i)) * (p(i) - center(i));
49 
50  rad = sqrt(rad);
51 
52  if (rad <= _width / 2.0)
53  value = _invalue;
54  else
55  value = _outvalue;
56  }
57  else
58  {
59  if (p(0) > _xcoord - _width / 2.0 && p(0) < _xcoord + _width / 2.0)
60  value = _invalue;
61  else
62  value = _outvalue;
63  }
64 
65  return value;
66 }
ThumbIC::_xcoord
const Real _xcoord
Definition: ThumbIC.h:31
ThumbIC::ThumbIC
ThumbIC(const InputParameters &parameters)
Definition: ThumbIC.C:28
ThumbIC::_height
const Real _height
Definition: ThumbIC.h:33
ThumbIC
ThumbIC creates a rectangle with a half circle on top.
Definition: ThumbIC.h:23
ThumbIC::_invalue
const Real _invalue
Definition: ThumbIC.h:34
ThumbIC.h
ThumbIC::_width
const Real _width
Definition: ThumbIC.h:32
registerMooseObject
registerMooseObject("PhaseFieldApp", ThumbIC)
validParams< ThumbIC >
InputParameters validParams< ThumbIC >()
Definition: ThumbIC.C:16
ThumbIC::value
virtual Real value(const Point &p)
Definition: ThumbIC.C:39
ThumbIC::_outvalue
const Real _outvalue
Definition: ThumbIC.h:35