Skip to content

Project Parameters File

Rafael Rangel edited this page Feb 21, 2024 · 1 revision

The Project Parameters file is a JSON file that contains all the parameters and options for the analysis and outputs, as well as the conditions applied to the elements and/or model parts.

This file is necessary for running a simulation and must always be accompanied by a Model Parts file, which must be in the same directory. The name of that file must be specified in the input field model_parts_file in the input group ProblemData.

The format of this file includes some input groups (JSON objects) composed of input fields (JSON name-value pairs). Below are explanations of all the input fields of every input group.

A template with all the possible options for every input field is available here.

Input Groups

ProblemData

Input group for generic information related to the simulation.

Template
"ProblemData": {
    "name"             : "model_name",
    "analysis_type"    : "mechanical"/"thermal"/"thermo_mechanical",
    "model_parts_file" : "ModelParts.txt"
}
"name"

Description: Name to identify the simulation. Used to create output files and folders, and check for files with stored results.

Type: String.

Options: String with no spaces.

Mandatory: Yes.

Default: No default value.

"analysis_type"

Description: Type of analysis.

Type: String.

Options: "mechanical", "thermal" or "thermo_mechanical".

Mandatory: Yes.

Default: No default value.

"model_parts_file"

Description: Name of the Model Parts file (including the extension) that must be in the same directory of the Project Parameters.

Type: String.

Options: No options.

Mandatory: Yes.

Default: No default value.

Solver

Input group for options related to the solving of the transient problem.

Template
"Solver": {
	"integration_scheme_translation" : "forward_euler"/"modified_euler"/"taylor_2",
	"integration_scheme_rotation"    : "forward_euler"/"modified_euler"/"taylor_2",
	"integration_scheme_thermal"     : "forward_euler",
	"auto_time_step"                 : true/false,
	"time_step"                      : 0.0,
	"final_time"                     : 0.0,
	"eval_frequency"                 : 0
}
"integration_scheme_translation"

Description: Time integration scheme for the translational motion. Required only for mechanical or thermo-mechanical analyses.

Type: String.

Options: "forward_euler", "modified_euler" or "taylor_2".

Mandatory: No.

Default: "forward_euler".

"integration_scheme_rotation"

Description: Time integration scheme for the rotational motion. Required only for mechanical or thermo-mechanical analyses.

Type: String.

Options: "forward_euler", "modified_euler" or "taylor_2".

Mandatory: No.

Default: "forward_euler".

"integration_scheme_thermal"

Description: Time integration scheme for the temperature variation. Required only for thermal or thermo-mechanical analyses.

Type: String.

Options: "forward_euler".

Mandatory: No.

Default: "forward_euler".

"auto_time_step"

Description: Option to automatically calculate a time step that respects a critical value required for the analysis.

Type: Boolean.

Options: true or false.

Mandatory: No.

Default: false if a time step is provided, and true if no time step is provided.

"time_step"

Description: Time step value used in the integration scheme.

Type: Real scalar.

Options: Positive value.

Mandatory: Yes, if automatic time step is not selected. No, if automatic time step is selected (in this case, the provided time step is ignored).

Default: No default value.

"final_time"

Description: Final time for the simulation to stop.

Type: Real scalar.

Options: Positive value.

Mandatory: Yes.

Default: No default value.

"eval_frequency"

Description: Frequency (in number of steps) to compute the particles forces in mechanical or thermo-mechanical analyses.

Type: Integer scalar.

Options: Positive value.

Mandatory: No.

Default: 1 (i.e. evaluate at every time step).

Search

Input group for options related to the search algorithms of neighboring elements.

Template
"Search": {
	"scheme"           : "simple_loop"/"verlet_list",
	"search_frequency" : 0,
	"verlet_frequency" : 0,
	"verlet_distance"  : 0.0
}
"scheme"

Description: Search algorithm for neighboring elements.

Type: String.

Options: "simple_loop" or "verlet_list".

Mandatory: Yes.

Default: No default value.

"search_frequency"

Description: Frequency (in number of steps) to perform the searching algorithm.

Type: Integer scalar.

Options: Positive value.

Mandatory: No.

Default: 1 (i.e. search at every time step).

"verlet_frequency"

Description: Frequency (in number of steps) to update the verlet list of possible neighbors through which the search is made. Required only for the verlet_list algorithm.

Type: Integer scalar.

Options: Positive value greater or equal than "search_frequency".

Mandatory: No.

Default: Default value is automatically calculated based on the maximum velocity and radius of particles.

"verlet_distance"

Description: Threshold separation distance between the surfaces of elements to include particles in the verlet list of possible neighbors through which the search is made. Required only for the verlet_list algorithm.

Type: Real scalar.

Options: Positive value.

Mandatory: No.

Default: Default value is automatically calculated based on the maximum radius of particles.

BoundingBox

Input group to add a bounding box area that sets the simulation limits (particles outside this area are removed from the simulation).

Template
"BoundingBox": {
	"shape"     : "rectangle"/"circle"/"polygon",
	"interval"  : [0.0,0.0],
	"limit_min" : [0.0,0.0],
	"limit_max" : [0.0,0.0],
	"center"    : [0.0,0.0],
	"radius"    : 0.0,
	"points_x"  : [0.0,0.0,0.0],
	"points_y"  : [0.0,0.0,0.0]
}
"shape"

Description: Shape of the bounding box area.

Type: String.

Options: "rectangle", "circle" or "polygon".

Mandatory: Yes.

Default: No default value.

"interval"

Description: Time interval of activation of the bounding box.

Type: Real array with 2 elements.

Options: Pair of values with activation times, where the first is the start and the second is the end (starting time must be smaller than ending time).

Mandatory: No.

Default: Bounding box always active.

"limit_min"

Description: Coordinates of the bottom-left corner. Required only for rectangular bounding box.

Type: Real array with 2 elements.

Options: Pair of values with XY components of the coordinates.

Mandatory: No.

Default: [-inf;-inf] (i.e. boundless in the negative directions of the coordinate axes).

"limit_max"

Description: Coordinates of the top-right corner. Required only for rectangular bounding box.

Type: Real array with 2 elements.

Options: Pair of values with XY components of the coordinates.

Mandatory: No.

Default: [inf;inf] (i.e. boundless in the positive directions of the coordinate axes).

"center"

Description: Coordinates of the center point of the circle. Required only for circular bounding box.

Type: Real array with 2 elements.

Options: Pair of values with XY components of the coordinates.

Mandatory: Only for circle, not for other shapes.

Default: No default value.

"radius"

Description: Radius of the circle. Required only for circular bounding box.

Type: Real scalar.

Options: Positive value.

Mandatory: Only for circle, not for other shapes.

Default: No default value.

"points_x"

Description: X coordinates of the vertices of a polygon. Required only for polygonal bounding box.

Type: Real array.

Options: X coordinates values that match the Y coordinates to define a consistent polygonal shape.

Mandatory: Only for polygon, not for other shapes.

Default: No default value.

"points_y"

Description: Y coordinates of the vertices of a polygon. Required only for polygonal bounding box.

Type: Real array.

Options: Y coordinates values that match the X coordinates to define a consistent polygonal shape.

Mandatory: Only for polygon, not for other shapes.

Default: No default value.

Sink

Input group to add sink areas (particles inside these areas are removed from the simulation).

