Releases: sfu-nml/flexodeal-lite
Flexodeal Lite v1.5.0 (Dec 2, 2024)
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 thePoint<dim>
class meant to implementu_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 themarkers.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 thedisplacements-3d.csv
file so that bulging can be computed elsewhere. subsection Measurement locations
inparameters.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
tooutput_displacement_at_select_locations
(fixed typo).
Flexodeal Lite v1.4.1 (Nov 13, 2024)
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)
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)
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)
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()
andMuscle_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)
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
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 toparameters.length
.
flexodeal-lite v1.3.0
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 frommean_velocity.norm()
tomean_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, andparameters.height
in the z direction (seeSolid<dim>::make_grid()
).
flexodeal-lite v1.2.0
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 contents0.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 theparameters.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
This is a small update from v1.1.0 with added #include calls to increase compatibility with other Linux installations.