Push-forward of a rank two-tensor from the reference to the current
configuration
Parameters:
A (ufl.core.expr.Expr) – The tensor you want to push forward
F (ufl.core.expr.Expr) – The deformation gradient
Returns:
The push-forward
Return type:
ufl.core.expr.Expr
Notes
A push-forward is a transformation of a rank-2 tensor from
the reference configuration to the current configuration.
A common example is the push-forward of the First Piola-Kirchhoff
stress tensor to the current configuration which yields the
Cauchy stress tensor, i.e
We can decompose the the deformation gradient multiplicatively into
the volumetric (\(\mathbf{F}_{\mathrm{vol}}\)) and isochoric
(\(\mathbf{F}_{\mathrm{iso}}\)) components
Pull-back of a two-tensor from the current to the reference
configuration
Parameters:
A (ufl.core.expr.Expr) – The tensor you want to push forward
F (ufl.core.expr.Expr) – The deformation gradient
Returns:
The pull-back
Return type:
ufl.core.expr.Expr
Notes
A pull-back is a transformation of a rank-2 tensor from
the current configuration to the reference configuration.
A common example is the pull-back of the Cauchy
stress tensor to the reference configuration which yields the
First Piola-Kirchhoff stress tensor, i.e
This module defines invariants of the deformation gradient.
The deformation gradient \(\mathbf{F}\) is a tensor field that describes the
deformation of a material. The invariants of the deformation gradient are scalar
quantities that are invariant under rigid body motion.
This module defines the material model interface and some common material models.
The material model describes the mechanical behavior of a material. The material
model is used to compute the stress tensor given the deformation gradient.
The material model interface defines two methods:
sigma(F): The Cauchy stress tensor
P(F): The first Piola-Kirchhoff stress tensor
The sigma method computes the Cauchy stress tensor given the deformation gradient.
The P method computes the first Piola-Kirchhoff stress tensor given the deformation gradient.
The HyperElasticMaterial class is a base class for hyperelastic material models.
Hyperelastic materials are materials that have a strain energy density function that
depends only on the deformation gradient. The strain_energy method computes the
strain energy density function given the deformation gradient.
This module defines the ActiveModel class which is an abstract
class for active models. Active models are used to incorporate
active stress or active strain in the material model.
The ActiveModel class defines two methods:
Fe(F): Transforming the deformation gradient to an active deformation gradient
strain_energy(F): Active strain energy density function
The Fe method transforms the deformation gradient to an active deformation gradient.
For example in the active strain approach we perform a multiplicative decomposition of
the deformation gradient into an elastic and an active part, i.e
\[\mathbf{F} = \mathbf{F}_e \mathbf{F}_a\]
In which case the active model can be incorporated by transforming the full deformation
gradient into a pure elastic component.
The strain_energy method defines the active strain energy density function. For example
in the active stress approach, the active stress is added as an extra stress component
Method to transforming the deformation
gradient to an an active deformation gradient.
For example in the active strain approach we
perform a multiplicative decomposition of the deformation
gradient into an elastic and an active part, i.e
\[\mathbf{F} = \mathbf{F}_e \mathbf{F}_a\]
In which case the active model can be incorporated by
transforming the full deformation gradient into
a pure elastic component
Method to transforming the deformation
gradient to an an active deformation gradient.
For example in the active strain approach we
perform a multiplicative decomposition of the deformation
gradient into an elastic and an active part, i.e
\[\mathbf{F} = \mathbf{F}_e \mathbf{F}_a\]
In which case the active model can be incorporated by
transforming the full deformation gradient into
a pure elastic component
where \(\Psi_p\) is the passive (classical) strain energy
density function and \(\Psi_a\) is the corresponding active
strain energy density function.
Parameters:
F (ufl.core.expr.Expr) – The deformation gradient
Returns:
The active strain energy density function
Return type:
ufl.core.expr.Expr
This module contains the active stress model for the cardiac
mechanics problem. The active stress model is used to describe
the active contraction of the heart. The active stress model
is used to compute the active stress given the deformation gradient.
The sheet-normal orientation. Only needed for orthotropic
active stress models
T_ref: float = 1.0
Reference active stress, by default 1.0
eta: float = 0.0
Amount of transverse active stress, by default 0.0.
A value of zero means that all active stress is along
the fiber direction. If the value is 1.0 then all
active stress will be in the transverse direction.
isotropy: ActiveStressModels
What kind of active stress model to use, by
default ‘transversely’
Method to transforming the deformation
gradient to an an active deformation gradient.
For example in the active strain approach we
perform a multiplicative decomposition of the deformation
gradient into an elastic and an active part, i.e
\[\mathbf{F} = \mathbf{F}_e \mathbf{F}_a\]
In which case the active model can be incorporated by
transforming the full deformation gradient into
a pure elastic component
Return the number of non-overlapping occurrences of substring sub in
string S[start:end]. Optional arguments start and end are
interpreted as in slice notation.
Encode the string using the codec registered for encoding.
encoding
The encoding in which to encode the string.
errors
The error handling scheme to use for encoding errors.
The default is ‘strict’ meaning that encoding errors raise a
UnicodeEncodeError. Other possible values are ‘ignore’, ‘replace’ and
‘xmlcharrefreplace’ as well as any other name registered with
codecs.register_error that can handle UnicodeEncodeErrors.
Return True if S ends with the specified suffix, False otherwise.
With optional start, test S beginning at that position.
With optional end, stop comparing S at that position.
suffix can also be a tuple of strings to try.
Return the lowest index in S where substring sub is found,
such that sub is contained within S[start:end]. Optional
arguments start and end are interpreted as in slice notation.
Return the lowest index in S where substring sub is found,
such that sub is contained within S[start:end]. Optional
arguments start and end are interpreted as in slice notation.
Raises ValueError when the substring is not found.
Return a translation table usable for str.translate().
If there is only one argument, it must be a dictionary mapping Unicode
ordinals (integers) or characters to Unicode ordinals, strings or None.
Character keys will be then converted to ordinals.
If there are two arguments, they must be strings of equal length, and
in the resulting dictionary, each character in x will be mapped to the
character at the same position in y. If there is a third argument, it
must be a string, whose characters will be mapped to None in the result.
Partition the string into three parts using the given separator.
This will search for the separator in the string. If the separator is found,
returns a 3-tuple containing the part before the separator, the separator
itself, and the part after it.
If the separator is not found, returns a 3-tuple containing the original string
and two empty strings.
Return the highest index in S where substring sub is found,
such that sub is contained within S[start:end]. Optional
arguments start and end are interpreted as in slice notation.
Return the highest index in S where substring sub is found,
such that sub is contained within S[start:end]. Optional
arguments start and end are interpreted as in slice notation.
Raises ValueError when the substring is not found.
Partition the string into three parts using the given separator.
This will search for the separator in the string, starting at the end. If
the separator is found, returns a 3-tuple containing the part before the
separator, the separator itself, and the part after it.
If the separator is not found, returns a 3-tuple containing two empty strings
and the original string.
Return a list of the substrings in the string, using sep as the separator string.
sep
The separator used to split the string.
When set to None (the default value), will split on any whitespace
character (including n r t f and spaces) and will discard
empty strings from the result.
maxsplit
Maximum number of splits.
-1 (the default value) means no limit.
Splitting starts at the end of the string and works to the front.
Return a list of the substrings in the string, using sep as the separator string.
sep
The separator used to split the string.
When set to None (the default value), will split on any whitespace
character (including n r t f and spaces) and will discard
empty strings from the result.
maxsplit
Maximum number of splits.
-1 (the default value) means no limit.
Splitting starts at the front of the string and works to the end.
Note, str.split() is mainly useful for data that has been intentionally
delimited. With natural text that includes punctuation, consider using
the regular expression module.
Return True if S starts with the specified prefix, False otherwise.
With optional start, test S beginning at that position.
With optional end, stop comparing S at that position.
prefix can also be a tuple of strings to try.
Replace each character in the string using the given translation table.
table
Translation table, which must be a mapping of Unicode ordinals to
Unicode ordinals, strings, or None.
The table must implement lookup/indexing via __getitem__, for instance a
dictionary or list. If this operation raises LookupError, the character is
left untouched. Characters mapped to None are deleted.
Return active strain energy when activation is only
working along the fibers, with a possible transverse
component defined by \(\eta\) with \(\eta = 0\)
meaning that all active stress is along the fiber and
\(\eta = 1\) meaning that all active stress is in the
transverse direction. The active strain energy is given by
Ta (dolfinx.fem.Function or dolfinx.femConstant) – A scalar function representing the magnitude of the
active stress in the reference configuration (first Piola)
C (ufl.Form) – The right Cauchy-Green deformation tensor
f0 (dolfinx.fem.Function) – A vector function representing the direction of the
active stress
eta (float) – Amount of active stress in the transverse direction
(relative to f0)
This module defines compressibility models for the material models.
We define two compressibility models: Incompressible and Compressible.
An incompressible material is a material that does not change its volume under
deformation. The volume change is described by the Jacobian \(J = \det(F)\),
where \(F\) is the deformation gradient.
The Incompressible model is defined by the strain energy density function
\(\Psi = p (J - 1)\), where \(p\) is a function representing the
Lagrange multiplier. The Compressible model is defined by the strain energy
density function \(\Psi = \kappa (J \ln(J) - J + 1)\), where \(\kappa\)
is a material parameter representing the bulk modulus. Higher values of
\(\kappa\) correspond to more incompressible material.
Return the number of non-overlapping occurrences of substring sub in
string S[start:end]. Optional arguments start and end are
interpreted as in slice notation.
Encode the string using the codec registered for encoding.
encoding
The encoding in which to encode the string.
errors
The error handling scheme to use for encoding errors.
The default is ‘strict’ meaning that encoding errors raise a
UnicodeEncodeError. Other possible values are ‘ignore’, ‘replace’ and
‘xmlcharrefreplace’ as well as any other name registered with
codecs.register_error that can handle UnicodeEncodeErrors.
Return True if S ends with the specified suffix, False otherwise.
With optional start, test S beginning at that position.
With optional end, stop comparing S at that position.
suffix can also be a tuple of strings to try.
Return the lowest index in S where substring sub is found,
such that sub is contained within S[start:end]. Optional
arguments start and end are interpreted as in slice notation.
Return the lowest index in S where substring sub is found,
such that sub is contained within S[start:end]. Optional
arguments start and end are interpreted as in slice notation.
Raises ValueError when the substring is not found.
Return a translation table usable for str.translate().
If there is only one argument, it must be a dictionary mapping Unicode
ordinals (integers) or characters to Unicode ordinals, strings or None.
Character keys will be then converted to ordinals.
If there are two arguments, they must be strings of equal length, and
in the resulting dictionary, each character in x will be mapped to the
character at the same position in y. If there is a third argument, it
must be a string, whose characters will be mapped to None in the result.
Partition the string into three parts using the given separator.
This will search for the separator in the string. If the separator is found,
returns a 3-tuple containing the part before the separator, the separator
itself, and the part after it.
If the separator is not found, returns a 3-tuple containing the original string
and two empty strings.
Return the highest index in S where substring sub is found,
such that sub is contained within S[start:end]. Optional
arguments start and end are interpreted as in slice notation.
Return the highest index in S where substring sub is found,
such that sub is contained within S[start:end]. Optional
arguments start and end are interpreted as in slice notation.
Raises ValueError when the substring is not found.
Partition the string into three parts using the given separator.
This will search for the separator in the string, starting at the end. If
the separator is found, returns a 3-tuple containing the part before the
separator, the separator itself, and the part after it.
If the separator is not found, returns a 3-tuple containing two empty strings
and the original string.
Return a list of the substrings in the string, using sep as the separator string.
sep
The separator used to split the string.
When set to None (the default value), will split on any whitespace
character (including n r t f and spaces) and will discard
empty strings from the result.
maxsplit
Maximum number of splits.
-1 (the default value) means no limit.
Splitting starts at the end of the string and works to the front.
Return a list of the substrings in the string, using sep as the separator string.
sep
The separator used to split the string.
When set to None (the default value), will split on any whitespace
character (including n r t f and spaces) and will discard
empty strings from the result.
maxsplit
Maximum number of splits.
-1 (the default value) means no limit.
Splitting starts at the front of the string and works to the end.
Note, str.split() is mainly useful for data that has been intentionally
delimited. With natural text that includes punctuation, consider using
the regular expression module.
Return True if S starts with the specified prefix, False otherwise.
With optional start, test S beginning at that position.
With optional end, stop comparing S at that position.
prefix can also be a tuple of strings to try.
Replace each character in the string using the given translation table.
table
Translation table, which must be a mapping of Unicode ordinals to
Unicode ordinals, strings, or None.
The table must implement lookup/indexing via __getitem__, for instance a
dictionary or list. If this operation raises LookupError, the character is
left untouched. Characters mapped to None are deleted.
Boundary conditions are used to specify the behavior of the solution on the boundary of the domain.
The boundary conditions can be Dirichlet, Neumann, or Robin boundary conditions.
Dirichlet boundary conditions are used to specify the solution on the boundary of the domain.
Neumann boundary conditions are used to specify the traction on the boundary of the domain.
Robin boundary conditions are used to specify a Robin type boundary condition
on the boundary of the domain.
The boundary conditions are collected in a BoundaryConditions object.
Collects local arrays from all processes on the root process
and distributes the global array to all processes.
Assumes that the local arrays are either the same of empty / None on all processes.
Given a two-dimensional dofmap of size (num_cells, num_dofs_per_cell)
Expand the dofmap by its block size such that the resulting array
is of size (num_cells, bs*num_dofs_per_cell)