KerMor  0.9
Model order reduction for nonlinear dynamical systems and nonlinear approximation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
models.muscle.examples.MuscleTendonMix Class Reference

Muscle - Tendon mixed geometries. More...

Detailed Description

Muscle - Tendon mixed geometries.

Contains several examples
Variant 1: A 4 element long block with 4 block-wise constant, linearly changing muscle-to-tendon material. The tendon part is at a dirichlet xz-fixed side and the other side gets increasingly pulled over 4 sec until 4MPa

Variant 2: A single element with the top 9 gauss points as tendons (tmr=1) and the lower part muscle (tmr=0). Fixed (xz only) on right side and pulled on left side over 4 seconds increasing to 4MPa

Variant 3: A 2x2x3 geometry on domain [0 2]x[0 6]x[0 2] with a nonlinear muscle/tendon function (use plotTMRFun to see). Fixed xz on right side (with xyz fix in center node) and pulled on left with 4MPa. The fibres are at 45deg throughout the muscle

Variant 4: The same geometry as Variant 4 with same muscle/tendon ratio, but this time completely fixed at both long ends. An activation ramp is applied over 4s from 0 to 1.

Variant 5: The same geometry as variant 2 (single cube) with same setup. No pulling force is applied but the muscle activated over 4s to 1

Variant 6/7: A belly-shaped setup is used.

Definition at line 20 of file MuscleTendonMix.m.

Public Member Functions

 MuscleTendonMix (varargin)
 
function  configureModel (m)
 
function u = getInputs ()
 Ramp up the external pressure. More...
 
function tmr = getTendonMuscleRatio (points)
 Returns the [0,1] ratio between tendon and muscle at all specified points. More...
 
function tmr = TMRFun (z,matrix< double > y)
 
function  plotTMRFun ()
 
function P = getBoundaryPressure (elemidx, faceidx)
 Determines the neumann forces on the boundary. More...
 
- Public Member Functions inherited from models.muscle.AMuscleConfig
 AMuscleConfig (varargin)
 
function m = createModel ()
 Convenience method. More...
 
function  configureModelFinal ()
 
function u = getInputs ()
 Returns the inputs \(u(t)\) of the model. More...
 
function x0 = getX0 (x0)
 do nothing More...
 
function  setForceLengthFun (f)
 Provided here only for convenient outside access. More...
 
function alpha = getAlphaRamp (ramptime,double alphamax,double starttime)
 Creates a linearly increasing scalar function starting at starttime milliseconds ranging from zero to alphamax over ramptime. More...
 
function tmr = getTendonMuscleRatio (unused1)
 Returns the [0,1] ratio between tendon and muscle at all gauss points of all elements. More...
 
function anull = geta0 ()
 
- Public Member Functions inherited from fem.AFEMConfig
 AFEMConfig (varargin)
 
function  configureModel (models.BaseFullModel model)
 Overload this method to set model-specific quantities like simulation time etc. More...
 
function  configureModelFinal ()
 
function  prepareSimulation (colvec< double > mu,integer inputidx)
 Overload this method to initialize model-specific quantities that are fixed for each simulation. More...
 
function P = getBoundaryPressure (elemidx, faceidx)
 Determines the neumann forces on the boundary. More...
 
function str = getOptionStr (withtag)
 
function  plotGeometryInfo (allnode, elemnr)
 
function [
displ_dir ,
velo_dir ,
velo_dir_val ] = 
getBC ()
 
function [ force ,

nodeidx ,
faceswithforce ] = 
getSpatialExternalForces ()
 

Static Public Member Functions

static function  test_MuscleTendonMix (variant)
 

Public Attributes

 Variant
 
 ylen
 
- Public Attributes inherited from models.muscle.AMuscleConfig
 PressureFEM
 
 FibreTypeWeights = "[]"
 
 Pool
 
char a0CoordinateSystem = "master"
 The coordinate system in which to interpret the a0 vectors of fibre directions. More...
 
double ActivationRampMax = 1
 Determines the default value for maximum activation in activation ramps. More...
 
double ActivationRampOffset = 0
 Determines the default number of milliseconds to wait before activation is started. More...
 
- Public Attributes inherited from fem.AFEMConfig
 FEM
 
 Geometry
 
 Model
 
char NeumannCoordinateSystem = "local"
 The coordinate system in which to interpret the applied pressure of neumann boundary conditions. More...
 
 Options
 
 VelocityBCTimeFun
 Velocity conditions application function. More...
 