Template
"Sink": [
{
	"shape"     : "rectangle",
	"interval"  : [0.0,0.0],
	"limit_min" : [0.0,0.0],
	"limit_max" : [0.0,0.0]
},{
	"shape"     : "circle",
	"interval"  : [0.0,0.0],
	"center"    : [0.0,0.0],
	"radius"    : 0.0
},{
	"shape"     : "polygon",
	"interval"  : [0.0,0.0],
	"points_x"  : [0.0,0.0,0.0],
	"points_y"  : [0.0,0.0,0.0]
}
]
"shape"

Description: Shape of the sink area.

Type: String.

Options: "rectangle", "circle" or "polygon".

Mandatory: Yes.

Default: No default value.

"interval"

Description: Time interval of activation of the sink.

Type: Real array with 2 elements.

Options: Pair of values with activation times, where the first is the start and the second is the end (starting time must be smaller than ending time).

Mandatory: No.

Default: Sink always active.

"limit_min"

Description: Coordinates of the bottom-left corner. Required only for rectangular sinks.

Type: Real array with 2 elements.

Options: Pair of values with XY components of the coordinates.

Mandatory: Yes.

Default: No default value.

"limit_max"

Description: Coordinates of the top-right corner. Required only for rectangular sinks.

Type: Real array with 2 elements.

Options: Pair of values with XY components of the coordinates.

Mandatory: Yes.

Default: No default value.

"center"

Description: Coordinates of the center point of the circle. Required only for circular sinks.

Type: Real array with 2 elements.

Options: Pair of values with XY components of the coordinates.

Mandatory: Only for circle, not for other shapes.

Default: No default value.

"radius"

Description: Radius of the circle. Required only for circular sinks.

Type: Real scalar.

Options: Positive value.

Mandatory: Only for circle, not for other shapes.

Default: No default value.

"points_x"

Description: X coordinates of the vertices of a polygon. Required only for polygonal sinks.

Type: Real array.

Options: X coordinates values that match the Y coordinates to define a consistent polygonal shape.

Mandatory: Only for polygon, not for other shapes.

Default: No default value.

"points_y"

Description: Y coordinates of the vertices of a polygon. Required only for polygonal sinks.

Type: Real array.

Options: Y coordinates values that match the X coordinates to define a consistent polygonal shape.

Mandatory: Only for polygon, not for other shapes.

Default: No default value.

GlobalCondition

Input group to set global conditions to the model.

Template
"GlobalCondition": {
	"gravity"             : [0.0,0.0],
	"damping_translation" : 0.0,
	"damping_rotation"    : 0.0,
	"porosity"            : 0.0,
	"fluid_velocity"      : [0.0,0.0],
	"fluid_temperature"   : 0.0
}
"gravity"

Description: Gravity acceleration. Required only for mechanical or thermo-mechanical analyses.

Type: Real array with 2 elements.

Options: Pair of values with XY components of the gravity acceleration.

Mandatory: No.

Default: No gravity.

"damping_translation"

Description: Viscous damping coefficient for translational motion. This coefficient multiplies the translational velocity to generate a damping force against the motion. Required only for mechanical or thermo-mechanical analyses.

Type: Real scalar.

Options: No option.

Mandatory: No.

Default: No damping.

"damping_rotation"

Description: Viscous damping coefficient for rotational motion. This coefficient multiplies the rotational velocity to generate a damping force against the rotation. Required only for mechanical or thermo-mechanical analyses.

Type: Real scalar.

Options: No option.

Mandatory: No.

Default: No damping.

"porosity"

Description: Prescribed porosity (void ratio) value. If set, this fixed value is used at any time the porosity is required.

Type: Real scalar.

Options: Value between 0 and 1.

Mandatory: No.

Default: If not set, the porosity is computed considering a void ratio of areas.

"fluid_velocity"

Description: Velocity vector of the interstitial fluid (constant over all the simulation domain), used for computing heat convection with the particles. Required only for thermal or thermo-mechanical analyses.

Type: Real array with 2 elements.

Options: Pair of values with XY components of the velocity.

Mandatory: No.

Default: No velocity (stagnant fluid).

"fluid_temperature"

Description: Temperature of the interstitial fluid (constant over all the simulation domain), used for computing heat convection with the particles. Required only for thermal or thermo-mechanical analyses.

Type: Real scalar.

Options: No option.

Mandatory: No.

Default: 0 (zero).

InitialCondition

Input group to set initial conditions to the particles.

Template
"InitialCondition": {
	"translational_velocity": [
	{
		"value"       : [0.0,0.0],
		"particles"   : [0,0,0],
		"model_parts" : ["mp_name_1","mp_name_2"]
	},{
		"value"       : [0.0,0.0],
		"particles"   : [0,0,0],
		"model_parts" : ["PARTICLES"]
	}
	],
	"rotational_velocity": [
	{
		"value"       : 0.0,
		"particles"   : [0,0,0],
		"model_parts" : ["mp_name_1","mp_name_2"]
	},{
		"value"       : 0.0,
		"particles"   : [0,0,0],
		"model_parts" : ["PARTICLES"]
	}
	],
	"temperature": [
	{
		"value"       : 0.0,
		"particles"   : [0,0,0],
		"model_parts" : ["mp_name_1","mp_name_2"]
	},{
		"value"       : 0.0,
		"particles"   : [0,0,0],
		"model_parts" : ["PARTICLES"]
	}
	]
}
"translational_velocity"

Description: Initial velocity for the translational motion of particles. Required only for mechanical or thermo-mechanical analyses.

"value": Pair of values with XY components of the velocity.

"particles": Array of particles IDs to apply the condition.

"model_parts": Array of strings containing the names of the model parts to apply the condition (the keyword "PARTICLES" applies the condition to all particles).

"rotational_velocity"

Description: Initial velocity for the rotational motion of particles. Required only for mechanical or thermo-mechanical analyses.

"value": Real scalar value.

"particles": Array of particles IDs to apply the condition.

"model_parts": Array of strings containing the names of the model parts to apply the condition (the keyword "PARTICLES" applies the condition to all particles).

"temperature"

Description: Initial temperature for the particles. Required only for thermal or thermo-mechanical analyses.

"value": Real scalar value.

"particles": Array of particles IDs to apply the condition.

"model_parts": Array of strings containing the names of the model parts to apply the condition (the keyword "PARTICLES" applies the condition to all particles).

PrescribedCondition

Input group to set prescribed conditions of forcing terms (force, moment and heat flux) to the particles.

Template
"PrescribedCondition": {
	"force": [
	{
		"type"          : "constant",
		"value"         : [0.0,0.0],
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES"]
	},{
		"type"          : "linear",
		"initial_value" : [0.0,0.0],
		"slope"         : [0.0,0.0],
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES"]
	},{
		"type"          : "oscillatory",
		"base_value"    : [0.0,0.0],
		"amplitude"     : [0.0,0.0],
		"period"        : 0.0,
		"shift"         : 0.0,
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES"]
	},{
		"type"          : "table",
		"values"        : [[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]],
		"file"          : "table.txt",
		"interpolation" : "linear"/"makima"/"pchip"/"spline",
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES"]
	}
	],
	"torque": [
	{
		"type"          : "constant",
		"value"         : 0.0,
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES"]
	},{
		"type"          : "linear",
		"initial_value" : 0.0,
		"slope"         : 0.0,
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES"]
	},{
		"type"          : "oscillatory",
		"base_value"    : 0.0,
		"amplitude"     : 0.0,
		"period"        : 0.0,
		"shift"         : 0.0,
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES"]
	},{
		"type"          : "table",
		"values"        : [[0.0,0.0,0.0],[0.0,0.0,0.0]],
		"file"          : "table.txt",
		"interpolation" : "linear"/"makima"/"pchip"/"spline",
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES"]
	}
	],
	"heat_flux": [
	{
		"type"          : "constant",
		"value"         : 0.0,
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES"]
	},{
		"type"          : "linear",
		"initial_value" : 0.0,
		"slope"         : 0.0,
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES"]
	},{
		"type"          : "oscillatory",
		"base_value"    : 0.0,
		"amplitude"     : 0.0,
		"period"        : 0.0,
		"shift"         : 0.0,
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES"]
	},{
		"type"          : "table",
		"values"        : [[0.0,0.0,0.0],[0.0,0.0,0.0]],
		"file"          : "table.txt",
		"interpolation" : "linear"/"makima"/"pchip"/"spline",
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES"]
	}
	],
	"heat_rate": [
	{
		"type"          : "constant",
		"value"         : 0.0,
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES"]
	},{
		"type"          : "linear",
		"initial_value" : 0.0,
		"slope"         : 0.0,
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES"]
	},{
		"type"          : "oscillatory",
		"base_value"    : 0.0,
		"amplitude"     : 0.0,
		"period"        : 0.0,
		"shift"         : 0.0,
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES"]
	},{
		"type"          : "table",
		"values"        : [[0.0,0.0,0.0],[0.0,0.0,0.0]],
		"file"          : "table.txt",
		"interpolation" : "linear"/"makima"/"pchip"/"spline",
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES"]
	}
	]
}
"force"

Description: Prescribed value of force applied to particles.

"type": String for the type of condition variation over time. The options are: "constant", "linear", "oscillatory" or "table".

"value" (only for constant conditions): Pair of values with XY components of the force.

"initial_value" (only for linear conditions): Pair of values with XY components of the initial force.

"slope" (only for linear conditions): Pair of values with XY components of the linear variation coefficient.

"base_value" (only for oscillatory conditions): Pair of values with XY components of the value around which the oscillation occurs.

"amplitude" (only for oscillatory conditions): Pair of positive values with XY components of the amplitude around "base_value".

"period" (only for oscillatory conditions): Positive value of the period of oscillation.

"shift" (only for oscillatory conditions): Value of the phase shift for both XY components of the oscillation.

"values" (only for table conditions): Table of values with XY components of the force ([time values],[force_x values],[force_y values]).

"file" (only for table conditions): String with the name of a file (including extension) containing the values of the XY components of the force (3 columns: time values, force_x values, force_y values). The file is ignored if the values are provided in the input field "values"

"interpolation": String for the interpolation type of the table values. The options are: "linear", "makima", "pchip" or "spline".

"interval": Pair of values with the time interval of activation of the condition, where the first is the start and the second is the end (starting time must be smaller than ending time). If not provided, the default is an always active condition.

"particles": Array of particles IDs to apply the condition.

"model_parts": Array of strings containing the names of the model parts to apply the condition (the keyword "PARTICLES" applies the condition to all particles).

"torque"

Description: Prescribed value of torque applied to particles.

"type": String for the type of condition variation over time. The options are: "constant", "linear", "oscillatory" or "table".

"value" (only for constant conditions): Value of the torque.

"initial_value" (only for linear conditions): Initial value of the torque.

"slope" (only for linear conditions): Value of the linear variation coefficient.

"base_value" (only for oscillatory conditions): Value around which the oscillation occurs.

"amplitude" (only for oscillatory conditions): Positive value of the amplitude around "base_value".

"period" (only for oscillatory conditions): Positive value of the period of oscillation.

"shift" (only for oscillatory conditions): Value of the phase shift of the oscillation.

"values" (only for table conditions): Table of values of the torque ([time values],[torque values]).

"file" (only for table conditions): String with the name of a file (including extension) containing the values of the torque (2 columns: time values, torque values). The file is ignored if the values are provided in the input field "values"

"interpolation": String for the interpolation type of the table values. The options are: "linear", "makima", "pchip" or "spline".

"interval": Pair of values with the time interval of activation of the condition, where the first is the start and the second is the end (starting time must be smaller than ending time). If not provided, the default is an always active condition.

"particles": Array of particles IDs to apply the condition.

"model_parts": Array of strings containing the names of the model parts to apply the condition (the keyword "PARTICLES" applies the condition to all particles).

"heat_flux"

Description: Prescribed value of heat flux per unit of area applied to the surface of particles.

"type": String for the type of condition variation over time. The options are: "constant", "linear", "oscillatory" or "table".

"value" (only for constant conditions): Value of the heat flux.

"initial_value" (only for linear conditions): Initial value of the heat flux.

"slope" (only for linear conditions): Value of the linear variation coefficient.

"base_value" (only for oscillatory conditions): Value around which the oscillation occurs.

"amplitude" (only for oscillatory conditions): Positive value of the amplitude around "base_value".

"period" (only for oscillatory conditions): Positive value of the period of oscillation.

"shift" (only for oscillatory conditions): Value of the phase shift of the oscillation.

"values" (only for table conditions): Table of values of the heat flux ([time values],[heat flux values]).

"file" (only for table conditions): String with the name of a file (including extension) containing the values of the heat flux (2 columns: time values, heat flux values). The file is ignored if the values are provided in the input field "values"

"interpolation": String for the interpolation type of the table values. The options are: "linear", "makima", "pchip" or "spline".

"interval": Pair of values with the time interval of activation of the condition, where the first is the start and the second is the end (starting time must be smaller than ending time). If not provided, the default is an always active condition.

"particles": Array of particles IDs to apply the condition.

"model_parts": Array of strings containing the names of the model parts to apply the condition (the keyword "PARTICLES" applies the condition to all particles).

"heat_rate"

Description: Prescribed value of rate of heat transfer to particles.

"type": String for the type of condition variation over time. The options are: "constant", "linear", "oscillatory" or "table".

"value" (only for constant conditions): Value of the heat rate.

"initial_value" (only for linear conditions): Initial value of the heat rate.

"slope" (only for linear conditions): Value of the linear variation coefficient.

"base_value" (only for oscillatory conditions): Value around which the oscillation occurs.

"amplitude" (only for oscillatory conditions): Positive value of the amplitude around "base_value".

"period" (only for oscillatory conditions): Positive value of the period of oscillation.

"shift" (only for oscillatory conditions): Value of the phase shift of the oscillation.

"values" (only for table conditions): Table of values of the heat rate ([time values],[heat rate values]).

"file" (only for table conditions): String with the name of a file (including extension) containing the values of the heat rate (2 columns: time values, heat rate values). The file is ignored if the values are provided in the input field "values"

"interpolation": String for the interpolation type of the table values. The options are: "linear", "makima", "pchip" or "spline".

"interval": Pair of values with the time interval of activation of the condition, where the first is the start and the second is the end (starting time must be smaller than ending time). If not provided, the default is an always active condition.

"particles": Array of particles IDs to apply the condition.

"model_parts": Array of strings containing the names of the model parts to apply the condition (the keyword "PARTICLES" applies the condition to all particles).

FixedCondition

Input group to set fixed conditions of state variables (velocities and temperature) to the particles and walls.

Template
"FixedCondition": {
	"velocity_translation": [
	{
		"type"          : "constant",
		"value"         : [0.0,0.0],
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"walls"         : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES","WALLS"]
	},{
		"type"          : "linear",
		"initial_value" : [0.0,0.0],
		"slope"         : [0.0,0.0],
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"walls"         : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES","WALLS"]
	},{
		"type"          : "oscillatory",
		"base_value"    : [0.0,0.0],
		"amplitude"     : [0.0,0.0],
		"period"        : 0.0,
		"shift"         : 0.0,
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"walls"         : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES","WALLS"]
	},{
		"type"          : "table",
		"values"        : [[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]],
		"file"          : "table.txt",
		"interpolation" : "linear"/"makima"/"pchip"/"spline",
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"walls"         : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES","WALLS"]
	}
	],
	"velocity_rotation": [
	{
		"type"          : "constant",
		"value"         : 0.0,
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"walls"         : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES","WALLS"]
	},{
		"type"          : "linear",
		"initial_value" : 0.0,
		"slope"         : 0.0,
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"walls"         : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES","WALLS"]
	},{
		"type"          : "oscillatory",
		"base_value"    : 0.0,
		"amplitude"     : 0.0,
		"period"        : 0.0,
		"shift"         : 0.0,
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"walls"         : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES","WALLS"]
	},{
		"type"          : "table",
		"values"        : [[0.0,0.0,0.0],[0.0,0.0,0.0]],
		"file"          : "table.txt",
		"interpolation" : "linear"/"makima"/"pchip"/"spline",
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"walls"         : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES","WALLS"]
	}
	],
	"temperature": [
	{
		"type"          : "constant",
		"value"         : 0.0,
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"walls"         : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES","WALLS"]
	},{
		"type"          : "linear",
		"initial_value" : 0.0,
		"slope"         : 0.0,
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"walls"         : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES","WALLS"]
	},{
		"type"          : "oscillatory",
		"base_value"    : 0.0,
		"amplitude"     : 0.0,
		"period"        : 0.0,
		"shift"         : 0.0,
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"walls"         : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES","WALLS"]
	},{
		"type"          : "table",
		"values"        : [[0.0,0.0,0.0],[0.0,0.0,0.0]],
		"file"          : "table.txt",
		"interpolation" : "linear"/"makima"/"pchip"/"spline",
		"interval"      : [0.0,0.0],
		"particles"     : [0,0,0],
		"walls"         : [0,0,0],
		"model_parts"   : ["mp_name","PARTICLES","WALLS"]
	}
	]
}
"velocity_translation"

Description: Fixed value of translational velocity applied to particles or walls.

"type": String for the type of condition variation over time. The options are: "constant", "linear", "oscillatory" or "table".

"value" (only for constant conditions): Pair of values with XY components of the velocity.

"initial_value" (only for linear conditions): Pair of values with XY components of the initial velocity.

"slope" (only for linear conditions): Pair of values with XY components of the linear variation coefficient.

"base_value" (only for oscillatory conditions): Pair of values with XY components of the value around which the oscillation occurs.

"amplitude" (only for oscillatory conditions): Pair of positive values with XY components of the amplitude around "base_value".

"period" (only for oscillatory conditions): Positive value of the period of oscillation.

"shift" (only for oscillatory conditions): Value of the phase shift for both XY components of the oscillation.

"values" (only for table conditions): Table of values with XY components of the velocity ([time values],[velocity_x values],[velocity_y values]).

"file" (only for table conditions): String with the name of a file (including extension) containing the values of the XY components of the velocity (3 columns: time values, velocity_x values, velocity_y values). The file is ignored if the values are provided in the input field "values"

"interpolation": String for the interpolation type of the table values. The options are: "linear", "makima", "pchip" or "spline".

"interval": Pair of values with the time interval of activation of the condition, where the first is the start and the second is the end (starting time must be smaller than ending time). If not provided, the default is an always active condition.

"particles": Array of particles IDs to apply the condition.

"walls": Array of walls IDs to apply the condition.

"model_parts": Array of strings containing the names of the model parts to apply the condition (the keywords "PARTICLES" and "WALLS" apply the condition to all particles and walls respectively).

"velocity_rotation"

Description: Fixed value of rotational velocity applied to the centroid of particles or walls.

"type": String for the type of condition variation over time. The options are: "constant", "linear", "oscillatory" or "table".

"value" (only for constant conditions): Value of the velocity.

"initial_value" (only for linear conditions): Initial value of the velocity.

"slope" (only for linear conditions): Value of the linear variation coefficient.

"base_value" (only for oscillatory conditions): Value around which the oscillation occurs.

"amplitude" (only for oscillatory conditions): Positive value of the amplitude around "base_value".

"period" (only for oscillatory conditions): Positive value of the period of oscillation.

"shift" (only for oscillatory conditions): Value of the phase shift of the oscillation.

"values" (only for table conditions): Table of values of the velocity ([time values],[velocity values]).

"file" (only for table conditions): String with the name of a file (including extension) containing the values of the velocity (2 columns: time values, velocity values). The file is ignored if the values are provided in the input field "values"

"interpolation": String for the interpolation type of the table values. The options are: "linear", "makima", "pchip" or "spline".

"interval": Pair of values with the time interval of activation of the condition, where the first is the start and the second is the end (starting time must be smaller than ending time). If not provided, the default is an always active condition.

"particles": Array of particles IDs to apply the condition.

"walls": Array of walls IDs to apply the condition.

"model_parts": Array of strings containing the names of the model parts to apply the condition (the keywords "PARTICLES" and "WALLS" apply the condition to all particles and walls respectively).

"temperature"

Description: Fixed value of temperature applied to particles or walls.

"type": String for the type of condition variation over time. The options are: "constant", "linear", "oscillatory" or "table".

"value" (only for constant conditions): Value of the temperature.

"initial_value" (only for linear conditions): Initial value of the temperature.

"slope" (only for linear conditions): Value of the linear variation coefficient.

"base_value" (only for oscillatory conditions): Value around which the oscillation occurs.

"amplitude" (only for oscillatory conditions): Positive value of the amplitude around "base_value".

"period" (only for oscillatory conditions): Positive value of the period of oscillation.

"shift" (only for oscillatory conditions): Value of the phase shift of the oscillation.

"values" (only for table conditions): Table of values of the temperature ([time values],[temperature values]).

"file" (only for table conditions): String with the name of a file (including extension) containing the values of the temperature (2 columns: time values, temperature values). The file is ignored if the values are provided in the input field "values"

"interpolation": String for the interpolation type of the table values. The options are: "linear", "makima", "pchip" or "spline".

"interval": Pair of values with the time interval of activation of the condition, where the first is the start and the second is the end (starting time must be smaller than ending time). If not provided, the default is an always active condition.

"particles": Array of particles IDs to apply the condition.

"walls": Array of walls IDs to apply the condition.

"model_parts": Array of strings containing the names of the model parts to apply the condition (the keywords "PARTICLES" and "WALLS" apply the condition to all particles and walls respectively).

Material

Input group to create and set material properties to the particles, walls and surrounding fluid.

A wall may or may not have an assigned solid material. If it does, the effective interaction properties take into account the material properties from both the wall and the particle. Otherwise, the effective interaction properties for the mechanical behavior are set as the particle material, and the wall is considered insulated (no heat exchange with particles).

Only one fluid material can be created for the surrounding fluid.

Template
"Material": [
{
	"name"                 : "material_1",
	"type"                 : "solid",
	"density"              : 0.0,
	"young_modulus"        : 0.0,
	"young_modulus_real"   : 0.0,
	"shear_modulus"        : 0.0,
	"poisson_ratio"        : 0.0,
	"thermal_conductivity" : 0.0,
	"heat_capacity"        : 0.0,
	"particles"            : [0,0,0],
	"walls"                : [0,0,0],
	"model_parts"          : ["mp_name","PARTICLES","WALLS"]
},{
	"name"                 : "material_2",
	"type"                 : "fluid",
	"density"              : 0.0,
	"viscosity"            : 0.0,
	"thermal_conductivity" : 0.0,
	"heat_capacity"        : 0.0
}
]
"name"

Description: Unique name to identify the material.

Type: String.

Options: No option.

Mandatory: No.

Default: Material named according to the order of creation.

"type"

Description: Type of material. Solid materials are used for particles and walls, and only one fluid material can be created for the surrounding fluid.

Type: String.

Options: "solid" or "fluid".

Mandatory: Yes.

Default: No default value.

"density"

Description: Density of solid or fluid materials.

Type: Real scalar.

Options: Positive value.

Mandatory: Yes.

Default: No default value.

"young_modulus"

Description: Young modulus of solid materials used for the simulation.

Type: Real scalar.

Options: Positive value.

Mandatory: Only for solid material.

Default: No default value.

"young_modulus_real"

Description: Real physical value of the Young modulus of solid materials (usually higher then the simulation value).

Type: Real scalar.

Options: Positive value.

Mandatory: No.

Default: Same as the simulation value provided in "young_modulus".

"shear_modulus"

Description: Shear modulus of solid materials.

Type: Real scalar.

Options: Positive value.

Mandatory: No.

Default: Computed from Young modulus and Poisson ratio.

"poisson_ratio"

Description: Poisson ratio of solid materials.

Type: Real scalar.

Options: Value less then 0.5.

Mandatory: Only for mechanical or thermo-mechanical analyses.

Default: No default value.

"viscosity"

Description: Dynamic viscosity of fluid materials.

Type: Real scalar.

Options: Positive value.

Mandatory: Only for fluid material in thermal or thermo-mechanical analyses (when heat convection is considered).

Default: No default value.

"thermal_conductivity"

Description: Thermal conductivity of solid or fluid materials.

Type: Real scalar.

Options: Positive value.

Mandatory: Only for thermal or thermo-mechanical analyses.

Default: No default value.

"heat_capacity"

Description: Heat capacity of solid or fluid materials.

Type: Real scalar.

Options: Positive value.

Mandatory: Only for thermal or thermo-mechanical analyses.

Default: No default value.

"particles"

Description: Array of particles IDs to apply the solid material.

Type: Integer array.

Options: No option.

Mandatory: No.

Default: No default value.

"walls"

Description: Array of walls IDs to apply the solid material.

Type: Integer array.

Options: No option.

Mandatory: No.

Default: No default value.

"model_parts"

Description: Array of model parts names to apply the material (the keywords "PARTICLES" and "WALLS" apply the material to all particles and walls respectively).

Type: String array.

Options: No option.

Mandatory: No.

Default: No default value.

ConvectionModel

Input group to define and set a heat convection model between the particles and the surrounding fluid.

It is necessary to create a fluid material for considering heat convection.

If no heat convection model is set to particles, this heat transfer mechanisms is not taken into account.

Template
"ConvectionModel": [
{
	"nusselt_correlation" : "sphere_hanz_marshall"/"sphere_whitaker",
	"particles"           : [0,0,0],
	"model_parts"         : ["mp_name_1","mp_name_2"]
},{
	"nusselt_correlation" : "sphere_hanz_marshall"/"sphere_whitaker",
	"particles"           : [0,0,0],
	"model_parts"         : ["PARTICLES"]
}
]
"nusselt_correlation"

Description: Correlation for calculating the Nusselt number.

Type: String.

Options: "sphere_hanz_marshall" or "sphere_whitaker".

Mandatory: Yes.

Default: No default value.

"particles"

Description: Array of particles IDs to apply the model.

Type: Integer array.

Options: No option.

Mandatory: No.

Default: No default value.

"model_parts"

Description: Array of model parts names to apply the model (the keyword "PARTICLES" applies the model to all particles).

Type: String array.

Options: No option.

Mandatory: No.

Default: No default value.

InteractionModel

Input group to define models for the mechanical and thermal interactions between elements and set their properties.

This input group can be composed of up to 6 sub-groups of input data, each one responsible for a specific interaction type.

When an interaction type is not set, this interaction is not considered during the simulation.

Template
"InteractionModel": {
	"contact_force_normal": {
		"model"                      : "viscoelastic_linear"/"viscoelastic_nonlinear"/"elastoplastic_linear",
		"remove_artificial_cohesion" : true/false,
		"stiff_formula"              : "energy"/"overlap"/"time",
		"load_stiff_formula"         : "energy"/"overlap"/"time",
		"unload_stiff_formula"       : "constant"/"variable",
		"stiff_coeff"                : 0.0,
		"unload_param"               : 0.0,
		"damping_formula"            : "critical_ratio"/"TTI"/"KK"/"LH",
		"damping_coeff"              : 0.0,
		"ratio"                      : 0.0,
		"restitution_coeff"          : 0.0
	},
	"contact_force_tangent": {
		"model"             : "simple_slider"/"simple_spring"/"simple_dashpot"/"spring_slider"/"dashpot_slider"/"sds_linear"/"sds_nonlinear",
		"formula"           : "DD"/"LTH"/"ZZY"/"TTI",
		"friction_coeff"    : 0.0,
		"damping_coeff"     : 0.0,
		"stiff_coeff"       : 0.0,
		"restitution_coeff" : 0.0
	},
	"rolling_resistance": {
		"model"            : "constant"/"viscous",
		"resistance_coeff" : 0.0
	},
	"area_correction": {
		"model" : "ZYZ"/"LMLB"/"MPMH"
	},
	"direct_conduction": {
		"model" : "bob"/"thermal_pipe"/"collisional"
	},
	"indirect_conduction": {
		"model"              : "vononoi_a"/"vononoi_b"/"surrounding_layer",
		"cell_size_method"   : "voronoi_diagram"/"porosity_local"/"porosity_global",
		"update_frequency"   : 0,
		"alpha_radius"       : 0.0,
		"cutoff_distance"    : 0.0,
		"core_radius"        : 0.0,
		"min_distance"       : 0.0,
		"layer_thick"        : 0.0,
		"tolerance_absolute" : 0.0,
		"tolerance_relative" : 0.0
	}
}

InteractionModel.contact_force_normal

Settings of the interaction model for calculating the normal contact force between elements.

Only for mechanical or thermo-mechanical analyses.

"model"

Description: Name of the model.

Type: String.

Options: "viscoelastic_linear", "viscoelastic_nonlinear" or "elastoplastic_linear".

Mandatory: Yes.

Default: No default option.

"remove_artificial_cohesion"

Description: Option for removing the artificial cohesive force that may appear after particles detach.

Only for models "viscoelastic_linear" and "viscoelastic_nonlinear".

Type: Boolean.

Options: true or false.

Mandatory: No.

Default: true.

"stiff_formula"

Description: Formula used for calculating the spring stiffness coefficient. The formula is ignored if a fixed value of the stiffness coefficient is prescribed in the input field "stiff_coeff".

Only for models "viscoelastic_linear" and "elastoplastic_linear".

Type: String.

Options: "energy", "overlap" or "time".

Mandatory: No.

Default: "energy".

"load_stiff_formula"

Description: Formula used for calculating the spring stiffness coefficient during loading. The formula is ignored if a fixed value of the stiffness coefficient is prescribed in the input field "stiff_coeff".

Only for model "elastoplastic_linear".

Type: String.

Options: "energy", "overlap" or "time".

Mandatory: No.

Default: "energy".

"unload_stiff_formula"

Description: Formula used for calculating the spring stiffness coefficient during unloading.

Only for model "elastoplastic_linear".

Type: String.

Options: "constant" or "variable".

Mandatory: No.

Default: "constant"

"stiff_coeff"

Description: Fixed value prescribed for the spring stiffness coefficient. When defined, this value overrides the "stiff_formula" or "load_stiff_formula".

Only for models "viscoelastic_linear" and "elastoplastic_linear".

Type: Real scalar.

Options: Positive value.

Mandatory: No.

Default: No default value.

"unload_param"

Description: Unload parameter for the variable stiffness coefficient.

Only for model "elastoplastic_linear".

Type: Real scalar.

Options: Positive value.

Mandatory: Only if input field "unload_stiff_formula" is set to "variable".

Default: No default value.

"damping_formula"

Description: Formula used for calculating the nonlinear viscous damping coefficient.

Only for model "viscoelastic_nonlinear".

Type: String.

Options: "critical_ratio", "TTI", "KK" or "LH".

Mandatory: Yes.

Default: No default value.

"damping_coeff"

Description: Fixed value prescribed for the viscous damping coefficient.

Only for models "viscoelastic_linear" and "viscoelastic_nonlinear".

Type: Real scalar.

Options: Positive value.

Mandatory: Only if input field "damping_formula" is set to "KK" or "LH".

Default: No default value.

"ratio"

Description: Critical damping ratio.

Only for model "viscoelastic_nonlinear".

Type: Real scalar.

Options: Positive value.

Mandatory: Only if input field "damping_formula" is set to "critical_ratio".

Default: No default value.

"restitution_coeff"

Description: Coefficient of restitution.

Type: Real scalar.

Options: Value between 0 and 1.

Mandatory: No.

Default: No default value.

InteractionModel.contact_force_tangent

Settings of the interaction model for calculating the tangent contact force between elements.

Only for mechanical or thermo-mechanical analyses.

"model"

Description: Name of the model.

Type: String.

Options: "simple_slider", "simple_spring", "simple_dashpot", "spring_slider", "dashpot_slider", "sds_linear" or "sds_nonlinear".

Mandatory: Yes.

Default: No default option.

"formula"

Description: Formula used for calculating the elastic and viscous components of the nonlinear tangent force.

Only for model "sds_nonlinear".

Type: String.

Options: "DD", "LTH", "ZZY" or "TTI".

Mandatory: Yes.

Default: No default value.

"friction_coeff"

Description: Friction coefficient for the slider component.

Only for models "simple_slider", "spring_slider", "dashpot_slider", "sds_linear" or "sds_nonlinear".

Type: Real scalar.

Options: Positive value.

Mandatory: Yes.

Default: No default value.

"damping_coeff"

Description: Viscous damping coefficient for the dashpot component.

Only for models "simple_dashpot", "dashpot_slider", "sds_linear" or "sds_nonlinear".

Type: Real scalar.

Options: Positive value.

Mandatory: Only for models "simple_dashpot", "dashpot_slider" or "sds_nonlinear".

Default: Default value is automatically calculated for model "sds_linear".

"stiff_coeff"

Description: Stiffness coefficient for the spring component.

Only for models "simple_spring", "spring_slider" or "sds_linear".

Type: Real scalar.

Options: Positive value.

Mandatory: No.

Default: Default value is automatically calculated based on the normal stiffness coefficient and the Poisson ratio.

"restitution_coeff"

Description: Coefficient of restitution.

Type: Real scalar.

Options: Value between 0 and 1.

Mandatory: No.

Default: No default value.

InteractionModel.rolling_resistance

Settings of the interaction model for calculating the rolling resistance torque between elements.

Only for mechanical or thermo-mechanical analyses.

"model"

Description: Name of the model.

Type: String.

Options: "constant" or "viscous".

Mandatory: Yes.

Default: No default value.

"resistance_coeff"

Description: Rolling resistance coefficient.

Type: Real scalar.

Options: Positive value.

Mandatory: Yes.

Default: No default value.

InteractionModel.area_correction

Settings of the interaction model for calculating the correction of contact area between elements.

"model"

Description: Name of the model.

Type: String.

Options: "ZYZ", "LMLB" or "MPMH".

Mandatory: Yes.

Default: No default value.

InteractionModel.direct_conduction

Settings of the interaction model for calculating the direct heat conduction between elements.

Only for thermal or thermo-mechanical analyses.

"model"

Description: Name of the model.

Type: String.

Options: "bob", "thermal_pipe" or "collisional".

Mandatory: Yes.

Default: No default value.

InteractionModel.indirect_conduction

Settings of the interaction model for calculating the indirect heat conduction between elements.

Only for thermal or thermo-mechanical analyses.

"model"

Description: Name of the model.

Type: String.

Options: "vononoi_a", "vononoi_b" or "surrounding_layer".

Mandatory: Yes.

Default: No default value.

"cell_size_method"

Description: Method used to compute the size of the voronoi cells.

Only for models "vononoi_a" or "vononoi_b".

Type: String.

Options: "voronoi_diagram", "porosity_local" or "porosity_global".

Mandatory: Yes.

Default: No default value.

"update_frequency"

Description: Frequency (in number of steps) to update the voronoi diagram or the value of the model porosity, depending on the method selected for computing the voronoi cells size.

Only for models "vononoi_a" or "vononoi_b".

Type: Integer scalar.

Options: Positive value.

Mandatory: No.

Default: Same as the search frequency.

"alpha_radius"

Description: Alpha radius used in the alpha-shape method to build a polygon enclosing all particles to calculate the volume and porosity of the model.

Only for models "vononoi_a" or "vononoi_b", when the voronoi cells size is calculated with the methods "porosity_local" or "porosity_global".

Type: Real scalar.

Options: Positive value.

Mandatory: No.

Default: Infinity (i.e. build the convex hull over all particles).

"cutoff_distance"

Description: Cutoff distance between particles surfaces, as a ratio of the largest radius between the two particles, to consider or not the indirect heat conduction.

Only for models "vononoi_a" or "vononoi_b".

Type: Real scalar.

Options: Positive value.

Mandatory: No.

Default: 1.

"core_radius"

Description: Isothermal core radius as a ratio of the particle radius.

Only for model "vononoi_b".

Type: Real scalar.

Options: Value between 0 and 1.

Mandatory: No.

Default: 0.5.

"min_distance"

Description: Minimum separation distance of particles surfaces.

