Parallel mechanics and particulate media software blog

Recent blog posts:

  • September 09, 2019 - Solfec-2.0 update 0

    Just a little note to say that work on Solfec-2.0 is underway:) Currently the code cannot do much: I am ironing out a basic parallel data layout. I am using a simple global array based approach, utilising MPI-3.0 RDMA (remote direct memory access). It’s based on the implementation suggested in the book “Using Advanced MPI”. The current version of the array code is here: ga.hpp and ga.cpp. The way the arrays are used to store computational data can be viewed in compute.hpp. Since the arrays are of fixed size – there is a little bit of book keeping that needs to be implemented – in order to allow for arbitrary sequences of insertions and deletions of computational data. This is the aspect of the code, which I am currently implementing and smoothing out. Only MPI rank-0 process is interpreting the input Python file – the remaining processes join in during the computation loop – which can be invoked multiple times from the input file – with insertions and deletions of computational data in between. (…)

  • January 09, 2019 - SOLFEC_EXPORT command

    In analogy to Solfec’s XDMF_EXPORT command, a new SOLFEC_EXPORT command has been added. This allows to save a subset of results into a separate directory and view them using Solfec’s viewer. Within Solfec sources example inp/devel/solfec-export.py depicts an application of this idea. (…)

  • July 31, 2018 - 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. (…)

  • June 13, 2018 - 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. (…)

  • May 23, 2018 - 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. (…)

Recently modified pages: