solids

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: 4 Imported by: 0

Documentation

Overview

package solids provides constitutive models for solid mechanics analysis.

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func SetStrainDisplacementMatrixAxisymmetric

func SetStrainDisplacementMatrixAxisymmetric(dstB, elemNod, dN *mat.Dense, N *mat.VecDense) float64

func SetStrainDisplacementMatrixPlane

func SetStrainDisplacementMatrixPlane(dstB, elemNod, dN *mat.Dense, _ *mat.VecDense) float64

func SetStrainDisplacementMatrixXYZ

func SetStrainDisplacementMatrixXYZ(dstB, elemNod, dN *mat.Dense, _ *mat.VecDense) float64

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

func (m Isotropic) Constitutive() (mat.Matrix, error)

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

func (m Isotropic) ShearModulus() float64

ShearModulus returns the shear modulus of the material, often denoted as G.

func (Isotropic) Solid3D

func (m Isotropic) Solid3D() fem.IsoConstituter

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.

Jump to

Keyboard shortcuts

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