Only for model "surrounding_layer".

Type: Real scalar.

Options: Positive value.

Mandatory: No.

Default: 2.75e-8.

"layer_thick"

Description: Thickness of the surrounding fluid layer as a ratio of the particle radius.

Only for model "surrounding_layer".

Type: Real scalar.

Options: Positive value.

Mandatory: No.

Default: 0.4.

"tolerance_absolute"

Description: Absolute tolerance for numerical integration.

Only for models "vononoi_a" or "surrounding_layer".

Type: Real scalar.

Options: Positive value.

Mandatory: No.

Default: 1e-10.

"tolerance_relative"

Description: Relative tolerance for numerical integration.

Only for models "vononoi_a" or "surrounding_layer".

Type: Real scalar.

Options: Positive value.

Mandatory: No.

Default: 1e-6.

Output

Input group to define general output configurations for the simulation results.

Template
"Output": {
	"progress_print" : 0.0,
	"number_output"  : 0,
	"save_workspace" : true/false,
	"saved_results"  : ["time",
                            "step",
                            "radius",
                            "mass",
                            "coord_x",
                            "coord_y",
                            "orientation",
                            "wall_position",
                            "force_x",
                            "force_y",
                            "torque",
                            "velocity_x",
                            "velocity_y",
                            "velocity_rot",
                            "acceleration_x",
                            "acceleration_y",
                            "acceleration_rot",
                            "velocity_mod_avg",
                            "velocity_rot_avg",
                            "acceleration_mod_avg",
                            "acceleration_rot_avg",
                            "velocity_mod_min",
                            "velocity_mod_max",
                            "velocity_rot_min",
                            "velocity_rot_max",
                            "acceleration_mod_min",
                            "acceleration_mod_max",
                            "acceleration_rot_min",
                            "acceleration_rot_max",
                            "temperature",
                            "temperature_avg",
                            "temperature_min",
                            "temperature_max",
                            "wall_temperature",
                            "heat_rate",
                            "heat_rate_total",
                            "conduction_direct_total",
                            "conduction_indirect_total"]
}
"progress_print"

Description: Percentage of simulation progress (% of completed time steps) to send a notification on the command window.

Type: Real scalar.

Options: Positive value.

Mandatory: No.

Default: 1 (i.e. receive a notification every 1% progress).

"number_output"

Description: Total number of steps (equally spaced) in which the outputs are generated (graph points, animation frames, file writing, etc).

Type: Integer scalar.

Options: Positive value.

Mandatory: No.

Default: 100.

"save_workspace"

Description: Option to save all the current simulation state and results in a Results Storage file, which can be later used for loading results or restart the simulation. The file is written in the same frequency given by number_output.

Notice that it can significantly reduce the simulation performance.

Type: Boolean.

Options: true or false.

Mandatory: No.

Default: true.

"saved_results"

Description: List of additional results to be saved in memory and stored in a Results Storage file. These results can be later loaded from the Results Storage file.

The results requested for graphs and animations are automatically saved and do not need to be included here.

Type: String.

Options:

  • General results:

"time","step","radius","mass","coord_x","coord_y","orientation","wall_position".

  • Mechanical results:

"force_x","force_y","torque", "velocity_x","velocity_y","velocity_rot", "acceleration_x","acceleration_y","acceleration_rot", "velocity_mod_avg",velocity_rot_avg", "acceleration_mod_avg","acceleration_rot_avg", "velocity_mod_min","velocity_mod_max","velocity_rot_min","velocity_rot_max", "acceleration_mod_min","acceleration_mod_max","acceleration_rot_min","acceleration_rot_max".

  • Thermal results:

"temperature","temperature_avg","temperature_min","temperature_max","wall_temperature", "heat_rate","heat_rate_total","conduction_direct_total","conduction_indirect_total".

Mandatory: No.

Default: No default value.

Animation

Input group to create animations and define their configurations.

Template
"Animation": [
{
	"title"          : "Animation_1",
	"auto_play"      : true/false,
	"particle_ids"   : true/false,
	"bounding_box"   : [0.0,0.0,0.0,0.0],
	"colorbar_range" : [0.0,0.0],
	"result"         : "radius"/"mass"/"motion"/"coordinate_x"/"coordinate_y"/"orientation"/
                           "force_vector"/"force_modulus"/"force_x"/"force_y"/"torque"/
                           "velocity_vector"/"velocity_modulus"/"velocity_x"/"velocity_y"/"velocity_rot"/
                           "acceleration_vector"/"acceleration_modulus"/"acceleration_x"/"acceleration_y"/"acceleration_rot"/
                           "heat_rate"/"temperature"
},{
	"title"          : "Animation_2",
	"auto_play"      : true/false,
	"particle_ids"   : true/false,
	"bounding_box"   : [0.0,0.0,0.0,0.0],
	"colorbar_range" : [0.0,0.0],
	"result"         : "radius"/"mass"/"motion"/"coordinate_x"/"coordinate_y"/"orientation"/
                           "force_vector"/"force_modulus"/"force_x"/"force_y"/"torque"/
                           "velocity_vector"/"velocity_modulus"/"velocity_x"/"velocity_y"/"velocity_rot"/
                           "acceleration_vector"/"acceleration_modulus"/"acceleration_x"/"acceleration_y"/"acceleration_rot"/
                           "heat_rate"/"temperature"
}
]
"title"

Description: Unique title for the animation.

Type: String.

Options: No option.

Mandatory: No.

Default: Animation named according to the order of creation.

"auto_play"

Description: Option for displaying the animation right after its creation, at the end of the simulation.

Type: Boolean.

Options: true or false.

Mandatory: No.

Default: true.

"particle_ids"

Description: Option for displaying the ID numbers of the particles.

Type: Boolean.

Options: true or false.

Mandatory: No.

Default: false.

"bounding_box"

Description: Fixed values of the XY coordinates to define a rectangular area for the visualization.

Type: Real array with 4 elements.

Options: Four values representing the XY coordinates limits: Xmin, Xmax, Ymin, Ymax (Xmin must be smaller than Xmax, and Ymin must be smaller than Ymax).

Mandatory: No.

Default: Animation limits are not fixed and may change along the steps.

"colorbar_range"

Description: Range of values to adjust the colorbar of animations. Applicable to scalar results.

Type: Real array with 2 elements.

Options: Pair of values with the limits of results values to show, where the first is the minimum and the second is the maximum (min value must be smaller than max value).

Mandatory: No.

Default: Range is automatically set as the limit result values in the simulation.

"result"

Description: Result to be shown in the animation.

Type: String.

Options:

  • General results:

"radius","mass","motion","coordinate_x","coordinate_y","orientation".

  • Mechanical results:

"force_vector","force_modulus","force_x","force_y","torque", "velocity_vector","velocity_modulus","velocity_x","velocity_y","velocity_rot", "acceleration_vector","acceleration_modulus","acceleration_x","acceleration_y","acceleration_rot".

  • Thermal results:

"heat_rate","temperature".

Mandatory: Yes.

Default: No default value.

Graph

Input group to create graphs and define their configurations.

