fix mesh/6dof command¶
Syntax¶
fix ID group-ID mesh/surface/stress/6dof file filename premesh_keywords premesh_values mesh_keywords mesh_values surface_keyword surface_values stress_keywords stress_values 6dof_keywords 6dof_values
ID, is documented in fix command, the group-ID is ignored for this command.
mesh/gran/6dof = style name of this fix command
file filename premesh_keywords premesh_values mesh_keywords mesh_values surface_keyword surface_values stress_keywords stress_values are documented in fix mesh/surface/stress.
zero or more 6dof_keyword/value pairs may be appended 6dof keywords = mass (obligatory) or com (obligatory) or moi (obligatory) or vcm or angmom or suspension or forceflags or torqueflags
mass value = mass mass = mass of the rigid body (mass units) com values = x, y, z x, y, z = coordinates of the center of mass of the body (distance units) moi values = Ixx, Iyy, Izz, Ixy, Ixz, Iyz Ixx, Iyy, Izz, Ixy, Ixz, Iyz = moments of inertia around the given axis vel values = vx, vy, vz vx, vy, vz = velocities of the center of mass of the body (velocity units) angmom values = ax, ay, az ax, ay, az = initial angular momentum around x-, y-, and z-axis suspension values = k_t kt c_t ct k_r kr c_r cr k_t = obligatory keyword kt = stiffness for translational spring c_t = obligatory keyword ct = damper coefficient for translational damper k_r = obligatory keyword kr = stiffness for rotational spring c_r = obligatory keyword cr = damper coefficient for rotational damper forceflags values = f1 f2 f3 f1,f2,f3 = flags for x,y,z which can be 0 or 1 torqueflags values = t1 t2 t3 t1,t2,t3 = flags for x,y,z which can be 0 or 1
Examples¶
fix cube all mesh/surface/stress/6dof file cube.stl type 1 com 0. 0. 0. vel 0. 0. -0.5 mass 40 moi 0.266666 0.266666 0.266666 0. 0. 0.
LIGGGHTS vs. LAMMPS Info:
This command is not available in LAMMPS.
Description¶
This fix implements the functionality of fix mesh/surface/stress but it additionally integrates the motion of the mesh assuming it to be a rigid body with the given com (center of mass) and moi (moments of inertia). Optionally, you can specify an initial velocity and angular momentum of the rigid body. Please note the difference between angular velocity omega and angular momentum (which is I*omega)
Note that if a fix gravity is used, the gravitational force acts on the center of mass of the body
With the optional suspension keyword, an additional suspension force and torque is activated which tries to pull the body back into its original position (which is the com as defined by this command) and its original orientation. The force and torque consist of translational and rotational spring/damping parts and write
f = kt * dx - ct * vel t = kr * dalpha * axis - cr * omega
where vec and omega are the body velocity and rotational velocity. dx represents the translational displacement of the body from its original position. dalpha and axis represent the rotational displacement of the body from its original orientation, where dalpha is the angle and axis is the corresponding rotation (unit) axis.
With the optional forceflags and torqueflags keywords, motion integration can be turned of separately for the x-, y-, and z-axis.
Restart, fix_modify, output, run start/stop, minimize info:
This fix stores a global vector with 6 components for access by various output commands. The first 3 components are equal to the total force on the mesh, the last 3 components store the total torque on the body. The last 3 components store the position of the center of mass of the body. Please note that as opposed to fix mesh/surface/stress, the total force and torque contain the contributions of the particles, gravity and the suspension model (if activated). Furthermore, this fix writes the state of the rigid body (translational and rotational) to binary restart files so that a simulation can continue correctly.
Restrictions¶
When using this fix, along with scaling or rotate the body, all the 6dof_keyword/value pairs have to represent the state after scaling/rotation. Mesh elements may not be deleted in case due to leaving the simulation box for a fixed boundary. In this case, an error is generated. See boundary command for details. This fix can not be used in conjunction with another fix that manipulates mesh geometry, such as a fix move/mesh