Skip to content

Releases: sfu-nml/flexodeal-lite

Flexodeal Lite v1.5.0 (Dec 2, 2024)

02 Dec 20:57
Compare
Choose a tag to compare

Flexodeal Lite 1.5.0 (Dec 2, 2024)

Here's what's new in Version 1.5.0.

Upgrade Steps

  • None required. Use the code in the same way you would use FlexodealLite v1.3.X and above.

New Features

  • Implemented the Marker<dim> class, a generalization of the Point<dim> class meant to implement u_left, u_mid, u_right displacement-tracking points and the four points in the mid cross section used to compute bulging. It is now possible to add an arbitrary number of markers using the markers.dat file.

Breaking Changes

  • Removed output_bulging_info since this function only works for the cuboidal geometry. As an alternative, we are now outputting the displacement at these four points in the displacements-3d.csv file so that bulging can be computed elsewhere.
  • subsection Measurement locations in parameters.prm now only stores the file's name containing the markers (i.e., markers.dat).

Bug Fixes & Minor Updates

  • Renamed ouput_displacement_at_select_locations to output_displacement_at_select_locations (fixed typo).

Flexodeal Lite v1.4.1 (Nov 13, 2024)

13 Nov 23:38
Compare
Choose a tag to compare

Flexodeal Lite 1.4.1 (Nov 13, 2024)

Here's what's new in Version 1.4.1.

Upgrade Steps

  • None required. Use the code in the same way you would use FlexodealLite v1.3.X and above.

Breaking Changes

  • None.

New Features

  • The output_forces function has been modified. Before, unavailable data at quadrature points (QPs), such as stresses, was computed from cell (voxel) QPs according to their enumeration. For example, the stress at face QP k=1 was taken as the stress at cell QP k=1. This works fine as long as the stresses over the entire cell are more or less the same. However, if there are large variations of stresses over the same cell, then this approach may not work. For this reason, the face QP data is now taken from the closest cell QP. This means that forces computed with previous versions of Flexodeal might have slightly different magnitudes compared to this version. Nevertheless, qualitative-type statements should remain valid. Review the commit 37ea35c for more information about how this was implemented.

Bug Fixes & Minor Updates

  • None.

Flexodeal Lite v1.4.0 (Oct 29, 2024)

30 Oct 01:01
Compare
Choose a tag to compare

Flexodeal Lite 1.4.0 (Oct 29, 2024)

Here's what's new in Version 1.4.0.

Upgrade Steps

  • None required. Use the code in the same way you would use FlexodealLite v1.3.X

Breaking Changes

  • None.

New Features

  • The function output_gearing_info was updated. The columns in the output are now:
    • Time [s].
    • Prescribed velocity in the x component [m/s].
    • X component of the mean muscle velocity vector over the middle slab [m/s].
    • Y component of the mean muscle velocity vector over the middle slab [m/s].
    • Z component of the mean muscle velocity vector over the middle slab [m/s].
    • Norm of the mean muscle velocity vector over the middle slab [m/s].
    • Mean fibre strain rate over the middle slab [unitless].
    • Initial fibre length [m].
    • Maximum unloaded strain rate [1/s].
    • Mean fibre velocity [m/s] computed as (mean fibre strain rate * initial fibre length * maximum unloaded strain rate).
    • Volume of the slab used to compute the averages above (m^3).
  • Added output_bulging_info. This is meant to compute the bulging of the block in the middle cross-section. The measuring locations correspond to the middle points on each side of the square forming the cross-section. Thus, the CSV output contains the following columns:
    • Time [s].
    • Displacement of the middle point on the left side of the square [m] (u left).
    • Displacement of the middle point on the right side of the square [m] (u right).
    • Displacement of the middle point in the top of the square [m] (u top).
    • Displacement of the middle point in the bottom of the square [m] (u bottom).

Bug Fixes & Minor Updates

  • Added missing semicolon in fibre orientation exception (caught by an M2 processor when compiling with deal.II v9.6).
  • Updated README.md with an easier way to clone the repo (using the public address rather than SSH keys).

Flexodeal Lite v1.3.4 (May 16, 2024)

16 May 19:49
Compare
Choose a tag to compare

Flexodeal Lite 1.3.4 (May 15, 2024)

Here's what's new in Version 1.3.4.

Upgrade Steps

  • None required. Use the code in the same way you would use FlexodealLite v1.3.X

Breaking Changes

  • Removed old technical reports that were never updated.

New Features

  • None

Bug Fixes & Minor Updates

  • Updated documentation.

Flexodeal Lite v1.3.3 (May 15, 2024)

16 May 04:53
Compare
Choose a tag to compare

Flexodeal Lite 1.3.3 (May 15, 2024)

Here's what's new in Version 1.3.3.

Upgrade Steps

  • None required. Use the code in the same way you would use FlexodealLite v1.3.X

Breaking Changes

  • None

New Features

  • Added Muscle_Tissues_Three_Field<dim>::get_stretch_bar() and Muscle_Tissues_Three_Field<dim>::get_strain_rate_bar().
  • get_strain_rate() now returns the full version of the fibre strain rate (including dilation changes).

Bug Fixes & Minor Updates

  • Added more documentation and removed some comments grandfathered from step-44.
  • Updated .gitignore to not exclude all .txt files.

Flexodeal Lite 1.3.2 (May 14, 2024)

15 May 01:15
Compare
Choose a tag to compare

Flexodeal Lite 1.3.2 (May 14, 2024)

Here's what's new in Version 1.3.2.

Upgrade Steps

  • None required. Use the code in the same way you would use FlexodealLite v1.3.X

Breaking Changes

  • None

New Features

  • None

Bug Fixes & Minor Updates

  • Updated default value for preconditioner. At the moment, it appears Jacobi works better than SSOR.
  • PrescribedDisplacement::declare_parameters no longer restricts the pulling ID to be between 0 and 6. It now requires only a non-negative number.
  • Added comment that IncrementalDisplacement<3>::value would change if the line of action is not the x-axis or if the prescribed displacement has nonzero y or z components.
  • Removed det_F from definition of kinetic energy.

flexodeal-lite v1.3.1

24 Apr 22:33
Compare
Choose a tag to compare

FlexodealLite 1.3.1 (April 24, 2024)

Here's what's new in Version 1.3.1.

Upgrade Steps

  • None required. Use the code in the same way you would use FlexodealLite v1.3.X

Breaking changes

  • None

New Features

  • None

Bug Fixes

  • Fix column order in Solid<dim>::output_displacements_at_select_locations(), added column with muscle length (equal to parameters.length.

flexodeal-lite v1.3.0

24 Apr 22:02
Compare
Choose a tag to compare

FlexodealLite 1.3.0 (April 24, 2024)

Here's what's new in Version 1.3.0.

Upgrade Steps

  • None required. Use the code in the same way you would use FlexodealLite v1.2.X

Breaking changes

  • Bulk modulus was modified in parameters.prm file from 1e+06 Pa to 1e+07 Pa. This was done to keep volume changes under 1%. In comparison, a bulk modulus of 1e+06 Pa yielded up to 7% volume changes in some experiments, which might rise eyebrows considering that, for practical purposes, muscle is incompressible.
  • Restricted mean stretch and pennation angle averages to a slab of the geometry, more precisely, to those cells whose center (x,y,z) is located in the volume 3L/8 <= x <= 5L/8.
  • Restricted mean muscle velocity and strain rate in output_gearing_info() to slab as before. Moreover, the mean muscle velocity output was changed from mean_velocity.norm() to mean_velocity[0] (i.e. only its x component) to obtain a signed velocity along the line of action. That means, if the line of action were to change, then this quantity might need to be updated.

New Features

  • None

Bug Fixes

  • Fix order in block dimensions: parameters.length in the x direction, parameters.width in the y direction, and parameters.height in the z direction (see Solid<dim>::make_grid()).

flexodeal-lite v1.2.0

16 Mar 00:06
Compare
Choose a tag to compare

FlexodealLite 1.2.0 (March 15, 2024)

Here's what's new in Version 1.2.0.

Upgrade Steps

  • None required. Use the code in the same way you would use FlexodealLite v1.1.X

Breaking changes

  • Activation class was deleted. See below on how to define activation profiles.
  • PrescribedDisplacement parameters now only keep track of the ID corresponding to the pulling face. See below on how to define prescribed displacement profiles.
  • make run now calls ./dynamic-muscle parameters.prm control_points_strain.dat control_points_activation.dat. This means that activation and strain data are now given through .dat files

New Features

  • Created TabularFunction class. Objects of this class read a table of (x,y) values from a .dat file, which can then be used as a function that can be evaluated using the standard ( ) operator. For instance, a .dat file with the contents

      0.0 0.0
      1.0 0.5
    

    can be used to define an activation profile given by a linear ramp from 0% at t = 0.0 s to 50% at t = 1.0 s and constant after that. In turn, a .dat file with the contents

      0.0 0.0
      0.5 0.15
      1.5 -0.15
      2.0 0.0
    

    can be understood as a table with (time, strain) values. That is, the table can implement a prescribed displacement profile that pulls the block of muscle from strain = 0 to strain = 0.15 at t = 0.5 s, then push to strain = -0.15 then pull back to its initial state. Given that intermediate values are handled through linear interpolation, instances of the TabularFunction class can be evaluated at any time t >= 0.

  • Added output_stresses() to output each one of the components of the total Kirchhoff stress tensor in VTU format.

  • Added output_gearing_info() to output mean fibre strain rate and mean velocity of the block at each time step.

  • Added output_activation_muscle_length() with the interpolated values of activation and muscle length from data in .dat files.

  • Added ouput_displacements_at_select_locations() with the output of displacements at three mesh vertices. Locations of these points are given in the parameters.prm file. If they cannot be found in the mesh, the code returns an exception.

Bug Fixes

  • Fix hard-coded density (which was set to 1000 kg/m^3).

flexodeal-lite v1.1.1

27 Feb 02:46
Compare
Choose a tag to compare

This is a small update from v1.1.0 with added #include calls to increase compatibility with other Linux installations.