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:
ElementBasisBasis class for a linear tetrahedral 3D element.
Note
numNodes: 4
- class tacs.elements.QuadraticTetrahedralBasis¶
Bases:
ElementBasisBasis class for a quadratic tetrahedral 3D element.
Note
numNodes: 10
- class tacs.elements.LinearHexaBasis¶
Bases:
ElementBasisBasis class for a linear hexahedral 3D element.
Note
numNodes: 8
- class tacs.elements.QuadraticHexaBasis¶
Bases:
ElementBasisBasis class for a quadratic hexahedral 3D element.
Note
numNodes: 27
- class tacs.elements.CubicHexaBasis¶
Bases:
ElementBasisBasis class for a cubic hexahedral 3D element.
Note
numNodes: 64
- class tacs.elements.LinearQuadBasis¶
Bases:
ElementBasisBasis class for a linear quad 2D element.
Note
numNodes: 4
- class tacs.elements.QuadraticQuadBasis¶
Bases:
ElementBasisBasis class for a quadratic quad 2D element.
Note
numNodes: 9
- class tacs.elements.CubicQuadBasis¶
Bases:
ElementBasisBasis class for a cubic quad 2D element.
Note
numNodes: 16
- class tacs.elements.QuarticQuadBasis¶
Bases:
ElementBasisBasis class for a quartic quad 2D element.
Note
numNodes: 25
- class tacs.elements.QuinticQuadBasis¶
Bases:
ElementBasisBasis class for a quintic quad 2D element.
Note
numNodes: 36
- class tacs.elements.LinearTriangleBasis¶
Bases:
ElementBasisBasis class for a linear triangular 2D element
Note
numNodes: 3
- class tacs.elements.QuadraticTriangleBasis¶
Bases:
ElementBasisBasis class for a quadratic triangular 2D element
Note
numNodes: 6
- class tacs.elements.CubicTriangleBasis¶
Bases:
ElementBasisBasis 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:
ElementModelModel class for 2D heat conduction element.
Note
varsPerNode: 1
- Parameters:
con (PlaneStressConstitutive) -- Material constitutive properties.
- class tacs.elements.HeatConduction3D
Bases:
ElementModelModel class for 3D heat conduction element.
Note
varsPerNode: 1
- Parameters:
con (SolidConstitutive) -- Material constitutive properties.
- class tacs.elements.PCMHeatConduction2D
Bases:
ElementModelModel class for 2D phase change material heat conduction element.
Note
varsPerNode: 1
- Parameters:
con (PhaseChangeMaterialConstitutive) -- Material constitutive properties.
- class tacs.elements.LinearElasticity2D
Bases:
ElementModelModel class for 2D linear elasticity element.
Note
varsPerNode: 2
- Parameters:
con (PlaneStressConstitutive) -- Material constitutive properties.
- class tacs.elements.LinearElasticity3D
Bases:
ElementModelModel class for 3D linear elasticity element.
Note
varsPerNode: 3
- Parameters:
con (SolidConstitutive) -- Material constitutive properties.
- class tacs.elements.LinearThermoelasticity2D
Bases:
ElementModelModel 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:
ElementModelModel 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:
ShellTransformClass 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:
ShellTransformClass 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:
BeamTransformClass 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:
SpringTransformClass 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:
SpringTransformClass 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
SpringIdentityTransformorSpringRefFrameTransform.- 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:
SpringTransformClass 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:
ElementGeneral element class appropriate for 2D analysis.
Note
varsPerNode: depends on
ElementModelnumNodes: depends on
ElementBasisoutputElement:
TACS.PLANE_STRESS_ELEMENT- Parameters:
model (ElementModel) -- Physics model for element.
basis (ElementBasis) -- Basis for element.
- class tacs.elements.Element3D
Bases:
ElementGeneral element class appropriate for 3D analysis.
Note
varsPerNode: depends on
ElementModelnumNodes: depends on
ElementBasisoutputElement:
TACS.SOLID_ELEMENT- Parameters:
model (ElementModel) -- Physics model for element.
basis (ElementBasis) -- Basis for element.
- class tacs.elements.Quad4Shell
Bases:
ElementA 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.
Noneis equivalent toShellNaturalTransform.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Quad9Shell
Bases:
ElementA 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.
Noneis equivalent toShellNaturalTransform.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Quad16Shell
Bases:
ElementA 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.
Noneis equivalent toShellNaturalTransform.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Tri3Shell
Bases:
ElementA 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.
Noneis equivalent toShellNaturalTransform.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Quad4NonlinearShell
Bases:
ElementA 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.
Noneis equivalent toShellNaturalTransform.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Quad9NonlinearShell
Bases:
ElementA 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.
Noneis equivalent toShellNaturalTransform.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Quad16NonlinearShell
Bases:
ElementA 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.
Noneis equivalent toShellNaturalTransform.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Tri3NonlinearShell
Bases:
ElementA 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.
Noneis equivalent toShellNaturalTransform.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Quad4NonlinearThermalShell
Bases:
ElementA 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.
Noneis equivalent toShellNaturalTransform.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Quad9NonlinearThermalShell
Bases:
ElementA 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.
Noneis equivalent toShellNaturalTransform.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Quad16NonlinearThermalShell
Bases:
ElementA 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.
Noneis equivalent toShellNaturalTransform.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Tri3NonlinearThermalShell
Bases:
ElementA 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.
Noneis equivalent toShellNaturalTransform.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Quad4ThermalShell
Bases:
ElementA 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.
Noneis equivalent toShellNaturalTransform.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Quad9ThermalShell
Bases:
ElementA 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.
Noneis equivalent toShellNaturalTransform.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Quad16ThermalShell
Bases:
ElementA 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.
Noneis equivalent toShellNaturalTransform.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Tri3ThermalShell
Bases:
ElementA 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.
Noneis equivalent toShellNaturalTransform.con (ShellConstitutive) -- Shell constitutive object.
- class tacs.elements.Beam2
Bases:
ElementA 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:
ElementA 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:
ElementA 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:
ElementA 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:
ElementA 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:
ElementThe 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:
ElementA 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:
ElementA 6 DOF spring element.
Note
varsPerNode: 6
numNodes: 2
outputElement:
TACS.SPRING_ELEMENT- Parameters:
transform (SpringTransform or None) -- Spring transform object.
Noneis equivalent toSpringIdentityTransform.con (GeneralSpringConstitutive) -- Spring constitutive object.