elements

package
v0.0.0-...-36c816c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 9, 2023 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Beam2dof6

type Beam2dof6 struct {
	// Cross-sectional area of beam (YZ plane in local coordinates)
	A float64
	// Area moment of inertia of beam corresponding to couple on local Y axis.
	Iy float64
	// Area moment of inertia of beam corresponding to couple on local Z axis.
	Iz float64
	// Longitudinal moment of inertia of beam corresponding to torsion on local X axis.
	J float64
	// contains filtered or unexported fields
}

Beam2dof6 represents a 1D beam element with 6 dof on each of it's two nodes. The beam is by default oriented in X direction.

func (*Beam2dof6) CopyK

func (b *Beam2dof6) CopyK(dst *mat.Dense, v []r3.Vec) error

func (*Beam2dof6) Dofs

func (b *Beam2dof6) Dofs() fem.DofsFlag

func (*Beam2dof6) LenNodes

func (b *Beam2dof6) LenNodes() int

func (*Beam2dof6) SetConstitutive

func (b *Beam2dof6) SetConstitutive(c fem.Constituter) error

type Hexa20

type Hexa20 struct {
	// QuadratureOrder is the order (a.k.a degree) of the quadrature used for integration.
	// If zero a default value of 3 is used (3x3x3 gauss quadrature).
	QuadratureOrder int
	// NodeDofs is the number of degrees of freedom per node.
	// If set to 0 a default value of fem.DofX|fem.DofY|fem.DofZ (0b111) is used.
	NodeDofs fem.DofsFlag
}

Hexa20 is the serendipity 3D quadratic strain hexahedral element of 20 nodes.

func (Hexa20) Basis

func (Hexa20) Basis(v r3.Vec) []float64

Basis returns the form functions of the Hexa20 element evaluated at v.

func (Hexa20) BasisDiff

func (Hexa20) BasisDiff(v r3.Vec) []float64

BasisDiff returns the differentiated form functions of the Hexa20 element evaluated at v. The result first contains the form functions differentiated with respect to X, then Y and finally Z.

    [ dN/dx ]
N = | dN/dy |   (row major form)
    [ dN/dz ]

func (Hexa20) Dofs

func (h20 Hexa20) Dofs() fem.DofsFlag

Dofs returns the set dofs for the element's nodes.

func (Hexa20) IsoparametricNodes

func (Hexa20) IsoparametricNodes() []r3.Vec

IsoparametricNodes returns the positions of the nodes relative to the origin of the element.

func (Hexa20) LenNodes

func (Hexa20) LenNodes() int

LenNodes returns the number of nodes in the element.

func (Hexa20) Quadrature

func (h8 Hexa20) Quadrature() (positions []r3.Vec, weights []float64)

Quadrature returns

func (Hexa20) String

func (Hexa20) String() string

String returns string representation of element type.

type Hexa8

type Hexa8 struct {
	// QuadratureOrder is the order (a.k.a degree) of the quadrature used for integration.
	// If zero a default value of 2 is used (2x2x2 gauss quadrature).
	QuadratureOrder int
	// NodeDofs is the number of degrees of freedom per node.
	// If set to 0 a default value of fem.DofX|fem.DofY|fem.DofZ (0b111) is used.
	NodeDofs fem.DofsFlag
}

Hexa8 is the 3D linear strain hexahedral element of 8 nodes.

func (Hexa8) Basis

func (Hexa8) Basis(v r3.Vec) []float64

Basis returns the form functions of the Hexa8 element evaluated at v.

func (Hexa8) BasisDiff

func (Hexa8) BasisDiff(v r3.Vec) []float64

BasisDiff returns the differentiated form functions of the Hexa8 element evaluated at v. The result first contains the form functions differentiated with respect to X, then Y and finally Z.

    [ dN/dx ]
N = | dN/dy |   (row major form)
    [ dN/dz ]

func (Hexa8) Dofs

func (h8 Hexa8) Dofs() fem.DofsFlag

func (Hexa8) IsoparametricNodes

func (Hexa8) IsoparametricNodes() []r3.Vec

IsoparametricNodes returns the positions of the nodes relative to the origin of the element.

func (Hexa8) LenNodes

func (Hexa8) LenNodes() int

LenNodes returns the number of nodes in the element.

func (Hexa8) Quadrature

func (h8 Hexa8) Quadrature() (positions []r3.Vec, weights []float64)

func (Hexa8) String

func (Hexa8) String() string

String returns string representation of element type.

type Quad4

type Quad4 struct {
	// QuadratureOrder is the order (a.k.a degree) of the quadrature used for integration.
	// If zero a default value of 2 is used (2x2 gauss quadrature).
	QuadratureOrder int
	// NodeDofs is the number of degrees of freedom per node.
	// If set to 0 a default value of fem.DofX|fem.DofY (0b11) is used.
	NodeDofs fem.DofsFlag
}

Quad43d3d is the 4 node 2D quadrilateral element.

func (Quad4) Basis

func (Quad4) Basis(v r3.Vec) []float64

Basis returns the form functions of the Quad43d element evaluated at v.

func (Quad4) BasisDiff

func (Quad4) BasisDiff(v r3.Vec) []float64

BasisDiff returns the differentiated form functions of the Quad43d element evaluated at v.

func (Quad4) Dofs

func (q4 Quad4) Dofs() fem.DofsFlag

Dofs returns the degrees of freedom of the nodes of the element.

func (Quad4) IsoparametricNodes

func (Quad4) IsoparametricNodes() []r3.Vec

IsoparametricNodes returns the positions of the nodes relative to the origin of the element.

func (Quad4) LenNodes

func (Quad4) LenNodes() int

LenNodes returns the number of nodes of the element.

func (Quad4) Quadrature

func (q8 Quad4) Quadrature() ([]r3.Vec, []float64)

Quadrature returns the quadrature nodes and weights of the element.

func (Quad4) String

func (q4 Quad4) String() string

String returns a string representation of the element.

type Quad8

type Quad8 struct {
	// QuadratureOrder is the order (a.k.a degree) of the quadrature used for integration.
	// If zero a default value of 3 is used (3x3 gauss quadrature).
	QuadratureOrder int
	// NodeDofs is the number of degrees of freedom per node.
	// If set to 0 a default value of fem.DofX|fem.DofY (0b11) is used.
	NodeDofs fem.DofsFlag
}

Quad8 is the 8 node 2D quadrilateral element, also known as Serendipity element due to the serendipitous nature of its integration points which make it unlike other 2D elements.

func (Quad8) Basis

func (Quad8) Basis(v r3.Vec) []float64

Basis returns the form functions of the Quad8 element evaluated at v.

func (Quad8) BasisDiff

func (Quad8) BasisDiff(v r3.Vec) []float64

BasisDiff returns the differentiated form functions of the Quad8 element evaluated at v.

func (Quad8) Dofs

func (q8 Quad8) Dofs() fem.DofsFlag

Dofs returns the degrees of freedom of the nodes of the element.

func (Quad8) IsoparametricNodes

func (Quad8) IsoparametricNodes() []r3.Vec

IsoparametricNodes returns the positions of the nodes relative to the origin of the element.

func (Quad8) LenNodes

func (Quad8) LenNodes() int

LenNodes returns the number of nodes of the element.

func (Quad8) Quadrature

func (q8 Quad8) Quadrature() ([]r3.Vec, []float64)

Quadrature returns the quadrature nodes and weights of the element.

func (Quad8) String

func (q8 Quad8) String() string

String returns a string representation of the element.

type Tetra10

type Tetra10 struct {
	// NodeDofs is the number of degrees of freedom per node.
	// If set to 0 a default value of fem.DofX|fem.DofY|fem.DofZ (0b111) is used.
	NodeDofs fem.DofsFlag
}

Tetra10 is the 3D quadratic strain tetrahedral element of 4 corner nodes and 6 edge nodes.

func (Tetra10) Basis

func (Tetra10) Basis(v r3.Vec) []float64

Basis returns the form functions of the Tetra10 element evaluated at v.

func (Tetra10) BasisDiff

func (Tetra10) BasisDiff(v r3.Vec) []float64

func (Tetra10) Dofs

func (t10 Tetra10) Dofs() fem.DofsFlag

func (Tetra10) IsoparametricNodes

func (Tetra10) IsoparametricNodes() []r3.Vec

IsoparametricNodes returns the positions of the nodes relative to the origin of the element.

func (Tetra10) LenNodes

func (Tetra10) LenNodes() int

func (Tetra10) Quadrature

func (Tetra10) Quadrature() (positions []r3.Vec, weights []float64)

func (Tetra10) String

func (Tetra10) String() string

String returns string representation of element type.

type Tetra4

type Tetra4 struct {
	// NodeDofs is the number of degrees of freedom per node.
	// If set to 0 a default value of fem.DofX|fem.DofY|fem.DofZ (0b111) is used.
	NodeDofs fem.DofsFlag
}

Tetra4 is the 3D linear strain tetrahedral element of 4 nodes.

func (Tetra4) Basis

func (Tetra4) Basis(v r3.Vec) []float64

Basis returns the form functions of the Tetra10 element evaluated at v.

func (Tetra4) BasisDiff

func (Tetra4) BasisDiff(v r3.Vec) []float64

func (Tetra4) Dofs

func (Tetra4) Dofs() fem.DofsFlag

func (Tetra4) IsoparametricNodes

func (Tetra4) IsoparametricNodes() []r3.Vec

IsoparametricNodes returns the positions of the nodes relative to the origin of the element.

func (Tetra4) LenNodes

func (Tetra4) LenNodes() int

func (Tetra4) Quadrature

func (Tetra4) Quadrature() (positions []r3.Vec, weights []float64)

func (Tetra4) String

func (Tetra4) String() string

String returns string representation of element type.

type Triangle3

type Triangle3 struct {
	// QuadratureOrder is the degree of the quadrature used for integration.
	// If zero a default value of 1 is used (1 node gauss quadrature).
	QuadratureOrder int
	// NodeDofs is the number of degrees of freedom per node.
	// If set to 0 a default value of fem.DofX|fem.DofY (0b11) is used.
	NodeDofs fem.DofsFlag
}

Triangle3 is the 3 node 2D triangle element.

func (Triangle3) Basis

func (Triangle3) Basis(v r3.Vec) []float64

Basis returns the form functions of the Triangle3 element evaluated at v.

func (Triangle3) BasisDiff

func (Triangle3) BasisDiff(v r3.Vec) []float64

BasisDiff returns the differentiated form functions of the Triangle3 element evaluated at v.

func (Triangle3) Dofs

func (t3 Triangle3) Dofs() fem.DofsFlag

Dofs returns the degrees of freedom of the nodes of the element.

func (Triangle3) IsoparametricNodes

func (Triangle3) IsoparametricNodes() []r3.Vec

IsoparametricNodes returns the positions of the nodes relative to the origin of the element.

func (Triangle3) LenNodes

func (Triangle3) LenNodes() int

LenNodes returns the number of nodes of the element.

func (Triangle3) Quadrature

func (t3 Triangle3) Quadrature() (nodes []r3.Vec, weights []float64)

Quadrature returns the quadrature integration nodes and weights of the element.

func (Triangle3) String

func (t3 Triangle3) String() string

type Triangle6

type Triangle6 struct {
	// QuadratureOrder is the degree of the quadrature used for integration.
	// If zero a default value of 2 is used (3 node gauss quadrature).
	QuadratureOrder int
}

Triangle6 is the 6 node 2D triangle element. The 3 nodes besides the corners are located at the middle of the edges.

func (Triangle6) Basis

func (Triangle6) Basis(v r3.Vec) []float64

Basis returns the form functions of the Triangle6 element evaluated at v.

func (Triangle6) BasisDiff

func (Triangle6) BasisDiff(v r3.Vec) []float64

BasisDiff returns the differentiated form functions of the Triangle6 element evaluated at v.

func (Triangle6) Dofs

func (Triangle6) Dofs() fem.DofsFlag

Dofs returns the degrees of freedom of the nodes of the element.

func (Triangle6) IsoparametricNodes

func (Triangle6) IsoparametricNodes() []r3.Vec

IsoparametricNodes returns the positions of the nodes relative to the origin of the element.

func (Triangle6) LenNodes

func (Triangle6) LenNodes() int

LenNodes returns the number of nodes of the element.

func (Triangle6) Quadrature

func (t6 Triangle6) Quadrature() (nodes []r3.Vec, weights []float64)

Quadrature returns the quadrature integration nodes and weights of the element.

func (Triangle6) String

func (t6 Triangle6) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL