elements module¶
The tacs.elements module contains the full library elements supported by TACS.
Basis classes¶
Some Element
classes are capable of running under different element parameterizations (number of nodes, connectivity, etc).
These elements may require an ElementBasis
class at setup. The following ElementBasis
classes are available in TACS:
- class tacs.elements.LinearTetrahedralBasis¶
Bases:
ElementBasis
Basis class for a linear tetrahedral 3D element.
Note
numNodes: 4
- class tacs.elements.QuadraticTetrahedralBasis¶
Bases:
ElementBasis
Basis class for a quadratic tetrahedral 3D element.
Note
numNodes: 10
- class tacs.elements.LinearHexaBasis¶
Bases:
ElementBasis
Basis class for a linear hexahedral 3D element.
Note
numNodes: 8
- class tacs.elements.QuadraticHexaBasis¶
Bases:
ElementBasis
Basis class for a quadratic hexahedral 3D element.
Note
numNodes: 27
- class tacs.elements.CubicHexaBasis¶
Bases:
ElementBasis
Basis class for a cubic hexahedral 3D element.
Note
numNodes: 64
- class tacs.elements.LinearQuadBasis¶
Bases:
ElementBasis
Basis class for a linear quad 2D element.
Note
numNodes: 4
- class tacs.elements.QuadraticQuadBasis¶
Bases:
ElementBasis
Basis class for a quadratic quad 2D element.
Note
numNodes: 9
- class tacs.elements.CubicQuadBasis¶
Bases:
ElementBasis
Basis class for a cubic quad 2D element.
Note
numNodes: 16
- class tacs.elements.QuarticQuadBasis¶
Bases:
ElementBasis
Basis class for a quartic quad 2D element.
Note
numNodes: 25
- class tacs.elements.QuinticQuadBasis¶
Bases:
ElementBasis
Basis class for a quintic quad 2D element.
Note
numNodes: 36
- class tacs.elements.LinearTriangleBasis¶
Bases:
ElementBasis
Basis class for a linear triangular 2D element
Note
numNodes: 3
- class tacs.elements.QuadraticTriangleBasis¶
Bases:
ElementBasis
Basis class for a quadratic triangular 2D element
Note
numNodes: 6
- class tacs.elements.CubicTriangleBasis¶
Bases:
ElementBasis
Basis class for a cubic triangular 2D element
Note
numNodes: 10
Model classes¶
Some Element
classes require ElementModel
classes in their setup procedure.
The following ElementModel
classes are available in TACS:
- class tacs.elements.HeatConduction2D¶
Bases:
ElementModel
Model class for 2D heat conduction element.
Note
varsPerNode: 1
- Parameters:
con (PlaneStressConstitutive) -- Material constitutive properties.
- class tacs.elements.HeatConduction3D¶
Bases:
ElementModel
Model class for 3D heat conduction element.
Note
varsPerNode: 1
- Parameters:
con (SolidConstitutive) -- Material constitutive properties.
- class tacs.elements.PCMHeatConduction2D¶
Bases:
ElementModel
Model class for 2D phase change material heat conduction element.
Note
varsPerNode: 1
- Parameters:
con (PhaseChangeMaterialConstitutive) -- Material constitutive properties.
- class tacs.elements.LinearElasticity2D¶
Bases:
ElementModel
Model class for 2D linear elasticity element.
Note
varsPerNode: 2
- Parameters:
con (PlaneStressConstitutive) -- Material constitutive properties.
- class tacs.elements.LinearElasticity3D¶
Bases:
ElementModel
Model class for 3D linear elasticity element.
Note
varsPerNode: 3
- Parameters:
con (SolidConstitutive) -- Material constitutive properties.
- class tacs.elements.LinearThermoelasticity2D¶
Bases:
ElementModel
Model class for 2D linear thermoelasticity element.
Note
varsPerNode: 3
- Parameters:
con (PlaneStressConstitutive) -- Material constitutive properties.
steady_flag (bool, optional) -- Steady state flag. Defaults to False.
- class tacs.elements.LinearThermoelasticity3D¶
Bases:
ElementModel
Model class for 3D linear thermoelasticity element.
Note
varsPerNode: 4
- Parameters:
con (SolidConstitutive) -- Material constitutive properties.
steady_flag (bool, optional) -- Steady state flag. Defaults to False.
Transform classes¶
Some Element
classes require transform classes in their setup procedure.
The following transform classes are available in TACS:
- class tacs.elements.ShellNaturalTransform¶
Bases:
ShellTransform
Class for computing the transformation from the global coordinates to the shell/material local coordinates (used for defining stresses). This class uses shell "natural" coordinate system (i.e. local \(x\) is aligned with element's first edge.) This is appropriate for isotropic shells, who's stiffness properties don't depend on orientation.
See also
- class tacs.elements.ShellRefAxisTransform¶
Bases:
ShellTransform
Class for computing the transformation from the global coordinates to the shell local coordinates (used for defining stresses). This class uses a projection of a user-supplied reference axis to define the shell/material coordinate system (i.e. local \(x\) is aligned with the reference axis.) This is appropriate for orthotropic and anisotropic shells, who's stiffness properties depend on orientation.
Warning
The reference direction cannot be normal to the shell surface.
See also
- Parameters:
axis (array-like) -- Reference axis.
- getRefAxis()¶
Get reference axis for transform.
- Returns:
reference axis
- Return type:
axis (numpy.ndarray)
- class tacs.elements.BeamRefAxisTransform¶
Bases:
BeamTransform
Class for computing the transformation from the global coordinates to the beam local coordinates (used for defining stresses). This class uses a projection of a user-supplied reference axis to define the beam coordinate system (i.e. local \(y\) is aligned with the reference axis.)
Warning
The reference direction cannot be parallel to the beam axis.
- Parameters:
axis (array-like) -- Reference axis.
- getRefAxis()¶
Get reference axis for transform.
- Returns:
reference axis
- Return type:
axis (numpy.ndarray)
- class tacs.elements.SpringIdentityTransform¶
Bases:
SpringTransform
Class for computing the transformation from the global coordinates to the spring/material local coordinates (used for defining spring stifness directions). This class uses an identity transform (i.e. the spring stiffnesses are aligned with the global axes.)
- class tacs.elements.SpringRefAxisTransform¶
Bases:
SpringTransform
Class for computing the transformation from the global coordinates to the spring/material local coordinates (used for defining spring stiffness directions). This class uses a projection of a user-supplied reference axis to define the spring stiffness coordinate system. The local x always aligns with the element. The local z is given by the cross product of x and axis. The local y is given by the cross product of local z and x.
Warning
Not appropriate for elements with coincident nodes. Use
SpringIdentityTransform
orSpringRefFrameTransform
.- Parameters:
axis (array-like) -- Reference axis.
- getRefAxis()¶
Get reference axis for transform.
- Returns:
reference axis
- Return type:
axis (numpy.ndarray)
- class tacs.elements.SpringRefFrameTransform¶
Bases:
SpringTransform
Class for computing the transformation from the global coordinates to the spring/material local coordinates (used for defining spring stifness directions). This class uses an user-defined arbritrary reference frame for the transform (i.e. the spring stiffnesses are aligned with the global axes.) The reference is defined using two reference vectors. axis1 defines the local x axes. The local z is given by the cross product of x and axis2. The local y is given by the cross product of local z and x.
- getRefAxes()¶
Get reference axes for transform.
- Returns:
first reference axis axis_j (numpy.ndarray): second reference axis
- Return type:
axis_i (numpy.ndarray)
Element classes¶
The following Element
classes are available in TACS:
- class tacs.elements.Element2D¶
Bases:
Element
General element class appropriate for 2D analysis.
Note
varsPerNode: depends on
ElementModel
numNodes: depends on
ElementBasis
outputElement:
TACS.PLANE_STRESS_ELEMENT
- Parameters:
model (ElementModel) -- Physics model for element.
basis (ElementBasis) -- Basis for element.
- class tacs.elements.Element3D¶
Bases:
Element
General element class appropriate for 3D analysis.
Note
varsPerNode: depends on
ElementModel
numNodes: depends on
ElementBasis
outputElement:
TACS.SOLID_ELEMENT
- Parameters:
model (ElementModel) -- Physics model for element.
basis (ElementBasis) -- Basis for element.
- class tacs.elements.Quad4Shell¶
Bases:
Element
A 4-node quad shell element for general linear elastic analysis.
This element employs a mixed interpolation of tensorial (strain) components (MITC) method to avoid shear locking problems.
Note
varsPerNode: 6
numNodes: 4
outputElement:
TACS.BEAM_OR_SHELL_ELEMENT
- Parameters:
transform (ShellTransform or None) -- Shell transform object.
None
is equivalent toShellNaturalTransform
.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Quad9Shell¶
Bases:
Element
A 9-node quad shell element for general linear elastic analysis.
This element employs a mixed interpolation of tensorial (strain) components (MITC) method to avoid shear locking problems.
Note
varsPerNode: 6
numNodes: 9
outputElement:
TACS.BEAM_OR_SHELL_ELEMENT
- Parameters:
transform (ShellTransform or None) -- Shell transform object.
None
is equivalent toShellNaturalTransform
.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Quad16Shell¶
Bases:
Element
A 16-node quad shell element for general linear elastic analysis.
This element employs a mixed interpolation of tensorial (strain) components (MITC) method to avoid shear locking problems.
Note
varsPerNode: 6
numNodes: 16
outputElement:
TACS.BEAM_OR_SHELL_ELEMENT
- Parameters:
transform (ShellTransform or None) -- Shell transform object.
None
is equivalent toShellNaturalTransform
.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Tri3Shell¶
Bases:
Element
A 3-node triangular shell element for general linear elastic analysis.
This element employs a mixed interpolation of tensorial (strain) components (MITC) method to avoid shear locking problems.
Note
varsPerNode: 6
numNodes: 3
outputElement:
TACS.BEAM_OR_SHELL_ELEMENT
- Parameters:
transform (ShellTransform or None) -- Shell transform object.
None
is equivalent toShellNaturalTransform
.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Quad4NonlinearShell¶
Bases:
Element
A 4-node quad shell element for general geometric nonlinear elastic analysis. The element uses a nonlinear strain relationship but retains a linearized treatment of rotations. It should therefore capture geometrically nonlinear stress-stiffening effects, provided rotations remain small.
See also
This element employs a mixed interpolation of tensorial (strain) components (MITC) method to avoid shear locking problems.
Note
varsPerNode: 6
numNodes: 4
outputElement:
TACS.BEAM_OR_SHELL_ELEMENT
- Parameters:
transform (ShellTransform or None) -- Shell transform object.
None
is equivalent toShellNaturalTransform
.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Quad9NonlinearShell¶
Bases:
Element
A 9-node quad shell element for general geometric nonlinear elastic analysis. The element uses a nonlinear strain relationship but retains a linearized treatment of rotations. It should therefore capture geometrically nonlinear stress-stiffening effects, provided rotations remain small.
See also
This element employs a mixed interpolation of tensorial (strain) components (MITC) method to avoid shear locking problems.
Note
varsPerNode: 6
numNodes: 9
outputElement:
TACS.BEAM_OR_SHELL_ELEMENT
- Parameters:
transform (ShellTransform or None) -- Shell transform object.
None
is equivalent toShellNaturalTransform
.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Quad16NonlinearShell¶
Bases:
Element
A 16-node quad shell element for general geometric nonlinear elastic analysis. The element uses a nonlinear strain relationship but retains a linearized treatment of rotations. It should therefore capture geometrically nonlinear stress-stiffening effects, provided rotations remain small.
See also
This element employs a mixed interpolation of tensorial (strain) components (MITC) method to avoid shear locking problems.
Note
varsPerNode: 6
numNodes: 16
outputElement:
TACS.BEAM_OR_SHELL_ELEMENT
- Parameters:
transform (ShellTransform or None) -- Shell transform object.
None
is equivalent toShellNaturalTransform
.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Tri3NonlinearShell¶
Bases:
Element
A 3-node triangular shell element for geometric elastic analysis. The element uses a nonlinear strain relationship but retains a linearized treatment of rotations. It should therefore capture geometrically nonlinear stress-stiffening effects, provided rotations remain small.
See also
This element employs a mixed interpolation of tensorial (strain) components (MITC) method to avoid shear locking problems.
Note
varsPerNode: 6
numNodes: 3
outputElement:
TACS.BEAM_OR_SHELL_ELEMENT
- Parameters:
transform (ShellTransform or None) -- Shell transform object.
None
is equivalent toShellNaturalTransform
.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Quad4NonlinearThermalShell¶
Bases:
Element
A 4-node quad shell element for general nonlinear thermoelastic analysis. The element uses a nonlinear strain relationship but retains a linearized treatment of rotations. It should therefore capture geometrically nonlinear stress-stiffening effects, provided rotations remain small.
See also
This element employs a mixed interpolation of tensorial (strain) components (MITC) method to avoid shear locking problems.
Note
varsPerNode: 7
numNodes: 4
outputElement:
TACS.BEAM_OR_SHELL_ELEMENT
- Parameters:
transform (ShellTransform or None) -- Shell transform object.
None
is equivalent toShellNaturalTransform
.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Quad9NonlinearThermalShell¶
Bases:
Element
A 9-node quad shell element for general geometric nonlinear thermoelastic analysis.
This element employs a mixed interpolation of tensorial (strain) components (MITC) method to avoid shear locking problems.
Note
varsPerNode: 7
numNodes: 9
outputElement:
TACS.BEAM_OR_SHELL_ELEMENT
- Parameters:
transform (ShellTransform or None) -- Shell transform object.
None
is equivalent toShellNaturalTransform
.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Quad16NonlinearThermalShell¶
Bases:
Element
A 16-node quad shell element for general geometric nonlinear thermoelastic analysis.
This element employs a mixed interpolation of tensorial (strain) components (MITC) method to avoid shear locking problems.
Note
varsPerNode: 7
numNodes: 16
outputElement:
TACS.BEAM_OR_SHELL_ELEMENT
- Parameters:
transform (ShellTransform or None) -- Shell transform object.
None
is equivalent toShellNaturalTransform
.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Tri3NonlinearThermalShell¶
Bases:
Element
A 3-node triangular shell element for general geometric nonlinear thermoelastic analysis.
This element employs a mixed interpolation of tensorial (strain) components (MITC) method to avoid shear locking problems.
Note
varsPerNode: 7
numNodes: 3
outputElement:
TACS.BEAM_OR_SHELL_ELEMENT
- Parameters:
transform (ShellTransform or None) -- Shell transform object.
None
is equivalent toShellNaturalTransform
.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Quad4ThermalShell¶
Bases:
Element
A 4-node quad shell element for linear thermoelastic analysis.
This element employs a mixed interpolation of tensorial (strain) components (MITC) method to avoid shear locking problems.
Note
varsPerNode: 7
numNodes: 4
outputElement:
TACS.BEAM_OR_SHELL_ELEMENT
- Parameters:
transform (ShellTransform or None) -- Shell transform object.
None
is equivalent toShellNaturalTransform
.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Quad9ThermalShell¶
Bases:
Element
A 9-node quad shell element for general linear thermoelastic analysis.
This element employs a mixed interpolation of tensorial (strain) components (MITC) method to avoid shear locking problems.
Note
varsPerNode: 7
numNodes: 9
outputElement:
TACS.BEAM_OR_SHELL_ELEMENT
- Parameters:
transform (ShellTransform or None) -- Shell transform object.
None
is equivalent toShellNaturalTransform
.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Quad16ThermalShell¶
Bases:
Element
A 16-node quad shell element for general linear thermoelastic analysis.
This element employs a mixed interpolation of tensorial (strain) components (MITC) method to avoid shear locking problems.
Note
varsPerNode: 7
numNodes: 16
outputElement:
TACS.BEAM_OR_SHELL_ELEMENT
- Parameters:
transform (ShellTransform or None) -- Shell transform object.
None
is equivalent toShellNaturalTransform
.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Tri3ThermalShell¶
Bases:
Element
A 3-node triangular shell element for general linear thermoelastic analysis.
This element employs a mixed interpolation of tensorial (strain) components (MITC) method to avoid shear locking problems.
Note
varsPerNode: 7
numNodes: 3
outputElement:
TACS.BEAM_OR_SHELL_ELEMENT
- Parameters:
transform (ShellTransform or None) -- Shell transform object.
None
is equivalent toShellNaturalTransform
.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Beam2¶
Bases:
Element
A 2-node Timoshenko beam element for general linear elastic analysis.
Note
varsPerNode: 6
numNodes: 2
outputElement:
TACS.BEAM_OR_SHELL_ELEMENT
- Parameters:
transform (BeamTransform) -- Beam transform object.
con (BeamConstitutive) -- Beam constitutive object.
- class tacs.elements.Beam3¶
Bases:
Element
A 3-node Timoshenko beam element for general linear elastic analysis.
Note
varsPerNode: 6
numNodes: 3
outputElement:
TACS.BEAM_OR_SHELL_ELEMENT
- Parameters:
transform (BeamTransform) -- Beam transform object.
con (BeamConstitutive) -- Beam constitutive object.
- class tacs.elements.Beam2ModRot¶
Bases:
Element
A 2-node Timoshenko beam element for general nonlinear elastic analysis with moderate rotations.
Note
varsPerNode: 6
numNodes: 2
outputElement:
TACS.BEAM_OR_SHELL_ELEMENT
- Parameters:
transform (BeamTransform) -- Beam transform object.
con (BeamConstitutive) -- Beam constitutive object.
- class tacs.elements.Beam3ModRot¶
Bases:
Element
A 3-node Timoshenko beam element for general nonlinear elastic analysis with moderate rotations.
Note
varsPerNode: 6
numNodes: 3
outputElement:
TACS.BEAM_OR_SHELL_ELEMENT
- Parameters:
transform (BeamTransform) -- Beam transform object.
con (BeamConstitutive) -- Beam constitutive object.
- class tacs.elements.RBE2¶
Bases:
Element
A rigid body connected to an arbitrary number of grid points. The independent degrees-of-freedom are the six components of motion at a single grid point. The dependent degrees-of-freedom at the other grid points.
Note
varsPerNode: 6
numNodes: 2 * N_dep + 1
outputElement:
TACS.RIGID_ELEMENT
- Parameters:
num_nodes (int) -- Total number of nodes associated with the element.
constrained_dofs (numpy.ndarray[int]) -- Flags to determine which dependent node dof's are attached to the element.
- classmethod setScalingParameters(C1=1000.0, C2=0.0)¶
Set scaling parameters used in Lagrange multiplier formulation of the element.
- Parameters:
C1 (double) -- Constraint matrix scaling factor used in RBE Lagrange multiplier stiffness matrix.
C2 (double) -- Artificial constant added to diagonals of RBE Lagrange multiplier stiffness matrix
preconditioner. (to stabilize)
- class tacs.elements.RBE3¶
Bases:
Element
The RBE3 element is a powerful tool for distributing applied loads and mass in a model. Unlike the RBAR and RBE2 elements, the RBE3 doesn’t add additional stiffness to your structure. Forces and moments applied to reference points are distributed to a set of independent degrees of freedom based on the RBE3 geometry and local weight factors.
Note
varsPerNode: 6
numNodes: N_indep + 2
outputElement:
TACS.RIGID_ELEMENT
- Parameters:
num_nodes (int) -- Total number of nodes associated with the element.
dep_constrained_dofs (numpy.ndarray[int]) -- Flags to determine which dependent node dof's are attached to the eleemnt.
weights (numpy.ndarray[float]) -- RBE weighting factor for each independent node.
indep_constrained_dofs (numpy.ndarray[int]) -- Flags to determine which independent node dof's are attached to the element.
- classmethod setScalingParameters(C1=1000.0, C2=0.0)¶
Set scaling parameters used in Lagrange multiplier formulation of the element.
- Parameters:
C1 (double) -- Constraint matrix scaling factor used in RBE Lagrange multiplier stiffness matrix.
C2 (double) -- Artificial constant added to diagonals of RBE Lagrange multiplier stiffness matrix
preconditioner. (to stabilize)
- class tacs.elements.MassElement¶
Bases:
Element
A 6 DOF point mass element.
Note
varsPerNode: 6
numNodes: 1
outputElement:
TACS.MASS_ELEMENT
- Parameters:
con (GeneralMassConstitutive) -- Point mass constitutive object.
- class tacs.elements.SpringElement¶
Bases:
Element
A 6 DOF spring element.
Note
varsPerNode: 6
numNodes: 2
outputElement:
TACS.SPRING_ELEMENT
- Parameters:
transform (SpringTransform or None) -- Spring transform object.
None
is equivalent toSpringIdentityTransform
.con (GeneralSpringConstitutive) -- Spring constitutive object.