limit_analysis.materials#
Strength criteria#
- class fenics_optim.limit_analysis.materials.strength_criterion.Rigid#
A rigid material.
- class fenics_optim.limit_analysis.materials.strength_criterion.StrengthCriterion#
A generic object for limit analysis strength criteria.
A
StrengthCriterionobject provides three differentConvexFunctioninstances, namely:criterion: the strength criterion constraint \(\boldsymbol{\sigma} \in G\)support_function: the corresponding support function \(\pi(\boldsymbol{d}) = \displaystyle{\sup_{\boldsymbol{\sigma}\in G} \{\boldsymbol{\sigma}:\boldsymbol{d}\}}\)support_function_disc: the support function associated with discontinuities \(\Pi(\boldsymbol{V}:\boldsymbol{n}) = \pi(\boldsymbol{V}\overset{s}{\otimes} \boldsymbol{n})\)
- initialize()#
Must be called before ending __init__.
- name()#
Strength criterion name.
- set_domain(i)#
Specify the corresponding domain id.
- set_material_frame(theta=0)#
Define rotation matrix for material frame.
theta is the angle with respect to the x direction.
- fenics_optim.limit_analysis.materials.strength_criterion.deviator(dim)#
Matrix for deviator operator.
- fenics_optim.limit_analysis.materials.strength_criterion.rotation_matrix(alpha=0, dim=3)#
Rotation matrix for angle \(\alpha\) with respect to horizontal axis.
- fenics_optim.limit_analysis.materials.strength_criterion.to_Constant(p)#
Wrap as a Constant.
von Mises#
- class fenics_optim.limit_analysis.materials.von_mises.vonMises(k)#
Bases:
fenics_optim.limit_analysis.materials.strength_criterion.StrengthCriterion2D/3D von Mises criterion.
- gauge_function(Sig)#
Numerical evaluation of the gauge function.
\(g(\sigma) = \sqrt{\frac{1}{2}dev(\sigma):dev(\sigma)}/k\)
- class fenics_optim.limit_analysis.materials.von_mises.vonMises_plane_stress(sig0)#
Bases:
fenics_optim.limit_analysis.materials.strength_criterion.StrengthCriterionPlane stress von Mises criterion.
- class fenics_optim.limit_analysis.materials.von_mises.vonMises_shell(sig0, thick, nz, quadrature)#
Bases:
fenics_optim.limit_analysis.materials.strength_criterion.StrengthCriterionvon Mises shell criterion.
- Parameters
sig0 (float, Constant) – uniaxial yield strength
thick (float) – shell thickness
nz (int) – number of quadrature points in z direction
quadrature ({"gauss", "trapezoidal", "piecewise"}) – quadrature rule for z direction
- z_quadrature()#
Generate quadrature in z direction.
Drucker-Prager#
- class fenics_optim.limit_analysis.materials.drucker_prager.DruckerPrager(h, phi)#
Bases:
fenics_optim.limit_analysis.materials.strength_criterion.StrengthCriterionDrucker-Prager criterion in 2D or 3D.
\(||dev(\sigma)||_2 + \alpha tr(\sigma) \leq \alpha h\)
where \(\alpha = \dfrac{{\sqrt{{6}}\sin(\phi)}} {{\sqrt{{3+\sin^2(\phi)}}}}\)
- Parameters
h (float, Constant) – isotropic tension limit
phi (float, Constant) – internal friction angle
- gauge_function(Sig)#
Numerical evaluation of the gauge function.
\(g(\sigma) = (||dev(\sigma)||_2 + \alpha tr(\sigma))/(\alpha h)\)
Gurson#
- class fenics_optim.limit_analysis.materials.gurson.Gurson(sig0, f)#
Bases:
fenics_optim.limit_analysis.materials.strength_criterion.StrengthCriterionGurson criterion in 2D or 3D.
- Parameters
sig0 (float) – Uniaxial yield strength.
f (float) – Porosity.
- gauge_function(Sig)#
Numerical evaluation of the gauge function.
\(g(\sigma) = \right(\frac{3}{2}dev(\sigma):dev(\sigma)}/ \sigma_0\left)^2 + 2 f \cosh(\sigma_m/\sigma_0) \leq 1+f^2\)
Hosford#
- class fenics_optim.limit_analysis.materials.hosford.Hosford_plane_stress(sig0, n)#
Bases:
fenics_optim.limit_analysis.materials.strength_criterion.StrengthCriterionHosford strength criterion in 2D plane stress conditions.
\(|\sigma_I|^n+|\sigma_{{II}}|^n+|\sigma_{II}-\sigma_I|^n\leq\sigma_0\)
- Parameters
sig0 (float, Constant) – tensile strength
n (float) – Hosford exponent
- gauge_function(Sig)#
Numerical evaluation of the gauge function.
\((|\sigma_I|^n+|\sigma_{{II}}|^n+|\sigma_{II}-\sigma_I|^n)/\sigma_0\)
where \(\sigma_I,\sigma_{{II}}\) are the major and minor principal stresses respectively
Masonry#
- class fenics_optim.limit_analysis.materials.masonry.deBuhan_deFelice(width, height, phi, c=0.0)#
Bases:
fenics_optim.limit_analysis.materials.strength_criterion.StrengthCriterion2D homogenized criterion of de Buhan and de Felice.
A homogenization approach to the ultimate strength of brick masonry, JMPS, 1997.
Blocks are rigid and arranged in a running bond pattern. Joints follow a Coulomb friction law.
- Parameters
width (float) – block width
height (float) – block height
phi (float) – joint friction angle [rad]
c (float, optional) – joint cohesion, by default 0.
Mohr-Coulomb#
- class fenics_optim.limit_analysis.materials.mohr_coulomb.MohrCoulomb2D(c, phi, ft=None)#
Bases:
fenics_optim.limit_analysis.materials.strength_criterion.StrengthCriterionPlane strain Mohr-Coulomb criterion.
- Parameters
c (float) – cohesion
phi (float) – friction angle [rad]
ft (float, optional) – tension cut-off
- gauge_function(Sig)#
Numerical evaluation of the gauge function.
\(g(\sigma) = ((\sigma_{xx}+\sigma_{yy})\sin\phi + \sqrt{(\sigma_{xx}-\sigma_{yy})^2 + 4\sigma_{xy}^2})/(2c\cos\phi)\)
In presence of a tension cut-off \(f_t\), the gauge function is given by:
\(g_{TC}(\sigma) = \max\{{ g(\sigma) ; \sigma_I/f_t \}}\)
- class fenics_optim.limit_analysis.materials.mohr_coulomb.MohrCoulomb2D_plane_stress(fc, phi, ft=None)#
Bases:
fenics_optim.limit_analysis.materials.strength_criterion.StrengthCriterionPlane stress Mohr-Coulomb criterion.
- Parameters
fc (float) – compressive strength
phi (float) – friction angle [rad]
ft (float, optional) – tension cut-off
- gauge_function(Sig)#
Numerical evaluation of the gauge function.
\(g(\sigma) = ((\sigma_{xx}+\sigma_{yy})\sin\phi + \sqrt{(\sigma_{xx}-\sigma_{yy})^2 + 4\sigma_{xy}^2})/(2c\cos\phi)\)
In presence of a tension cut-off \(f_t\), the gauge function is given by:
\(g_{TC}(\sigma) = \max\{{ g(\sigma) ; \sigma_I/f_t \}}\)
- class fenics_optim.limit_analysis.materials.mohr_coulomb.MohrCoulomb3D(c, phi, ft=None)#
Bases:
fenics_optim.limit_analysis.materials.strength_criterion.StrengthCriterionTridimensional Mohr-Coulomb criterion.
- Parameters
c (float) – cohesion
phi (float) – friction angle [rad]
ft (float, optional) – tension cut-off
- gauge_function(Sig)#
Numerical evaluation of the gauge function.
\(g(\sigma) = ((1+\sin\phi)\sigma_I - (1-\sin\phi)\sigma_{III})/(2c\cos\phi)\)
where \(\sigma_I,\sigma_{III}\) are the major and minor principal stresses respectively.
In presence of a tension cut-off \(f_t\), the gauge function is given by:
\(g_{TC}(\sigma) = \max\{{ g(\sigma) ; \sigma_I/f_t \}}\)
- class fenics_optim.limit_analysis.materials.mohr_coulomb.PlaneCoulomb2D(c, phi, alpha, dalpha=0.0)#
Bases:
fenics_optim.limit_analysis.materials.strength_criterion.StrengthCriterionCoulomb criterion on a plane of angle alpha.
- Parameters
c (float) – cohesion
phi (float) – friction angle
alpha (float) – plane normal orientation angle with respect to the horizontal direction
dalpha (float, optional) – uncertainty on the plane orientation (robust version), by default 0
- class fenics_optim.limit_analysis.materials.mohr_coulomb.RobustMohrCoulomb2D(c, phi, dc, dphi)#
Bases:
fenics_optim.limit_analysis.materials.strength_criterion.StrengthCriterionUncertain version of the plane strain MohrCoulomb criterion.
Cohesion varies between \(c-\Delta c\) and \(c+\Delta c\). Friction angle varies between \(\phi-\Delta\phi\) and \(\phi+\Delta\phi\).
- Parameters
c (float) – nominal cohesion
phi (float) – nominal friction angle
dc (float) – cohesion variability
dphi (float) – friction angle variability
Rankine#
- class fenics_optim.limit_analysis.materials.rankine.L1Rankine2D(fc, ft)#
Bases:
fenics_optim.limit_analysis.materials.strength_criterion.StrengthCriterionL1-Rankine criterion in 2D.
- Parameters
fc (float) – compressive strength
ft (float) – tensile strength
- gauge_function(Sig)#
Numerical evaluation of the gauge function.
\(g(\sigma) =\max\{{ -\sigma_{III}/f_c ; \sigma_{III}/f_t \}} + \max\{{ -\sigma_{I}/f_c ; \sigma_{I}/f_t \}}\)
where \(\sigma_I,\sigma_{III}\) are the major and minor principal stresses respectively.
- class fenics_optim.limit_analysis.materials.rankine.L1Rankine3D(fc, ft)#
Bases:
fenics_optim.limit_analysis.materials.rankine.Rankine3DIsotropic L1-Rankine criterion in 2D.
- Parameters
fc (float) – compressive strength
ft (float) – tensile strength
- gauge_function(Sig)#
Numerical evaluation of the gauge function.
\(g(\sigma) =\sum_J\max\{{ -\sigma_{J}/f_c ; \sigma_J/f_t \}}\)
where \(\sigma_J\) are the principal stresses.
- class fenics_optim.limit_analysis.materials.rankine.OrthotropicL1Rankine2D(fcx, ftx, fcy, fty, ftau)#
Bases:
fenics_optim.limit_analysis.materials.rankine.Rankine2DOrthotropic L1-Rankine criterion in 2D.
- Parameters
fcx (float) – compressive strength in \(x\) direction
fcy (float) – compressive strength in \(y\) direction
ftx (float) – tensile strength in \(x\) direction
fty (float) – tensile strength in \(x\) direction
ftau (float) – shear strength
- class fenics_optim.limit_analysis.materials.rankine.OrthotropicRankine2D(fcx, fcy, ftx, fty)#
Bases:
fenics_optim.limit_analysis.materials.strength_criterion.StrengthCriterionOrthotropic Rankine criterion in 2D.
- Parameters
fcx (float) – compressive strength in \(x\) direction
fcy (float) – compressive strength in \(y\) direction
ftx (float) – tensile strength in \(x\) direction
fty (float) – tensile strength in \(x\) direction
- gauge_function(Sig)#
Numerical evaluation of the gauge function.
\(g(\sigma) =\max\{{ -\sigma_{III}/f_c ; \sigma_I/f_t \}}\)
where \(\sigma_I,\sigma_{III}\) are the major and minor principal stresses respectively.
- class fenics_optim.limit_analysis.materials.rankine.Rankine2D(fc=1.0, ft=1.0)#
Bases:
fenics_optim.limit_analysis.materials.rankine.OrthotropicRankine2DIsotropic Rankine criterion in 2D.
- Parameters
fc (float) – compressive strength
ft (float) – tensile strength
- gauge_function(Sig)#
Numerical evaluation of the gauge function.
\(g(\sigma) =\max\{{ -\sigma_{III}/f_c ; \sigma_I/f_t \}}\)
where \(\sigma_I,\sigma_{III}\) are the major and minor principal stresses respectively
- class fenics_optim.limit_analysis.materials.rankine.Rankine3D(fc, ft)#
Bases:
fenics_optim.limit_analysis.materials.strength_criterion.StrengthCriterionIsotropic Rankine criterion in 3D.
- Parameters
fc (float) – compressive strength
ft (float) – tensile strength
- gauge_function(Sig)#
Numerical evaluation of the gauge function.
\(g(\sigma) =\max\{{ -\sigma_{III}/f_c ; \sigma_I/f_t \}}\)
where \(\sigma_I,\sigma_{III}\) are the major and minor principal stresses respectively.
Tsai-Wu#
- class fenics_optim.limit_analysis.materials.tsai_wu.TsaiWu(fc1, ft1, fc2, ft2, tau12, tau23, orient=0, dim=3)#
Bases:
fenics_optim.limit_analysis.materials.strength_criterion.StrengthCriterionTsai-Wu anisotropic strength criterion.
The behaviour is transverse isotropic with axis given by direction 1.
- Parameters
fc1 (float) – compressive strength along direction 1
ft1 (float) – tensile strength along direction 1
fc2 (float) – compressive strength along direction 2/3
ft2 (float) – tensile strength along direction 2/3
tau12 (float) – shear strength in 1/(2,3) plane
tau23 (float) – shear strength in 2/3 plane
orient (float, optional) – fiber orientation with respect to x axis, by default 0
dim (int, optional) – criterion dimension, by default 3