- euler_angle_0_namereporter name for the first component of the Euler angles in degrees. This parameter uses the reporter syntax
/ . C++ Type:ReporterName
Controllable:No
Description:reporter name for the first component of the Euler angles in degrees. This parameter uses the reporter syntax
/ . - euler_angle_1_namereporter name for the second component of the Euler angles in degrees. This parameter uses the reporter syntax
/ . C++ Type:ReporterName
Controllable:No
Description:reporter name for the second component of the Euler angles in degrees. This parameter uses the reporter syntax
/ . - euler_angle_2_namereporter name for the third component of the Euler angles in degrees. This parameter uses the reporter syntax
/ . C++ Type:ReporterName
Controllable:No
Description:reporter name for the third component of the Euler angles in degrees. This parameter uses the reporter syntax
/ . - file_nameEuler angle data file name
C++ Type:FileName
Controllable:No
Description:Euler angle data file name
- grain_id_namereporter name for the grain IDs. This parameter uses the reporter syntax
/ . C++ Type:ReporterName
Controllable:No
Description:reporter name for the grain IDs. This parameter uses the reporter syntax
/ .
EulerAngleUpdateFromReporter
The EulerAngleUpdateFromReporter user object is a EulerAngleProvider that is derived from EulerAngleFileReader, inheriting its ability to read initial grain orientations for each material block from a file. In addition to this functionality, the EulerAngleUpdateFromReporter object also updates the Euler angles for each grain (material block) using values reported from a separate source. The current implementation overwrites grain orientation information from previous steps with values from the reporter. Users should ensure the correctness of the assigned values in the reporter to maintain simulation accuracy.
Example Input File Syntax
The EulerAngleUpdateFromReporter object is designed to be used in tandem with a reporter, as its name implies. This reporter should supply the necessary Euler angles information for each grain (or subdomain). The reporter's output should consist of four columns:
Subdomain ID (Grain ID): This column should contain unique identifiers for each grain.
Euler Angle 1: This column should provide the first component of the Euler angles (in degrees) for the corresponding grain.
Euler Angle 2: This column should provide the second component of the Euler angles (in degrees) for the corresponding grain, in degrees.
Euler Angle 3: This column should provide the third component of the Euler angles (in degrees) for the corresponding grain, in degrees.
Following is an example of such a reporter named updated_ea with column names ea0 ea1 ea2 and subdomain_id:
[Reporters<<<{"href": "../../syntax/Reporters/index.html"}>>>]
[updated_ea]
type = ConstantReporter<<<{"description": "Reporter with constant values to be accessed by other objects, can be modified using transfers.", "href": "../reporters/ConstantReporter.html"}>>>
real_vector_names<<<{"description": "Names for each vector of reals value."}>>> = 'ea0 ea1 ea2 subdomain_id'
real_vector_values<<<{"description": "Values for vectors of reals."}>>> = '10 20 30 40 50 60 70 80; 11 21 31 41 51 61 71 81; 12 22 32 42 52 62 72 82; 0 1 2 3 4 5 6 7' # Dummy value
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = none
[]
[](moose/modules/solid_mechanics/test/tests/block_orientation/euler_angle_from_reporter.i)Then, in the definition of the EulerAngleUpdateFromReporter object, one should fill the input options, grain_id_name and Euler angle components, i.e., euler_angle_0_name, euler_angle_1_name, euler_angle_2_name with the corresponding <reporter name>/<column name> pairs. For example, in this specific case, the reporter name is updated_ea, and the column name are listed in the real_vector_names in the Reporters section.
[UserObjects<<<{"href": "../../syntax/UserObjects/index.html"}>>>]
[euler_angle_file]
type = EulerAngleUpdateFromReporter<<<{"description": "Update Euler angle from reporter value.", "href": "EulerAngleUpdateFromReporter.html"}>>>
file_name<<<{"description": "Euler angle data file name"}>>> = grn_8_rand.tex
execute_on<<<{"description": "The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html."}>>> = 'timestep_begin'
euler_angle_0_name<<<{"description": "reporter name for the first component of the Euler angles in degrees. This parameter uses the reporter syntax <reporter>/<name>."}>>> = updated_ea/ea0
euler_angle_1_name<<<{"description": "reporter name for the second component of the Euler angles in degrees. This parameter uses the reporter syntax <reporter>/<name>."}>>> = updated_ea/ea1
euler_angle_2_name<<<{"description": "reporter name for the third component of the Euler angles in degrees. This parameter uses the reporter syntax <reporter>/<name>."}>>> = updated_ea/ea2
grain_id_name<<<{"description": "reporter name for the grain IDs. This parameter uses the reporter syntax <reporter>/<name>."}>>> = updated_ea/subdomain_id
[]
[](moose/modules/solid_mechanics/test/tests/block_orientation/euler_angle_from_reporter.i)Input Parameters
- allow_duplicate_execution_on_initialFalseIn the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).
Default:False
C++ Type:bool
Controllable:No
Description:In the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).
- execute_onTIMESTEP_ENDThe list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.
Default:TIMESTEP_END
C++ Type:ExecFlagEnum
Controllable:No
Description:The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.
- execution_order_group0Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.
Default:0
C++ Type:int
Controllable:No
Description:Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.
- force_postauxFalseForces the UserObject to be executed in POSTAUX
Default:False
C++ Type:bool
Controllable:No
Description:Forces the UserObject to be executed in POSTAUX
- force_preauxFalseForces the UserObject to be executed in PREAUX
Default:False
C++ Type:bool
Controllable:No
Description:Forces the UserObject to be executed in PREAUX
- force_preicFalseForces the UserObject to be executed in PREIC during initial setup
Default:False
C++ Type:bool
Controllable:No
Description:Forces the UserObject to be executed in PREIC during initial setup
Execution Scheduling Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:Yes
Description:Set the enabled status of the MooseObject.
- use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Advanced Parameters
- prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
- use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
Default:False
C++ Type:bool
Controllable:No
Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.