www.mooseframework.org
SpecifiedSmoothCircleIC.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 
11 #include "MooseRandom.h"
12 
14 
15 template <>
16 InputParameters
18 {
19  InputParameters params = validParams<SmoothCircleBaseIC>();
20  params.addClassDescription(
21  "Multiple smooth circles with manually specified radii and center points");
22  params.addRequiredParam<std::vector<Real>>("x_positions",
23  "The x-coordinate for each circle center");
24  params.addRequiredParam<std::vector<Real>>("y_positions",
25  "The y-coordinate for each circle center");
26  params.addRequiredParam<std::vector<Real>>("z_positions",
27  "The z-coordinate for each circle center");
28  params.addRequiredParam<std::vector<Real>>("radii", "The radius for each circle");
29 
30  return params;
31 }
32 
33 SpecifiedSmoothCircleIC::SpecifiedSmoothCircleIC(const InputParameters & parameters)
34  : SmoothCircleBaseIC(parameters),
35  _x_positions(getParam<std::vector<Real>>("x_positions")),
36  _y_positions(getParam<std::vector<Real>>("y_positions")),
37  _z_positions(getParam<std::vector<Real>>("z_positions")),
38  _input_radii(getParam<std::vector<Real>>("radii"))
39 {
40 }
41 
42 void
44 {
45  _radii.resize(_input_radii.size());
46 
47  for (unsigned int circ = 0; circ < _input_radii.size(); ++circ)
48  _radii[circ] = _input_radii[circ];
49 }
50 
51 void
53 {
54  _centers.resize(_x_positions.size());
55 
56  for (unsigned int circ = 0; circ < _x_positions.size(); ++circ)
57  {
58  _centers[circ](0) = _x_positions[circ];
59  _centers[circ](1) = _y_positions[circ];
60  _centers[circ](2) = _z_positions[circ];
61  }
62 }
SmoothCircleBaseIC::_centers
std::vector< Point > _centers
Definition: SmoothCircleBaseIC.h:54
registerMooseObject
registerMooseObject("PhaseFieldApp", SpecifiedSmoothCircleIC)
validParams< SpecifiedSmoothCircleIC >
InputParameters validParams< SpecifiedSmoothCircleIC >()
Definition: SpecifiedSmoothCircleIC.C:17
validParams< SmoothCircleBaseIC >
InputParameters validParams< SmoothCircleBaseIC >()
Definition: SmoothCircleBaseIC.C:18
SpecifiedSmoothCircleIC::_input_radii
std::vector< Real > _input_radii
Definition: SpecifiedSmoothCircleIC.h:38
SmoothCircleBaseIC
SmoothcircleBaseIC is the base class for all initial conditions that create circles.
Definition: SmoothCircleBaseIC.h:26
SpecifiedSmoothCircleIC::computeCircleRadii
virtual void computeCircleRadii()
Definition: SpecifiedSmoothCircleIC.C:43
SpecifiedSmoothCircleIC
SpecifiedsmoothCircleIC creates multiple SmoothCircles (number = size of x_positions) that are positi...
Definition: SpecifiedSmoothCircleIC.h:26
SmoothCircleBaseIC::_radii
std::vector< Real > _radii
Definition: SmoothCircleBaseIC.h:55
SpecifiedSmoothCircleIC::_z_positions
std::vector< Real > _z_positions
Definition: SpecifiedSmoothCircleIC.h:37
SpecifiedSmoothCircleIC::computeCircleCenters
virtual void computeCircleCenters()
Definition: SpecifiedSmoothCircleIC.C:52
SpecifiedSmoothCircleIC::_x_positions
std::vector< Real > _x_positions
Definition: SpecifiedSmoothCircleIC.h:35
SpecifiedSmoothCircleIC::_y_positions
std::vector< Real > _y_positions
Definition: SpecifiedSmoothCircleIC.h:36
SpecifiedSmoothCircleIC.h
SpecifiedSmoothCircleIC::SpecifiedSmoothCircleIC
SpecifiedSmoothCircleIC(const InputParameters &parameters)
Definition: SpecifiedSmoothCircleIC.C:33