Documentation ¶
Index ¶
- Constants
- Variables
- func Area(mesh msh.Msh) (Area float64, Center msh.Node)
- func Area3node(na, nb, nc msh.Node) float64
- func Center3node(na, nb, nc msh.Node) (center msh.Node)
- func J(b, h float64) float64
- func Jx3node(na, nb, nc msh.Node) (j float64)
- func Jxx(mesh msh.Msh) float64
- func Jxy(mesh msh.Msh) float64
- func MoveXOY(m *msh.Msh, x, y float64)
- func OnAxeX(a, b msh.Node) (c msh.Node)
- func RotateXOY(m *msh.Msh, a float64)
- func SortByY(na, nb, nc msh.Node) (_, _, _ msh.Node)
- func Sx(mesh msh.Msh) float64
- func WxPlastic(mesh msh.Msh) (w float64)
- func Ymax(mesh msh.Msh) float64
- type Angle
- type BendingProperty
- type Cylinder
- type Geor
- type Isection
- type Property
- type Rectangle
- type Tsection
- type UPN
Examples ¶
Constants ¶
View Source
const ( Eps = 1e-6 IterMax = 200 )
Variables ¶
View Source
var Angles = []Angle{
{"L50x5", 0.050, 0.005, 0.007, 0.0035},
{"L60x6", 0.060, 0.006, 0.008, 0.0040},
{"L63x6", 0.063, 0.006, 0.007, 0.0040},
{"L63x6", 0.063, 0.006, 0.008, 0.0040},
{"L70x7", 0.070, 0.007, 0.009, 0.0045},
{"L75x7", 0.075, 0.007, 0.008, 0.0045},
{"L75x8", 0.075, 0.008, 0.009, 0.0045},
{"L80x8", 0.080, 0.008, 0.010, 0.0050},
{"L90x9", 0.090, 0.009, 0.011, 0.0055},
{"L100x10", 0.100, 0.010, 0.012, 0.0060},
{"L120x12", 0.120, 0.012, 0.013, 0.0065},
{"L150x15", 0.150, 0.015, 0.016, 0.0080},
}
View Source
var Isections = []Isection{
{"10B1-ASCM", 0.1000, 0.0550, 0.0041, 0.0057, 0.0070},
{"12B1-ASCM", 0.1176, 0.0640, 0.0038, 0.0051, 0.0070},
{"12B2-ASCM", 0.1200, 0.0640, 0.0044, 0.0063, 0.0070},
{"14B1-ASCM", 0.1374, 0.0730, 0.0038, 0.0056, 0.0070},
{"14B2-ASCM", 0.1400, 0.0730, 0.0047, 0.0069, 0.0070},
{"16B1-ASCM", 0.1570, 0.0820, 0.0040, 0.0059, 0.0090},
{"16B2-ASCM", 0.1600, 0.0820, 0.0050, 0.0074, 0.0090},
{"18B1-ASCM", 0.1770, 0.0910, 0.0043, 0.0065, 0.0090},
{"18B2-ASCM", 0.1800, 0.0910, 0.0053, 0.0080, 0.0090},
{"20B1-ASCM", 0.2000, 0.1000, 0.0055, 0.0080, 0.0110},
{"25B1-ASCM", 0.2480, 0.1240, 0.0050, 0.0080, 0.0120},
{"25B2-ASCM", 0.2500, 0.1250, 0.0060, 0.0090, 0.0120},
{"30B1-ASCM", 0.2980, 0.1490, 0.0055, 0.0080, 0.0130},
{"30B2-ASCM", 0.3000, 0.1500, 0.0065, 0.0090, 0.0130},
{"35B1-ASCM", 0.3460, 0.1740, 0.0060, 0.0090, 0.0140},
{"35B2-ASCM", 0.3500, 0.1750, 0.0070, 0.0110, 0.0140},
{"40B1-ASCM", 0.3960, 0.1990, 0.0070, 0.0110, 0.0160},
{"40B2-ASCM", 0.4000, 0.2000, 0.0080, 0.0130, 0.0160},
{"20K2-ASCM", 0.2000, 0.2000, 0.0080, 0.0120, 0.0130},
{"25K2-ASCM", 0.2500, 0.2500, 0.0090, 0.0140, 0.0160},
{"30K2-ASCM", 0.3000, 0.3000, 0.0100, 0.0150, 0.0180},
{"35K2-ASCM", 0.3500, 0.3500, 0.0120, 0.0190, 0.0200},
{"40K2-ASCM", 0.4000, 0.4000, 0.0130, 0.0210, 0.0220},
{"100SH1-ASCM", 0.9900, 0.3200, 0.0160, 0.0210, 0.0300},
{"IPE160", 0.1600, 0.0820, 0.0050, 0.0074, 0.0090},
{"IPE180", 0.1800, 0.0910, 0.0053, 0.0080, 0.0090},
{"IPE200", 0.2000, 0.1000, 0.0056, 0.0085, 0.0120},
{"IPE240", 0.2400, 0.1200, 0.0062, 0.0098, 0.0150},
{"IPE300", 0.3000, 0.1500, 0.0071, 0.0107, 0.0150},
{"IPE500", 0.5000, 0.2000, 0.0102, 0.0160, 0.0370},
{"IPE550", 0.5500, 0.2100, 0.0111, 0.0172, 0.0412},
{"HEA140", 0.1330, 0.1400, 0.0055, 0.0085, 0.0120},
{"HEA160", 0.1520, 0.1600, 0.0060, 0.0090, 0.0150},
{"HEA180", 0.1710, 0.1800, 0.0060, 0.0095, 0.0150},
{"HEA200", 0.1900, 0.2000, 0.0065, 0.0100, 0.0180},
{"HEA240", 0.2300, 0.2400, 0.0075, 0.0120, 0.0210},
{"HEA300", 0.2900, 0.3000, 0.0085, 0.0140, 0.0270},
{"HEA500", 0.4900, 0.3000, 0.0120, 0.0230, 0.0270},
{"HEB140", 0.1400, 0.1400, 0.0070, 0.0120, 0.0120},
{"HEB160", 0.1600, 0.1600, 0.0080, 0.0130, 0.0150},
{"HEB180", 0.1800, 0.1800, 0.0085, 0.0140, 0.0150},
{"HEB200", 0.2000, 0.2000, 0.0090, 0.0150, 0.0180},
{"HEB240", 0.2400, 0.2400, 0.0100, 0.0170, 0.0210},
{"HEB300", 0.3000, 0.3000, 0.0110, 0.0190, 0.0270},
}
View Source
var Rectangles = []Rectangle{
{"Plate 50x5", 0.050, 0.005},
{"Plate 60x6", 0.060, 0.006},
{"Plate 75x7", 0.075, 0.007},
{"Plate 100x10", 0.100, 0.010},
}
View Source
var UPNs = []UPN{
{"UPN120 DIN 1025-5-1994", 0.1200, 0.0550, 0.0090, 0.0070, 0.0090, 0.0045},
{"UPN140 DIN 1025-5-1994", 0.1400, 0.0600, 0.0100, 0.0070, 0.0100, 0.0050},
{"UPN160 DIN 1025-5-1994", 0.1600, 0.0650, 0.0105, 0.0075, 0.0105, 0.0055},
{"UPN180 DIN 1025-5-1994", 0.1800, 0.0700, 0.0110, 0.0080, 0.0110, 0.0055},
{"UPN200 DIN 1025-5-1994", 0.2000, 0.0750, 0.0115, 0.0085, 0.0115, 0.0060},
{"UPN240 DIN 1025-5-1994", 0.2400, 0.0850, 0.0130, 0.0095, 0.0130, 0.0065},
{"UPN300 DIN 1025-5-1994", 0.3000, 0.1000, 0.0160, 0.0100, 0.0160, 0.0080},
{"UPN400 DIN 1025-5-1994", 0.4000, 0.1100, 0.0180, 0.0140, 0.0180, 0.0090},
{"Швеллер 12У ГОСТ 8240", 0.120, 0.052, 0.0078, 0.0048, 0.0075, 0.0030},
{"Швеллер 16У ГОСТ 8240", 0.160, 0.064, 0.0084, 0.0050, 0.0085, 0.0035},
{"Швеллер 20У ГОСТ 8240", 0.200, 0.076, 0.0090, 0.0052, 0.0095, 0.0040},
{"Швеллер 24У ГОСТ 8240", 0.240, 0.090, 0.0100, 0.0056, 0.0105, 0.0040},
{"Швеллер 30У ГОСТ 8240", 0.300, 0.100, 0.0110, 0.0065, 0.0120, 0.0050},
{"Швеллер 36У ГОСТ 8240", 0.360, 0.110, 0.0126, 0.0075, 0.0140, 0.0060},
{"Швеллер 40У ГОСТ 8240", 0.400, 0.115, 0.0135, 0.0080, 0.0150, 0.0060},
}
Functions ¶
func Center3node ¶
The centroid of a triangle is the point of intersection of its medians
Types ¶
type Angle ¶
type Angle struct { Name string Width float64 //b Thk float64 //Thickness Radius1 float64 //r1 Radius2 float64 //r2 }
////////////////////////////////// ////////////////////////////////// //////// Shape: ANGLE //////////// ////////////////////////////////// //////////////////////////////////
SCHEMA --*r2 | * | *thk b * | *r1 --*********r2 |--b----|
type BendingProperty ¶
type BendingProperty struct { // https://en.wikipedia.org/wiki/First_moment_of_area // https://en.wikipedia.org/wiki/Second_moment_of_area // https://en.wikipedia.org/wiki/Section_modulus Jxx, Ymax, Wx, Rx, Sx, WxPlastic float64 // bending moments of inertia Jyy, Xmax, Wy, Ry, Sy, WyPlastic float64 // bending moments of inertia Jxy float64 // centrifugal moment of inertia Jo, Ro float64 // polar moment of inertia }
Moment inertia calculation:
dA = ax*dy Jxx = integral(y*y,dA) // bending moments of inertia Jyy = integral(x*x,dA) // bending moments of inertia Jxy = integral(x*y,dA) // centrifugal moment of inertia Jo = integral(r^2,dA) = Jx+Jy // polar moment of inertia ko = sqrt(Jo/A)
Moment inertia for move system coordinate to (dx,dy):
Jxx` = Jxx + A*dy^2 Jyy` = Jyy + A*dx^2 Jxy` = Jxy + A*dx*dy
Moment inertia for rotate system coordinate on angle O:
Ju = (Jx+Jy)/2 + (Jx-Jy)/2*cos(2*O) - Jxy*sin(2*O) Jv = (Jx+Jy)/2 - (Jx-Jy)/2*cos(2*O) + Jxy*sin(2*O) Juv = (Jx-Jy)/2*sin(2*O)+Jxy*cos(2*O) Jo = Ju+Jv = Jx+Jy
Max/min moment inertia:
tan(2*O) = -2.0*Jxy/(Jx-Jy) Jmax,min = (Jx+Jy)/2 +- sqrt(((Jx-Jy)/2)^2+Jxy^2)
Matrix of moment inertia:
[ Jxx -Jxy] [-Jxy Jyy]
First moment of area:
Sx = integral(y,dA) Sy = integral(x,dA)
func (*BendingProperty) Alpha ¶
func (b *BendingProperty) Alpha() float64
In principal axes, that are rotated by an angle θ relative to original centroidal ones x,y, the product of inertia becomes zero.
func (*BendingProperty) Calculate ¶
func (b *BendingProperty) Calculate(mesh msh.Msh)
type Geor ¶
func Get ¶
Example ¶
package main import ( "fmt" "os" "github.com/Konstantin8105/section" ) func main() { g, err := section.Get("20B1-ASCM") if err != nil { panic(err) } fmt.Fprintf(os.Stdout, "Type:%T\nDescription:%#v\n", g, g) }
Output: Type:section.Isection Description:section.Isection{Name:"20B1-ASCM", H:0.2, B:0.1, Tw:0.0055, Tf:0.008, Radius:0.011}
type Isection ¶
type Property ¶
type Property struct { Name string X, Y float64 // location of center point Alpha float64 // angle from base coordinates A float64 // area // Property at base point AtBasePoint BendingProperty // Property at center of section AtCenterPoint BendingProperty // Property at center of section with rotation // * minimal moment inertia on axe x // * maximal moment inertia on axe y OnSectionAxe BendingProperty }
func GetProperty ¶
type Tsection ¶
type Tsection struct { Name string H float64 // height Thk float64 // thickness L float64 // length Thk2 float64 // thickness }
Tsection
Thk * - * | * H * | * - ************** Thk2 |----- L ----|
Click to show internal directories.
Click to hide internal directories.