コード例 #1
0
InputParameters
validParams<BimodalSuperellipsoidsIC>()
{
  InputParameters params = validParams<SpecifiedSmoothSuperellipsoidIC>();
  params.addClassDescription("Bimodal size distribution of large particles (specified in input "
                             "file) and small particles (placed randomly outside the larger "
                             "particles)");
  params.addRequiredParam<unsigned int>("npart", "The number of random (small) particles to place");
  params.addRequiredParam<Real>(
      "small_spac",
      "minimum spacing between small particles, measured from closest edge to closest edge");
  params.addRequiredParam<Real>("large_spac",
                                "minimum spacing between large and small particles, "
                                "measured from closest edge to closest edge");
  params.addRequiredParam<Real>(
      "small_a", "Mean semiaxis a value for the randomly placed (small) superellipsoids");
  params.addRequiredParam<Real>(
      "small_b", "Mean semiaxis b value for the randomly placed (small) superellipsoids");
  params.addRequiredParam<Real>(
      "small_c", "Mean semiaxis c value for the randomly placed (small) superellipsoids");
  params.addRequiredParam<Real>("small_n",
                                "Exponent n for the randomly placed (small) superellipsoids");
  params.addParam<Real>("size_variation",
                        0.0,
                        "Plus or minus fraction of random variation in the "
                        "semiaxes for uniform, standard deviation for "
                        "normal");
  MooseEnum rand_options("uniform normal none", "none");
  params.addParam<MooseEnum>(
      "size_variation_type", rand_options, "Type of distribution that random semiaxes will follow");
  params.addParam<unsigned int>(
      "numtries", 1000, "The number of tries to place the random particles");
  return params;
}
コード例 #2
0
InputParameters
validParams<MultiSmoothSuperellipsoidIC>()
{
  InputParameters params = validParams<SmoothSuperellipsoidBaseIC>();
  params.addClassDescription("Random distribution of smooth ellipse with given minimum spacing");
  params.addRequiredParam<std::vector<unsigned int>>("numbub",
                                                     "Vector of the number of bubbles to place");
  params.addRequiredParam<std::vector<Real>>(
      "bubspac",
      "Vector of the minimum spacing of bubbles of one type, measured from center to center");
  params.addParam<unsigned int>("max_num_tries", 1000, "The number of tries");
  params.addRequiredParam<std::vector<Real>>(
      "semiaxis_a", "Vector of mean semiaxis values in the x direction for the ellipse");
  params.addRequiredParam<std::vector<Real>>(
      "semiaxis_b", "Vector of mean semiaxis values in the y direction for the ellipse");
  params.addRequiredParam<std::vector<Real>>("semiaxis_c",
                                             "Vector of mean semiaxis values in the z direction "
                                             "for the ellipse, must be greater than 0 even if 2D.");
  params.addParam<std::vector<Real>>(
      "exponent",
      std::vector<Real>(),
      "Vector of exponents for each superellipsoid, n=2 is a normal ellipse");
  params.addParam<std::vector<Real>>("semiaxis_a_variation",
                                     std::vector<Real>(),
                                     "Vector of plus or minus fractions of random variation in the "
                                     "bubble semiaxis in the x direction for uniform, standard "
                                     "deviation for normal");
  params.addParam<std::vector<Real>>("semiaxis_b_variation",
                                     std::vector<Real>(),
                                     "Vector of plus or minus fractions of random variation in the "
                                     "bubble semiaxis in the y direction for uniform, standard "
                                     "deviation for normal");
  params.addParam<std::vector<Real>>("semiaxis_c_variation",
                                     std::vector<Real>(),
                                     "Vector of plus or minus fractions of random variation in the "
                                     "bubble semiaxis in the z direction for uniform, standard "
                                     "deviation for normal. Must be set to 0 if 2D.");
  params.addParam<bool>("check_extremes",
                        false,
                        "Check all Superellipsoid extremes (center +- "
                        "each semiaxis) for overlap, must have "
                        "prevent_overlap set to True.");
  params.addParam<bool>("prevent_overlap",
                        false,
                        "Check all Superellipsoid centers for overlap with other Superellipsoids.");
  params.addParam<bool>("vary_axes_independently",
                        true,
                        "If true the length of each semiaxis is randomly chosen "
                        "within the provided parameters, if false then one random "
                        "number is generated and applied to all semiaxes.");
  MooseEnum rand_options("uniform normal none", "none");
  params.addParam<MooseEnum>(
      "semiaxis_variation_type",
      rand_options,
      "Type of distribution that random superellipsoid semiaxes will follow");
  return params;
}
コード例 #3
0
ファイル: MultiSmoothCircleIC.C プロジェクト: Teslos/moose
InputParameters validParams<MultiSmoothCircleIC>()
{
  InputParameters params = validParams<SmoothCircleBaseIC>();
  params.addClassDescription("Random distribution of smooth circles with given minimum spacing");
  params.addRequiredParam<unsigned int>("numbub", "The number of bubbles to place");
  params.addRequiredParam<Real>("bubspac", "minimum spacing of bubbles, measured from center to center");
  params.addParam<unsigned int>("numtries", 1000, "The number of tries");
  params.addRequiredParam<Real>("radius", "Mean radius value for the circels");
  params.addParam<Real>("radius_variation", 0.0, "Plus or minus fraction of random variation in the bubble radius for uniform, standard deviation for normal");
  MooseEnum rand_options("uniform normal none","none");
  params.addParam<MooseEnum>("radius_variation_type", rand_options, "Type of distribution that random circle radii will follow");
  return params;
}
コード例 #4
0
InputParameters validParams<LatticeSmoothCircleIC>()
{
  InputParameters params = validParams<SmoothCircleBaseIC>();
  params.addClassDescription("Perturbed square lattice of smooth circles");
  params.addParam<Real>("Rnd_variation", 0.0, "Variation from central lattice position");
  params.addRequiredParam<std::vector<unsigned int> >("circles_per_side", "Vector containing the number of bubbles along each side");
  params.addParam<unsigned int>("rand_seed", 2000, "random seed");
  params.addRequiredParam<Real>("radius", "Mean radius value for the circels");
  params.addParam<Real>("radius_variation", 0.0, "Plus or minus fraction of random variation in the bubble radius");
  MooseEnum rand_options("uniform normal none","none");
  params.addParam<MooseEnum>("radius_variation_type", rand_options, "Type of distribution that random circle radii will follow");
  params.addParam<bool>("avoid_bounds", true, "Don't place any bubbles on the simulation cell boundaries");

  return params;
}
コード例 #5
0
InputParameters validParams<MultiSmoothParticleIC>()
{
  InputParameters params = validParams<SmoothCircleBaseIC>();
  params.addRequiredParam<unsigned int>("numbub", "The number of bubbles to be placed on GB");
  params.addRequiredParam<Real>("bubspac", "minimum spacing of bubbles, measured from center to center");
  params.addParam<unsigned int>("rand_seed", 2000, "random seed");
  params.addParam<unsigned int>("numtries", 1000, "The number of tries");
  params.addRequiredParam<Real>("radius", "Mean radius value for the circels");
  params.addParam<Real>("radius_variation", 0.0, "Plus or minus fraction of random variation in the bubble radius for uniform, standard deviation for normal");
  MooseEnum rand_options("uniform normal none","none");
  params.addParam<MooseEnum>("radius_variation_type", rand_options, "Type of distribution that random circle radii will follow");
  params.addParam<bool>("avoid_bounds", true, "Don't place any bubbles on the simulation cell boundaries");

  return params;
}