Documentation ¶
Overview ¶
package solids provides constitutive models for solid mechanics analysis.
Index ¶
- func SetStrainDisplacementMatrixAxisymmetric(dstB, elemNod, dN *mat.Dense, N *mat.VecDense) float64
- func SetStrainDisplacementMatrixPlane(dstB, elemNod, dN *mat.Dense, _ *mat.VecDense) float64
- func SetStrainDisplacementMatrixXYZ(dstB, elemNod, dN *mat.Dense, _ *mat.VecDense) float64
- type Isotropic
- type IsotropicConductivity
- type TransverselyIsotropic
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Isotropic ¶
type Isotropic struct { // Elasiticity Modulus. Also known as Young's modulus. E float64 // Poisson modulus. Usually uses nu as symbol in literature. Poisson float64 }
Isotropic represents a material with no preferential direction respecting mechanical properties. i.e: Room temperature steel. E=200GPa, Poisson=0.3
func (Isotropic) Axisymmetric ¶
func (m Isotropic) Axisymmetric() fem.IsoConstituter
func (Isotropic) Constitutive ¶
return value will be concrete in future.
func (Isotropic) PlaneStess ¶
func (m Isotropic) PlaneStess() fem.IsoConstituter
func (Isotropic) PlaneStrain ¶
func (m Isotropic) PlaneStrain() fem.IsoConstituter
func (Isotropic) ShearModulus ¶
ShearModulus returns the shear modulus of the material, often denoted as G.
type IsotropicConductivity ¶
type IsotropicConductivity struct {
K float64 // thermal conductivity
}
func (IsotropicConductivity) Axisymmetric ¶
func (k IsotropicConductivity) Axisymmetric() fem.IsoConstituter
func (IsotropicConductivity) Constitutive ¶
func (k IsotropicConductivity) Constitutive() (mat.Matrix, error)
func (IsotropicConductivity) Plane ¶
func (k IsotropicConductivity) Plane() fem.IsoConstituter
func (IsotropicConductivity) Solid3D ¶
func (k IsotropicConductivity) Solid3D() fem.IsoConstituter
type TransverselyIsotropic ¶
type TransverselyIsotropic struct { // Longitudinal Young's elasticity modulus (X direction). Found as E_1 in literature. Ex float64 // Transversal Young's elasticity modulus (XY plane). Found as E_2 in literature. Exy float64 // Transversal shear modulus in XY plane. Is equal to Gxz for this material. Gxy float64 // PoissonXY represents the quotient between deformations in directions X and Y // when stress is applied in direction X. Is positive when material contracts in transversal direction. PoissonXY float64 // PoissonXY represents the quotient between deformations in directions Y and Z // when stress is applied in direction Y. Is positive when material contracts in transversal direction. PoissonYZ float64 }
TransverselyIsotropic is a material that is transversally isotropic with X as the principal or longitudinal direction. i.e. AS4 carbon fiber: Ex=235GPa, Exy=14GPa, Gxy=28GPa, vxy=0.2, vyz=0.25
Example (CarbonFiber) ¶
Calculates the stiffness matrix of a single isoparametric tetrahedron element.
package main import ( "fmt" "github.com/soypat/go-fem/constitution/solids" "github.com/soypat/lap" ) func main() { carbonFiber := solids.TransverselyIsotropic{ Ex: 235e9, Exy: 15e9, Gxy: 28e9, PoissonXY: 0.2, PoissonYZ: 0.25, } C, err := carbonFiber.Constitutive() if err != nil { panic(err) } fmt.Printf("C=\n%.3g", lap.Formatted(C)) }
Output: C= ⎡2.37e+11 4.03e+09 4.03e+09 0 0 0⎤ ⎢4.03e+09 1.61e+10 4.07e+09 0 0 0⎥ ⎢4.03e+09 4.07e+09 1.61e+10 0 0 0⎥ ⎢ 0 0 0 6e+09 0 0⎥ ⎢ 0 0 0 0 2.8e+10 0⎥ ⎣ 0 0 0 0 0 2.8e+10⎦
func (TransverselyIsotropic) Constitutive ¶
func (m TransverselyIsotropic) Constitutive() (mat.Matrix, error)
return value will be concrete in future.