Posts tagged parmec

Parmec ball joint and articulated pendulum example

PARMEC includes its first algebraic joint – a ball joint – which is realised by nullifying relative velocity of a coincident point between two particles. BALL_JOINT command is used to define a pair of particles and the point. Since joints are realised as algebraic constraints they do not influence the stable time step. Instead a linear system is solved at every time step. Any number of joints can be added to the system, although linear dependence should be avoided (QR solver can be used in such case, see the Config.mak file). The articulated pendulum example demonstrates performance of the ball joint, also in conjunction with the torsional spring. The example is summarised below. (…)

Read more ...


Parmec spherical joint

Torsion spring has now been added to PARMEC, allowing to model angular hinges with rotational limits and spherical joints. TORSION_SPRING command is used to define an angle–torque relationship for three angles of rotation about user specified local coordinate axes (x–roll, y–pitch, z–yaw). The command includes a cone constraint which allows to model spherical joints in roll-pitch, roll-yaw, and pitch-yaw planes. Example application application of this functionality is included as tests/spherical_joint.py. A ParaView animation generated by this test is included below. (…)

Read more ...


Parmec spring contact

Parmec includes a simple spring contact modeling capability, where a contact plane on one particle can be paired up with a contact point on another particle. Both particles can be analytical (need no geometry), while the contact spring and dashpot curves are user defined. Friction, including sticking and slip, can also be added. An example test of this capability is tests/spring_contact_plane.py. Parmec SPRING command is used to define the entire contact interactions (parameters spring, dashpot and friction). Upon running it generates time history figures tests/spring_contact_plane_{z,f_ff}.png and output files viewable with ParaView. An animation and the figures are included below. (…)

Read more ...


Parmec spring curve tests

Thanks to user feedback, Parmec begins to be smoothed out. An automated spring curve correctness test has now been added as tests/spring_curve_tests.py allowing to generate and run a number of simulations with random spring curves within a stroke-force box [-1, -1, 1, 1]. This test initiates what may become a suite of automated regression tests for Parmec. If matplotlib and imagemagic are installed, it generates a juxtaposed image, comparing input and output curves. An example image is included below. (…)

Read more ...


UNSPRING and spring state in Parmec

PARMEC includes a capability to model rigid body and SPRING systems. As a part of it an UNSPRING command allows to deactivate selected springs when a total force of a set of “test springs” exceeds a prescribed bound. This facilitates modelling of simple failure scenarios. Spring states are outputted as scalar fields (in XDMF format) and can be viewed with ParaView or similar tools. The video clip below is based on this example. Spring states can be visualized by selecting the ‘SS’ entity and using “Coor Map Editor” in ParaView to “Interpret Values as Cathegories” (checkbox at the top of the editor dialog box) and then adding the discrete values used by the ‘SS’ field (-3.0, -2.0, -1.0, …) as described for the OUTPUT command. Spring states can also be outputted as HISTORY (as in the example). (…)

Read more ...


Hybrid solver in Solfec

Solfec’s hybrid solver is now ready for testing. This solver combines the ability of modeling non–smooth multi–body structures in Solfec (e.g. as fully resolved FE models) in conjunction with a lightweight rigid–body/nonlinear–spring approach implemented in PARMEC. A simple example of that can be seen in the video below:

Read more ...