{
  "category": "clump",
  "search_keywords": [
    "history",
    "track",
    "monitor"
  ],
  "description": "Add a history of a clump value. A history is a table of floating point values assigned by sampling a model attribute periodically during a simulation. The clump must be specified by either 'id' or 'position' keyword following the quantity keyword. The history can be assigned a name for later reference with the optional name keyword; if not, the history will be given a default name based on its internally assigned id number.",
  "quantity_categories": {
    "position": [
      "position-x",
      "position-y",
      "position-z",
      "displacement",
      "displacement-x/y/z"
    ],
    "velocity": [
      "velocity",
      "velocity-x",
      "velocity-y",
      "velocity-z",
      "spin",
      "spin-x/y/z (3D)"
    ],
    "orientation": [
      "euler-x (3D)",
      "euler-y (3D)",
      "euler-z (3D)",
      "rotation (2D)"
    ],
    "forces": [
      "force-contact",
      "force-contact-x/y/z",
      "force-unbalanced",
      "force-unbalanced-x/y/z"
    ],
    "moments": [
      "moment-contact",
      "moment-contact-x/y/z (3D)",
      "moment-unbalanced",
      "moment-unbalanced-x/y/z (3D)"
    ],
    "stress": [
      "stress"
    ],
    "other": [
      "extra"
    ]
  },
  "notes": [
    "Following one of the quantity keywords, either 1) an 'id' keyword followed by an integer id, or 2) a 'position' keyword followed by a position vector must be given to define the specific clump",
    "Review the common history commands for details regarding the manipulation of histories",
    "Orientation tracking must be enabled (model orientation-tracking) to record euler angles or rotation"
  ],
  "python_sdk_alternative": {
    "available": false,
    "workaround": "itasca.command('clump history ...') or manually record values using itasca.set_callback() with Clump getter methods"
  },
  "versions": {
    "7.0": {
      "command": "clump history",
      "syntax": "clump history [name <sid>] keyword ...",
      "keywords": [
        {
          "name": "displacement",
          "syntax": "displacement",
          "description": "Magnitude of the accumulated clump displacement vector as a result of cycling."
        },
        {
          "name": "displacement-x",
          "syntax": "displacement-x",
          "description": "The \\(x\\) -component of accumulated displacement as a result of cycling."
        },
        {
          "name": "displacement-y",
          "syntax": "displacement-y",
          "description": "The \\(y\\) -component of accumulated displacement as a result of cycling."
        },
        {
          "name": "displacement-z",
          "syntax": "displacement-z",
          "description": "The \\(z\\) -component of accumulated displacement as a result of cycling."
        },
        {
          "name": "euler-x",
          "syntax": "euler-x",
          "description": "The \\(x\\) -euler angle (in degrees) of the current clump orientation. The orientation is updated only when orientation tracking has been enabled (see the model orientation-tracking command). See the euler keyword of the clump attribute command."
        },
        {
          "name": "euler-y",
          "syntax": "euler-y",
          "description": "The \\(y\\) -euler angle (in degrees) of the current clump orientation. The orientation is updated only when orientation tracking has been enabled (see the model orientation-tracking command). See the euler keyword of the clump attribute command."
        },
        {
          "name": "euler-z",
          "syntax": "euler-z",
          "description": "The \\(z\\) -euler angle (in degrees) of the current clump orientation. The orientation is updated only when orientation tracking has been enabled (see the model orientation-tracking command). See the euler keyword of the clump attribute command."
        },
        {
          "name": "extra",
          "syntax": "extra",
          "description": "Take a history of an extra variable. Use index to specify the extra index and type to specify the type."
        },
        {
          "name": "force-contact",
          "syntax": "force-contact",
          "description": "The magnitude of the force resulting from contacts."
        },
        {
          "name": "force-contact-x",
          "syntax": "force-contact-x",
          "description": "The \\(x\\) -component of the contact force."
        },
        {
          "name": "force-contact-y",
          "syntax": "force-contact-y",
          "description": "The \\(y\\) -component of the contact force."
        },
        {
          "name": "force-contact-z",
          "syntax": "force-contact-z",
          "description": "The \\(z\\) -component of the contact force."
        },
        {
          "name": "force-unbalanced",
          "syntax": "force-unbalanced",
          "description": "The magnitude of the unbalanced force (sum of the applied, contact and gravitational forces)."
        },
        {
          "name": "force-unbalanced-x",
          "syntax": "force-unbalanced-x",
          "description": "The \\(x\\) -component of the unbalanced force."
        },
        {
          "name": "force-unbalanced-y",
          "syntax": "force-unbalanced-y",
          "description": "The \\(y\\) -component of the unbalanced force."
        },
        {
          "name": "force-unbalanced-z",
          "syntax": "force-unbalanced-z",
          "description": "The \\(z\\) -component of the unbalanced force."
        },
        {
          "name": "moment-contact",
          "syntax": "moment-contact",
          "description": "{Value in 2D; Magnitude in 3D} of the sum of the contact moments."
        },
        {
          "name": "moment-contact-x",
          "syntax": "moment-contact-x",
          "description": "The \\(x\\) -component of the contact moment."
        },
        {
          "name": "moment-contact-y",
          "syntax": "moment-contact-y",
          "description": "The \\(y\\) -component of the contact moment."
        },
        {
          "name": "moment-contact-z",
          "syntax": "moment-contact-z",
          "description": "The \\(z\\) -component of the contact moment."
        },
        {
          "name": "moment-unbalanced",
          "syntax": "moment-unbalanced",
          "description": "{Value in 2D; Magnitude in 3D} of the sum of the contact and applied moments."
        },
        {
          "name": "moment-unbalanced-x",
          "syntax": "moment-unbalanced-x",
          "description": "The \\(x\\) -component of the unbalanced moment."
        },
        {
          "name": "moment-unbalanced-y",
          "syntax": "moment-unbalanced-y",
          "description": "The \\(y\\) -component of the unbalanced moment."
        },
        {
          "name": "moment-unbalanced-z",
          "syntax": "moment-unbalanced-z",
          "description": "The \\(z\\) -component of the unbalanced moment."
        },
        {
          "name": "position-x",
          "syntax": "position-x",
          "description": "The \\(x\\) -component of the location of clump centroid."
        },
        {
          "name": "position-y",
          "syntax": "position-y",
          "description": "The \\(y\\) -component of the location of clump centroid."
        },
        {
          "name": "position-z",
          "syntax": "position-z",
          "description": "The \\(z\\) -component of the location of clump centroid."
        },
        {
          "name": "rotation",
          "syntax": "rotation",
          "description": "Current clump orientation. The orientation is updated only when orientation tracking has been enabled (see model orientation-tracking command)."
        },
        {
          "name": "spin",
          "syntax": "spin",
          "description": "{Value in 2D; Magnitude in 3D} of the clump angular velocity in radians per second."
        },
        {
          "name": "spin-x",
          "syntax": "spin-x",
          "description": "The \\(x\\) -component of the clump angular velocity in radians per second."
        },
        {
          "name": "spin-y",
          "syntax": "spin-y",
          "description": "The \\(y\\) -component of the clump angular velocity in radians per second."
        },
        {
          "name": "spin-z",
          "syntax": "spin-z",
          "description": "The \\(z\\) -component of the clump angular velocity in radians per second."
        },
        {
          "name": "stress",
          "syntax": "stress",
          "description": "The clump stress. Use the quantity keyword to specify the quantity to be recorded."
        },
        {
          "name": "velocity",
          "syntax": "velocity",
          "description": "Magnitude of the clump translational velocity vector."
        },
        {
          "name": "velocity-x",
          "syntax": "velocity-x",
          "description": "The \\(x\\) -component of the clump velocity."
        },
        {
          "name": "velocity-y",
          "syntax": "velocity-y",
          "description": "The \\(y\\) -component of the clump velocity."
        },
        {
          "name": "velocity-z",
          "syntax": "velocity-z",
          "description": "The \\(z\\) -component of the clump velocity."
        },
        {
          "name": "magnitude",
          "syntax": "magnitude",
          "description": "This keyword selects which scalar to retrieve from a vector type value, such as velocity or displacement. If the value type is not a vector, this setting is ignored. The available options are:"
        },
        {
          "name": "kwd:id",
          "syntax": "id <i>",
          "description": "Record the history of clump with ID i ."
        },
        {
          "name": "kwd:index",
          "syntax": "index <i>",
          "description": "For keywords that require it (most notably extra ), this specifies the index that should be used."
        },
        {
          "name": "kwd:log",
          "syntax": "log <b>",
          "description": "If on , the returned number is the base 10 log of the absolute value of the original value. The default is off ."
        },
        {
          "name": "kwd:position",
          "syntax": "position <v>",
          "description": "Record the history of clump either containing or closest to position v ."
        },
        {
          "name": "zz",
          "syntax": "zz",
          "description": "This keyword selects which scalar to retrieve from a symmetric tensor type value, such as stress or strain. If the value type is not a tensor, this setting is ignored. The available options are: Record the intermediate principal value of the tensor. Record the maximum (most positive) principal value of the tensor. Note that compressive stresses are negative . Record the mean value, defined as the trace of the tensor divided by { 2 in 2D; 3 in 3D}. For stresses this is most often referred to as the pressure. Record the minimum (most negative) principal value of the tensor. Note that compressive stresses are negative . Record the norm of the full tensor. This is defined as the sum of each tensor component squared. Record the octahedral measure of the tensor. Record the maximum shear value. Record the distance of the tensor value to the origin in principal space. Record the volumetric change, or trace of the tensor. Record the Von Mises measure. Record the xx -component of the tensor. Record the xy -component of the tensor. Record the xz -component of the tensor. Record the yy -component of the tensor. Record the yz -component of the tensor. Record the zz -component of the tensor."
        },
        {
          "name": "vector",
          "syntax": "vector",
          "description": "In certain cases the type (scalar, vector, or tensor) of the value cannot necessarily be determined ahead of time. Extra variables, for example, can hold values of all three types. This keyword allows one to specify which type it is assumed to be. If the original value type does not match, 0.0 is returned. Specify a scalar float type. Specify a tensor type. Specify a vector type."
        }
      ],
      "examples": [
        {
          "command": "clump history name 'clump_pos' position-x id 1",
          "description": "Record x-position of clump 1 with history name 'clump_pos'"
        },
        {
          "command": "clump history velocity-z id 100",
          "description": "Record z-velocity of clump 100 (auto-generated history name)"
        },
        {
          "command": "clump history force-unbalanced id 5",
          "description": "Record magnitude of unbalanced force on clump 5"
        },
        {
          "command": "clump history name 'center_clump' displacement position (0,0,0)",
          "description": "Record displacement magnitude of clump nearest to origin"
        },
        {
          "command": "clump history extra index 1 type float id 10",
          "description": "Record extra variable at index 1 (float type) for clump 10"
        },
        {
          "command": "clump history stress quantity intermediate id 50",
          "description": "Record intermediate principal stress of clump 50"
        }
      ]
    },
    "6.0": {
      "command": "clump history",
      "syntax": "clump history [name <sid>] keyword id <id>or position <v>",
      "keywords": [
        {
          "name": "velocity-z",
          "syntax": "velocity-z",
          "description": "The x -component of accumulated displacement as a result of cycling. The y -component of accumulated displacement as a result of cycling. The z -component of accumulated displacement as a result of cycling. The x -euler angle (in degrees) of the current clump orientation. The orientation is updated only when orientation tracking has been enabled (see the model orientation-tracking command). See the euler keyword of the clump attribute command. The y -euler angle (in degrees) of the current clump orientation. The orientation is updated only when orientation tracking has been enabled (see the model orientation-tracking command). See the euler keyword of the clump attribute command. The z -euler angle (in degrees) of the current clump orientation. The orientation is updated only when orientation tracking has been enabled (see the model orientation-tracking command). See the euler keyword of the clump attribute command. The magnitude of the force resulting from contacts. The x -component of the contact force. The y -component of the contact force. The z -component of the contact force. The magnitude of the unbalanced force (sum of the applied, contact and gravitational forces). The x -component of the unbalanced force. The y -component of the unbalanced force. The z -component of the unbalanced force. {Value in 2D; Magnitude in 3D} of the sum of the contact moments. The x -component of the contact moment. The y -component of the contact moment. The z -component of the contact moment. {Value in 2D; Magnitude in 3D} of the sum of the contact and applied moments. The x -component of the unbalanced moment. The y -component of the unbalanced moment. The z -component of the unbalanced moment. The x -component of the location of clump centroid. The y -component of the location of clump centroid. The z -component of the location of clump centroid. Current clump orientation. The orientation is updated only when orientation tracking has been enabled (see model orientation-tracking command). {Value in 2D; Magnitude in 3D} of the clump angular velocity in radians per second. The x -component of the clump angular velocity in radians per second. The y -component of the clump angular velocity in radians per second. The z -component of the clump angular velocity in radians per second. Magnitude of the clump translational velocity vector. The x -component of the clump velocity. The y -component of the clump velocity. The z -component of the clump velocity."
        }
      ],
      "examples": [
        {
          "command": "clump history name 'clump_pos' position-x id 1",
          "description": "Record x-position of clump 1 with history name 'clump_pos'"
        },
        {
          "command": "clump history velocity-z id 100",
          "description": "Record z-velocity of clump 100 (auto-generated history name)"
        },
        {
          "command": "clump history force-unbalanced id 5",
          "description": "Record magnitude of unbalanced force on clump 5"
        },
        {
          "command": "clump history name 'center_clump' displacement position (0,0,0)",
          "description": "Record displacement magnitude of clump nearest to origin"
        },
        {
          "command": "clump history extra index 1 type float id 10",
          "description": "Record extra variable at index 1 (float type) for clump 10"
        },
        {
          "command": "clump history stress quantity intermediate id 50",
          "description": "Record intermediate principal stress of clump 50"
        }
      ]
    },
    "9.0": {
      "command": "clump history",
      "syntax": "clump history [name <sid>] keyword ...",
      "keywords": [
        {
          "name": "displacement",
          "syntax": "displacement [clumphistoryblock]",
          "description": "Magnitude of the accumulated clump displacement vector as a result of cycling."
        },
        {
          "name": "displacement-x",
          "syntax": "displacement-x [clumphistoryblock]",
          "description": "The \\(x\\) -component of accumulated displacement as a result of cycling."
        },
        {
          "name": "displacement-y",
          "syntax": "displacement-y [clumphistoryblock]",
          "description": "The \\(y\\) -component of accumulated displacement as a result of cycling."
        },
        {
          "name": "displacement-z",
          "syntax": "displacement-z 3D ONLY [clumphistoryblock]",
          "description": "The \\(z\\) -component of accumulated displacement as a result of cycling."
        },
        {
          "name": "euler-x",
          "syntax": "euler-x 3D ONLY [clumphistoryblock]",
          "description": "The \\(x\\) -euler angle (in degrees) of the current clump orientation. The orientation is updated only when orientation tracking has been enabled (see the model orientation-tracking command). See the euler keyword of the clump attribute command."
        },
        {
          "name": "euler-y",
          "syntax": "euler-y 3D ONLY [clumphistoryblock]",
          "description": "The \\(y\\) -euler angle (in degrees) of the current clump orientation. The orientation is updated only when orientation tracking has been enabled (see the model orientation-tracking command). See the euler keyword of the clump attribute command."
        },
        {
          "name": "euler-z",
          "syntax": "euler-z 3D ONLY [clumphistoryblock]",
          "description": "The \\(z\\) -euler angle (in degrees) of the current clump orientation. The orientation is updated only when orientation tracking has been enabled (see the model orientation-tracking command). See the euler keyword of the clump attribute command."
        },
        {
          "name": "extra",
          "syntax": "extra [clumphistoryblock]",
          "description": "Take a history of an extra variable. Use index to specify the extra index and type to specify the type."
        },
        {
          "name": "force-contact",
          "syntax": "force-contact [clumphistoryblock]",
          "description": "The magnitude of the force resulting from contacts."
        },
        {
          "name": "force-contact-x",
          "syntax": "force-contact-x [clumphistoryblock]",
          "description": "The \\(x\\) -component of the contact force."
        },
        {
          "name": "force-contact-y",
          "syntax": "force-contact-y [clumphistoryblock]",
          "description": "The \\(y\\) -component of the contact force."
        },
        {
          "name": "force-contact-z",
          "syntax": "force-contact-z 3D ONLY [clumphistoryblock]",
          "description": "The \\(z\\) -component of the contact force."
        },
        {
          "name": "force-unbalanced",
          "syntax": "force-unbalanced [clumphistoryblock]",
          "description": "The magnitude of the unbalanced force (sum of the applied, contact and gravitational forces)."
        },
        {
          "name": "force-unbalanced-x",
          "syntax": "force-unbalanced-x [clumphistoryblock]",
          "description": "The \\(x\\) -component of the unbalanced force."
        },
        {
          "name": "force-unbalanced-y",
          "syntax": "force-unbalanced-y [clumphistoryblock]",
          "description": "The \\(y\\) -component of the unbalanced force."
        },
        {
          "name": "force-unbalanced-z",
          "syntax": "force-unbalanced-z 3D ONLY [clumphistoryblock]",
          "description": "The \\(z\\) -component of the unbalanced force."
        },
        {
          "name": "moment-contact",
          "syntax": "moment-contact [clumphistoryblock]",
          "description": "{Value in 2D; Magnitude in 3D} of the sum of the contact moments."
        },
        {
          "name": "moment-contact-x",
          "syntax": "moment-contact-x 3D ONLY [clumphistoryblock]",
          "description": "The \\(x\\) -component of the contact moment."
        },
        {
          "name": "moment-contact-y",
          "syntax": "moment-contact-y 3D ONLY [clumphistoryblock]",
          "description": "The \\(y\\) -component of the contact moment."
        },
        {
          "name": "moment-contact-z",
          "syntax": "moment-contact-z 3D ONLY [clumphistoryblock]",
          "description": "The \\(z\\) -component of the contact moment."
        },
        {
          "name": "moment-unbalanced",
          "syntax": "moment-unbalanced [clumphistoryblock]",
          "description": "{Value in 2D; Magnitude in 3D} of the sum of the contact and applied moments."
        },
        {
          "name": "moment-unbalanced-x",
          "syntax": "moment-unbalanced-x 3D ONLY [clumphistoryblock]",
          "description": "The \\(x\\) -component of the unbalanced moment."
        },
        {
          "name": "moment-unbalanced-y",
          "syntax": "moment-unbalanced-y 3D ONLY [clumphistoryblock]",
          "description": "The \\(y\\) -component of the unbalanced moment."
        },
        {
          "name": "moment-unbalanced-z",
          "syntax": "moment-unbalanced-z 3D ONLY [clumphistoryblock]",
          "description": "The \\(z\\) -component of the unbalanced moment."
        },
        {
          "name": "position-x",
          "syntax": "position-x [clumphistoryblock]",
          "description": "The \\(x\\) -component of the location of clump centroid."
        },
        {
          "name": "position-y",
          "syntax": "position-y [clumphistoryblock]",
          "description": "The \\(y\\) -component of the location of clump centroid."
        },
        {
          "name": "position-z",
          "syntax": "position-z 3D ONLY [clumphistoryblock]",
          "description": "The \\(z\\) -component of the location of clump centroid."
        },
        {
          "name": "rotation",
          "syntax": "rotation 2D ONLY [clumphistoryblock]",
          "description": "Current clump orientation. The orientation is updated only when orientation tracking has been enabled (see model orientation-tracking command)."
        },
        {
          "name": "spin",
          "syntax": "spin [clumphistoryblock]",
          "description": "{Value in 2D; Magnitude in 3D} of the clump angular velocity in radians per second."
        },
        {
          "name": "spin-x",
          "syntax": "spin-x 3D ONLY [clumphistoryblock]",
          "description": "The \\(x\\) -component of the clump angular velocity in radians per second."
        },
        {
          "name": "spin-y",
          "syntax": "spin-y 3D ONLY [clumphistoryblock]",
          "description": "The \\(y\\) -component of the clump angular velocity in radians per second."
        },
        {
          "name": "spin-z",
          "syntax": "spin-z 3D ONLY [clumphistoryblock]",
          "description": "The \\(z\\) -component of the clump angular velocity in radians per second."
        },
        {
          "name": "stress",
          "syntax": "stress [clumphistoryblock]",
          "description": "The clump stress. Use the quantity keyword to specify the quantity to be recorded."
        },
        {
          "name": "velocity",
          "syntax": "velocity [clumphistoryblock]",
          "description": "Magnitude of the clump translational velocity vector."
        },
        {
          "name": "velocity-x",
          "syntax": "velocity-x [clumphistoryblock]",
          "description": "The \\(x\\) -component of the clump velocity."
        },
        {
          "name": "velocity-y",
          "syntax": "velocity-y [clumphistoryblock]",
          "description": "The \\(y\\) -component of the clump velocity."
        },
        {
          "name": "velocity-z",
          "syntax": "velocity-z 3D ONLY [clumphistoryblock]",
          "description": "The \\(z\\) -component of the clump velocity."
        },
        {
          "name": "magnitude",
          "syntax": "magnitude",
          "description": "This keyword selects which scalar to retrieve from a vector type value, such as velocity or displacement. If the value type is not a vector, this setting is ignored. The available options are: Record the \\(x\\) -component of the vector. Record the \\(y\\) -component of the vector. Record the \\(z\\) -component of the vector. Record the vector magnitude."
        },
        {
          "name": "kwd:id",
          "syntax": "id <i>",
          "description": "Record the history of clump with ID i ."
        },
        {
          "name": "kwd:index",
          "syntax": "index <i>",
          "description": "For keywords that require it (most notably extra ), this specifies the index that should be used."
        },
        {
          "name": "kwd:log",
          "syntax": "log <b>",
          "description": "If on , the returned number is the base 10 log of the absolute value of the original value. The default is off ."
        },
        {
          "name": "kwd:position",
          "syntax": "position <v>",
          "description": "Record the history of clump either containing or closest to position v ."
        },
        {
          "name": "zz",
          "syntax": "zz 3D ONLY",
          "description": "This keyword selects which scalar to retrieve from a symmetric tensor type value, such as stress or strain. If the value type is not a tensor, this setting is ignored. The available options are: Record the intermediate principal value of the tensor. Record the maximum (most positive) principal value of the tensor. Note that compressive stresses are negative . Record the mean value, defined as the trace of the tensor divided by { 2 in 2D; 3 in 3D}. For stresses this is most often referred to as the pressure. Record the minimum (most negative) principal value of the tensor. Note that compressive stresses are negative . Record the norm of the full tensor. This is defined as the sum of each tensor component squared. Record the octahedral measure of the tensor. Record the maximum shear value. Record the distance of the tensor value to the origin in principal space. Record the volumetric change, or trace of the tensor. Record the Von Mises measure. Record the xx -component of the tensor. Record the xy -component of the tensor. Record the xz -component of the tensor. Record the yy -component of the tensor. Record the yz -component of the tensor. Record the zz -component of the tensor."
        },
        {
          "name": "vector",
          "syntax": "vector",
          "description": "In certain cases the type (scalar, vector, or tensor) of the value cannot necessarily be determined ahead of time. Extra variables, for example, can hold values of all three types. This keyword allows one to specify which type it is assumed to be. If the original value type does not match, 0.0 is returned. Specify a scalar float type. Specify a tensor type. Specify a vector type."
        }
      ],
      "examples": [
        {
          "command": "clump history name 'clump_pos' position-x id 1",
          "description": "Record x-position of clump 1 with history name 'clump_pos'"
        },
        {
          "command": "clump history velocity-z id 100",
          "description": "Record z-velocity of clump 100 (auto-generated history name)"
        },
        {
          "command": "clump history force-unbalanced id 5",
          "description": "Record magnitude of unbalanced force on clump 5"
        },
        {
          "command": "clump history name 'center_clump' displacement position (0,0,0)",
          "description": "Record displacement magnitude of clump nearest to origin"
        },
        {
          "command": "clump history extra index 1 type float id 10",
          "description": "Record extra variable at index 1 (float type) for clump 10"
        },
        {
          "command": "clump history stress quantity intermediate id 50",
          "description": "Record intermediate principal stress of clump 50"
        }
      ]
    }
  }
}