Template
"Graph": [
{
	"title"  : "Graph_1",
	"axis_x" : "time"/"step"/
                   "radius"/"mass"/"coordinate_x"/"coordinate_y"/"orientation"/
                   "velocity_mod_avg"/"velocity_rot_avg"/
                   "acceleration_mod_avg"/"acceleration_rot_avg"/
                   "velocity_mod_min"/"velocity_mod_max"/"velocity_rot_min"/"velocity_rot_max"/
                   "acceleration_mod_min"/"acceleration_mod_max"/"acceleration_rot_min"/"acceleration_rot_max"/
                   "force_modulus"/"force_x"/"force_y"/"torque"/
                   "velocity_modulus"/"velocity_x"/"velocity_y"/"velocity_rot"/
                   "acceleration_modulus"/"acceleration_x"/"acceleration_y"/"acceleration_rot"/
                   "temperature_avg"/"temperature_min"/"temperature_max"/
                   "heat_rate_total"/"conduction_direct_total"/"conduction_indirect_total"/
                   "temperature"/"heat_rate",
	"axis_y" : "time"/"step"/
                   "radius"/"mass"/"coordinate_x"/"coordinate_y"/"orientation"/
                   "velocity_mod_avg"/"velocity_rot_avg"/
                   "acceleration_mod_avg"/"acceleration_rot_avg"/
                   "velocity_mod_min"/"velocity_mod_max"/"velocity_rot_min"/"velocity_rot_max"/
                   "acceleration_mod_min"/"acceleration_mod_max"/"acceleration_rot_min"/"acceleration_rot_max"/
                   "force_modulus"/"force_x"/"force_y"/"torque"/
                   "velocity_modulus"/"velocity_x"/"velocity_y"/"velocity_rot"/
                   "acceleration_modulus"/"acceleration_x"/"acceleration_y"/"acceleration_rot"/
                   "temperature_avg"/"temperature_min"/"temperature_max"/
                   "heat_rate_total"/"conduction_direct_total"/"conduction_indirect_total"/
                   "temperature"/"heat_rate",
	"curve"  : [
	{
		"name"       : "curve1",
		"particle_x" : 0,
		"particle_y" : 0
	},{
		"name"       : "curve2",
		"particle_x" : 0,
		"particle_y" : 0
	}
	]
},{
	"title"  : "Graph_2",
	"axis_x" : "time"/"step"/
                   "radius"/"mass"/"coordinate_x"/"coordinate_y"/"orientation"/
                   "velocity_mod_avg"/"velocity_rot_avg"/
                   "acceleration_mod_avg"/"acceleration_rot_avg"/
                   "velocity_mod_min"/"velocity_mod_max"/"velocity_rot_min"/"velocity_rot_max"/
                   "acceleration_mod_min"/"acceleration_mod_max"/"acceleration_rot_min"/"acceleration_rot_max"/
                   "force_modulus"/"force_x"/"force_y"/"torque"/
                   "velocity_modulus"/"velocity_x"/"velocity_y"/"velocity_rot"/
                   "acceleration_modulus"/"acceleration_x"/"acceleration_y"/"acceleration_rot"/
                   "temperature_avg"/"temperature_min"/"temperature_max"/
                   "heat_rate_total"/"conduction_direct_total"/"conduction_indirect_total"/
                   "temperature"/"heat_rate",
	"axis_y" : "time"/"step"/
                   "radius"/"mass"/"coordinate_x"/"coordinate_y"/"orientation"/
                   "velocity_mod_avg"/"velocity_rot_avg"/
                   "acceleration_mod_avg"/"acceleration_rot_avg"/
                   "velocity_mod_min"/"velocity_mod_max"/"velocity_rot_min"/"velocity_rot_max"/
                   "acceleration_mod_min"/"acceleration_mod_max"/"acceleration_rot_min"/"acceleration_rot_max"/
                   "force_modulus"/"force_x"/"force_y"/"torque"/
                   "velocity_modulus"/"velocity_x"/"velocity_y"/"velocity_rot"/
                   "acceleration_modulus"/"acceleration_x"/"acceleration_y"/"acceleration_rot"/
                   "temperature_avg"/"temperature_min"/"temperature_max"/
                   "heat_rate_total"/"conduction_direct_total"/"conduction_indirect_total"/
                   "temperature"/"heat_rate",
	"curve"  : [
	{
		"name"       : "curve1",
		"particle_x" : 0,
		"particle_y" : 0
	},{
		"name"       : "curve2",
		"particle_x" : 0,
		"particle_y" : 0
	}
	]
}
]
"title"

Description: Unique title for the graph.

Type: String.

Options: No option.

Mandatory: No.

Default: Graph named according to the order of creation.

"axis_x"

Description: Result to be plotted in the X axis.

Type: String.

Options:

  • General results for the whole model:

"time","step".

  • General results for individual particles:

"radius","mass","coordinate_x","coordinate_y","orientation".

  • Mechanical results for the whole model:

"velocity_mod_avg","velocity_rot_avg", "acceleration_mod_avg","acceleration_rot_avg", "velocity_mod_min","velocity_mod_max","velocity_rot_min","velocity_rot_max", "acceleration_mod_min","acceleration_mod_max","acceleration_rot_min","acceleration_rot_max".

  • Mechanical results for individual particles:

"force_modulus","force_x","force_y","torque", "velocity_modulus","velocity_x","velocity_y","velocity_rot", "acceleration_modulus","acceleration_x","acceleration_y","acceleration_rot".

  • Thermal results for the whole model:

"temperature_avg","temperature_min","temperature_max",... "heat_rate_total","conduction_direct_total","conduction_indirect_total".

  • Thermal results for individual particles:

"temperature","heat_rate".

Mandatory: Yes.

Default: No default value.

"axis_y"

Description: Result to be plotted in the Y axis.

Type: String.

Options:

  • General results for the whole model:

"time","step".

  • General results for individual particles:

"radius","mass","coordinate_x","coordinate_y","orientation".

  • Mechanical results for the whole model:

"velocity_mod_avg","velocity_rot_avg", "acceleration_mod_avg","acceleration_rot_avg", "velocity_mod_min","velocity_mod_max","velocity_rot_min","velocity_rot_max", "acceleration_mod_min","acceleration_mod_max","acceleration_rot_min","acceleration_rot_max".

  • Mechanical results for individual particles:

"force_modulus","force_x","force_y","torque", "velocity_modulus","velocity_x","velocity_y","velocity_rot", "acceleration_modulus","acceleration_x","acceleration_y","acceleration_rot".

  • Thermal results for the whole model:

"temperature_avg","temperature_min","temperature_max",... "heat_rate_total","conduction_direct_total","conduction_indirect_total".

  • Thermal results for individual particles:

"temperature","heat_rate".

Mandatory: Yes.

Default: No default value.

"curve"

Description: Input sub-group to create curves for the graph and define their configurations.

"name": Name of the curve (by default, curves are named in the order of creation).

"particle_x": ID of particle for the result of the X axis, in case this is an individual particle result. For model results, this is not needed.

"particle_y": ID of particle for the result of the Y axis, in case this is an individual particle result. For model results, this is not needed.

Print

Input group to set options for printing the results into output files.

Template
"Print": {
	"single_file"     : true/false,
	"printed_results" : ["position","velocity","acceleration","temperature"]
}
"single_file"

Description: Option for printing the results of all steps in a single file or in separated files.

Type: Boolean.

Options: true or false.

Mandatory: No.

Default: false.

"printed_results"

Description: List of results to be printed.

Type: String.

Options: "position","velocity","acceleration","temperature".

Mandatory: No.

Default: No default value.