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 
17 {
19  params.addClassDescription(
20  "Multiple smooth circles with manually specified radii and center points");
21  params.addRequiredParam<std::vector<Real>>("x_positions",
22  "The x-coordinate for each circle center");
23  params.addRequiredParam<std::vector<Real>>("y_positions",
24  "The y-coordinate for each circle center");
25  params.addRequiredParam<std::vector<Real>>("z_positions",
26  "The z-coordinate for each circle center");
27  params.addRequiredParam<std::vector<Real>>("radii", "The radius for each circle");
28 
29  return params;
30 }
31 
33  : SmoothCircleBaseIC(parameters),
34  _x_positions(getParam<std::vector<Real>>("x_positions")),
35  _y_positions(getParam<std::vector<Real>>("y_positions")),
36  _z_positions(getParam<std::vector<Real>>("z_positions")),
37  _input_radii(getParam<std::vector<Real>>("radii"))
38 {
39 }
40 
41 void
43 {
44  _radii.resize(_input_radii.size());
45 
46  for (unsigned int circ = 0; circ < _input_radii.size(); ++circ)
47  _radii[circ] = _input_radii[circ];
48 }
49 
50 void
52 {
53  _centers.resize(_x_positions.size());
54 
55  for (unsigned int circ = 0; circ < _x_positions.size(); ++circ)
56  {
57  _centers[circ](0) = _x_positions[circ];
58  _centers[circ](1) = _y_positions[circ];
59  _centers[circ](2) = _z_positions[circ];
60  }
61 }
static InputParameters validParams()
std::vector< Real > _input_radii
std::vector< Real > _radii
SpecifiedSmoothCircleIC(const InputParameters &parameters)
std::vector< Point > _centers
SpecifiedsmoothCircleIC creates multiple SmoothCircles (number = size of x_positions) that are positi...
void addRequiredParam(const std::string &name, const std::string &doc_string)
std::vector< Real > _x_positions
SmoothcircleBaseIC is the base class for all initial conditions that create circles.
static InputParameters validParams()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
std::vector< Real > _z_positions
std::vector< Real > _y_positions
void addClassDescription(const std::string &doc_string)
registerMooseObject("PhaseFieldApp", SpecifiedSmoothCircleIC)