Exemple #1
0
InputParameters validParams<BndsCalcAux>()
{
    InputParameters params = validParams<AuxKernel>();
    params.addClassDescription("Calculate location of grain boundaries in a polycrystalline sample");
    params.addRequiredCoupledVarWithAutoBuild("v", "var_name_base", "op_num", "Array of coupled variables");
    return params;
}
InputParameters
validParams<PolycrystalUserObjectBase>()
{
  InputParameters params = validParams<FeatureFloodCount>();
  params.addClassDescription("This object provides the base capability for creating proper reduced "
                             "order parameter polycrystal initial conditions.");
  params.addRequiredCoupledVarWithAutoBuild(
      "variable", "var_name_base", "op_num", "Array of coupled variables");
  params.addParam<bool>("output_adjacency_matrix",
                        false,
                        "Output the Grain Adjacency Matrix used in the coloring algorithms. "
                        "Additionally, the grain to OP assignments will be printed");
  params.addParam<MooseEnum>("coloring_algorithm",
                             PolycrystalUserObjectBase::coloringAlgorithms(),
                             PolycrystalUserObjectBase::coloringAlgorithmDescriptions());

  // Hide the output of the IC objects by default, it doesn't change over time
  params.set<std::vector<OutputName>>("outputs") = {"none"};

  /// Run this user object more than once on the initial condition to handle initial adaptivity
  params.set<bool>("allow_duplicate_execution_on_initial") = true;

  // This object should only be executed _before_ the initial condition
  ExecFlagEnum execute_options = MooseUtils::getDefaultExecFlagEnum();
  execute_options = EXEC_INITIAL;
  params.set<ExecFlagEnum>("execute_on") = execute_options;

  return params;
}
InputParameters validParams<ComputeGrainCenterUserObject>()
{
  InputParameters params = validParams<ElementUserObject>();
  params.addClassDescription("Userobject for calculating the grain volume and grain center");
  params.addRequiredCoupledVarWithAutoBuild("etas", "var_name_base", "op_num", "order parameters");
  return params;
}
InputParameters validParams<ExternalForceDensityMaterial>()
{
  InputParameters params = validParams<Material>();
  params.addClassDescription("Providing external applied force density to grains");
  params.addParam<FunctionName>("force_x", 0.0, "The forcing function in x direction.");
  params.addParam<FunctionName>("force_y", 0.0, "The forcing function in y direction.");
  params.addParam<FunctionName>("force_z", 0.0, "The forcing function in z direction.");
  params.addRequiredCoupledVarWithAutoBuild("etas", "var_name_base", "op_num", "Array of coupled order parameters");
  params.addCoupledVar("c", "Concentration field");
  params.addParam<Real>("k", 1.0, "stiffness constant multiplier");
  return params;
}
InputParameters validParams<GrainAdvectionVelocity>()
{
  InputParameters params = validParams<Material>();
  params.addClassDescription("Calculation the advection velocity of grain due to rigid vody translation and rotation");
  params.addRequiredCoupledVarWithAutoBuild("etas", "var_name_base", "op_num", "Array of other coupled order parameters");
  params.addCoupledVar("c", "Concentration field");
  params.addParam<Real>("translation_constant", 500, "constant value characterizing grain translation");
  params.addParam<Real>("rotation_constant", 1.0, "constant value characterizing grain rotation");
  params.addParam<std::string>("base_name", "Optional parameter that allows the user to define type of force density under consideration");
  params.addParam<UserObjectName>("grain_data", "userobject for getting volume and center of mass of grains");
  params.addParam<UserObjectName>("grain_force", "userobject for getting force and torque acting on grains");
  return params;
}
Exemple #6
0
InputParameters validParams<GBAnisotropyBase>()
{
  InputParameters params = validParams<Material>();
  params.addCoupledVar("T", 300.0, "Temperature in Kelvin");
  params.addParam<Real>("length_scale", 1.0e-9, "Length scale in m, where default is nm");
  params.addParam<Real>("time_scale", 1.0e-9, "Time scale in s, where default is ns");
  params.addParam<Real>("molar_volume_value", 7.11e-6, "molar volume of material in m^3/mol, by default it's the value of copper");
  params.addParam<Real>("delta_sigma", 0.1, "factor determining inclination dependence of GB energy");
  params.addParam<Real>("delta_mob", 0.1, "factor determining inclination dependence of GB mobility");
  params.addRequiredParam<FileName>("Anisotropic_GB_file_name", "Name of the file containing: 1)GB mobility prefactor; 2) GB migration activation energy; 3)GB energy");
  params.addRequiredParam<bool>("inclination_anisotropy", "The GB anisotropy ininclination would be considered if true");
  params.addRequiredCoupledVarWithAutoBuild("v", "var_name_base", "op_num", "Array of coupled variables");
  return params;
}
InputParameters validParams<ComputePolycrystalElasticityTensor>()
{
  InputParameters params = validParams<ComputeElasticityTensorBase>();
  params.addClassDescription("Compute an evolving elasticity tensor coupled to a grain growth phase field model.");
  params.addRequiredParam<FileName>("Euler_angles_file_name", "Name of the file containing the Euler angles");
  params.addParam<Real>("length_scale", 1.0e-9, "Lengthscale of the problem, in meters");
  params.addParam<Real>("pressure_scale", 1.0e6, "Pressure scale of the problem, in pa");
  params.addRequiredCoupledVarWithAutoBuild("v", "var_name_base", "op_num", "Array of coupled variables");
  params.addRequiredParam<UserObjectName>("GrainTracker_object", "The GrainTracker UserObject to get values from.");
  params.addRequiredParam<unsigned int>("grain_num", "Number of initial grains that will be modeled");
  params.addParam<unsigned int>("stiffness_buffer",10,"Number of extra elastic stiffnesses that are created to handle new grains");
  params.addRequiredParam<std::vector<Real> >("Elastic_constants", "Vector containing elastic constants for fill method");
  params.addParam<MooseEnum>("fill_method", RankFourTensor::fillMethodEnum() = "symmetric9", "The fill method");
  return params;
}
InputParameters validParams<GrainTrackerInterface>()
{
  InputParameters params = validParams<FeatureFloodCount>();
  params.addParam<int>("tracking_step", 0, "The timestep for when we should start tracking grains");
  params.addParam<Real>("convex_hull_buffer", 1.0, "The buffer around the convex hull used to determine"
                                                   "when features intersect");
  params.addParam<bool>("remap_grains", true, "Indicates whether remapping should be done or not (default: true)");
  params.addParam<bool>("compute_op_maps", false, "Indicates whether the data structures that"
                                                  "hold the active order parameter information"
                                                  "should be populated or not");
  params.addParam<bool>("center_of_mass_tracking", false, "Indicates whether the grain tracker uses bounding sphere centers"
                                                          "or center of mass calculations for tracking grains");
  params.addParam<UserObjectName>("ebsd_reader", "Optional: EBSD Reader for initial condition");

  params.addRequiredCoupledVarWithAutoBuild("variable", "var_name_base", "op_num", "Array of coupled variables");

  params.suppressParameter<std::vector<VariableName> >("variable");
  return params;
}