- Public Attributes inherited from handle
 addlistener
 Creates a listener for the specified event and assigns a callback function to execute when the event occurs. More...
 
 notify
 Broadcast a notice that a specific event is occurring on a specified handle object or array of handle objects. More...
 
 delete
 Handle object destructor method that is called when the object's lifecycle ends. More...
 
 disp
 Handle object disp method which is called by the display method. See the MATLAB disp function. More...
 
 display
 Handle object display method called when MATLAB software interprets an expression returning a handle object that is not terminated by a semicolon. See the MATLAB display function. More...
 
 findobj
 Finds objects matching the specified conditions from the input array of handle objects. More...
 
 findprop
 Returns a meta.property objects associated with the specified property name. More...
 
 fields
 Returns a cell array of string containing the names of public properties. More...
 
 fieldnames
 Returns a cell array of string containing the names of public properties. See the MATLAB fieldnames function. More...
 
 isvalid
 Returns a logical array in which elements are true if the corresponding elements in the input array are valid handles. This method is Sealed so you cannot override it in a handle subclass. More...
 
 eq
 Relational functions example. See details for more information. More...
 
 transpose
 Transposes the elements of the handle object array. More...
 
 permute
 Rearranges the dimensions of the handle object array. See the MATLAB permute function. More...
 
 reshape
 hanges the dimensions of the handle object array to the specified dimensions. See the MATLAB reshape function. More...
 
 sort
 ort the handle objects in any array in ascending or descending order. More...
 

Protected Member Functions

function geo = getGeometry ()
 Returns the intended geometry for this model config. More...
 
function
displ_dir = 
setPositionDirichletBC (displ_dir)
 % Dirichlet conditions: Position (fix one side) More...
 
function anull = seta0 (anull)
 
- Protected Member Functions inherited from models.muscle.AMuscleConfig
function  init ()
 
function anull = seta0 (anull)
 do nothing! More...
 
function ftw = getFibreTypeWeights ()
 This is a lazy pre-implementation as fullmodels.muscle.Models always have fibre types and thus weights. More...
 
- Protected Member Functions inherited from fem.AFEMConfig
function  init ()
 % Parse the options More...
 
function [
velo_dir ,
velo_dir_val ] = 
setVelocityDirichletBC (velo_dir, velo_dir_val)
 Determines the dirichlet velocities. More...
 
function  addOption (name, default, varargin)
 

Constructor & Destructor Documentation

models.muscle.examples.MuscleTendonMix.MuscleTendonMix (   varargin)

Definition at line 65 of file MuscleTendonMix.m.

References fem.AFEMConfig.addOption(), and models.muscle.AMuscleConfig.init().

Here is the call graph for this function:

Member Function Documentation

function models.muscle.examples.MuscleTendonMix.configureModel (   m)

Definition at line 74 of file MuscleTendonMix.m.

References fem.AFEMConfig.Options.

function P = models.muscle.examples.MuscleTendonMix.getBoundaryPressure (   elemidx,
  faceidx 
)

Determines the neumann forces on the boundary.

The unit for the applied quantities is megaPascal [MPa]

In the default implementation there are no force boundary conditions.

Definition at line 185 of file MuscleTendonMix.m.

References fem.AFEMConfig.Options.

function geo = models.muscle.examples.MuscleTendonMix.getGeometry ( )
protectedvirtual

Returns the intended geometry for this model config.

The options will be set at call time, e.g. "GeoNr" is already set.

Implements fem.AFEMConfig.

Definition at line 215 of file MuscleTendonMix.m.

References fem.AFEMConfig.Options, and ylen.

function u = models.muscle.examples.MuscleTendonMix.getInputs ( )

Ramp up the external pressure.

Definition at line 115 of file MuscleTendonMix.m.

References models.muscle.AMuscleConfig.getAlphaRamp().

Here is the call graph for this function:

function tmr = models.muscle.examples.MuscleTendonMix.getTendonMuscleRatio (   points)

Returns the [0,1] ratio between tendon and muscle at all specified points.

This method simply returns an all-zero ratio, meaning muscle only.

Definition at line 125 of file MuscleTendonMix.m.

References k, fem.AFEMConfig.Options, TMRFun(), and ylen.

Here is the call graph for this function:

function models.muscle.examples.MuscleTendonMix.plotTMRFun ( )

Definition at line 174 of file MuscleTendonMix.m.

References PlotManager.LeaveOpen, TMRFun(), and Y.

Here is the call graph for this function:

function anull = models.muscle.examples.MuscleTendonMix.seta0 (   anull)
protected

Definition at line 269 of file MuscleTendonMix.m.

References fem.AFEMConfig.Options.

function displ_dir = models.muscle.examples.MuscleTendonMix.setPositionDirichletBC (   displ_dir)
protectedvirtual

% Dirichlet conditions: Position (fix one side)

Implements fem.AFEMConfig.

Definition at line 237 of file MuscleTendonMix.m.

References fem.AFEMConfig.FEM, and fem.AFEMConfig.Options.

static function models.muscle.examples.MuscleTendonMix.test_MuscleTendonMix (   variant)
static

Definition at line 283 of file MuscleTendonMix.m.

References k.

function tmr = models.muscle.examples.MuscleTendonMix.TMRFun (   z,
matrix< double y 
)

Definition at line 168 of file MuscleTendonMix.m.

Referenced by getTendonMuscleRatio(), and plotTMRFun().

Here is the caller graph for this function:

Member Data Documentation

models.muscle.examples.MuscleTendonMix.Variant

Definition at line 55 of file MuscleTendonMix.m.

models.muscle.examples.MuscleTendonMix.ylen

Definition at line 60 of file MuscleTendonMix.m.

Referenced by getGeometry(), and getTendonMuscleRatio().


The documentation for this class was generated from the following file: