Open Konstantin8105 opened 3 years ago
func TestNonlinear(t *testing.T) {
var (
// input data
H = 5.0
L = 5.0
E = 2.05e5
A = 1e-4
J = 1.0
P = 5.0
m = hd.Model{
Points: [][2]float64{
{0, 0},
{L*1.0/4.0 , H*1.0/4.0},
{L*2.0/4.0 , H*2.0/4.0},
{L*3.0/4.0 , H*3.0/4.0},
{L , H},
},
Beams: []hd.BeamProp{
{N: [2]int{0, 1}, A: A, J: J, E: E},
{N: [2]int{1, 2}, A: A, J: J, E: E},
{N: [2]int{2, 3}, A: A, J: J, E: E},
{N: [2]int{3, 4}, A: A, J: J, E: E},
},
Supports: [][3]bool{
{true, true, false},
{false, false, false},
{false, false, false},
{false, false, false},
{true, false, false},
},
}
lcs = []hd.LoadCase{
{
LoadNodes: []hd.LoadNode{
{N: 4, Forces: [3]float64{0, -P, 0}},
},
AmountLinearBuckling: 3,
},
}
)
var b bytes.Buffer
if err := hd.Run(&b, &m, lcs, nil); err != nil {
fmt.Fprintf(os.Stdout, "Cannot calculate : %v", err)
return
}
fmt.Println(b.String())
for i := range lcs {
for j := range lcs[i].LinearBucklingResult {
pij := lcs[i].LinearBucklingResult[j].Factor*P
fmt.Println(i, j, " Load ", pij)
}
}
// data := []float64{
// 0.50 * in, 240000,
// 1.00 * in, 0.0,
// 1.50 * in, -240000,
// 2.00 * in, 0.0,
// 2.25 * in, 400000,
// }
// fmt.Println(data)
}
Arc method А. А. ЛУКАШЕВИЧ НЕЛИНЕЙНЫЕ ЗАДАЧИ СТРОИТЕЛЬНОЙ МЕХАНИКИ