@ Afazio e @ Gilean @ DocHolly @ chiunquevuolpartecipare
Salute.
Riguardo alle sezioni tensopressoflessodeviateparzializzate...
M'era preso l'uzzolo di scrivere qualcosa in VBA.
Mi rendo conto che trattasi di cosa improba
Diciamo che per ora ho fatto riferimento a:
http://www.stru.polimi.it/home/diprisco/bacheca/strutture%20prefabbricate%201/ottimizzazione7(6.52)-(6.68)
Il codice che riguarda il generico triangolo di CA l'ho pure scritto e adesso mi metterò a vedere se "torna".
Ci sarebbe da fare la parte "ferri" e poi impostare il sistema iterativo (cosa che non so proprio come affrontare).
Io la butto qui.
Se interessa, magari, possiamo andare avanti (potrebbe esser comodo per le flange e per le pressioni di materiali non reagenti a trazione).
http://rapidshare.com/files/288622617/DiPrisco.xlt.htmlCodice:
Public Function DiPrisco(uk As Double, vk As Double, _
ui As Double, _
vi As Double, _
uj As Double, _
vj As Double, _
Optional COSA As String = "Ak") As Double
' 20091004
' Di Prisco, Mauri Scola Cap 6 Ottimizzazione 7
' cfr. http://www.stru.polimi.it/home/diprisco/bacheca/strutture%20prefabbricate%201/ottimizzazione7
' da (6.52) a (6.67)
' _______________
Dim u(3) As Double
Dim v(3) As Double
Dim Ak As Double
Dim Suk As Double
Dim Svk As Double
Dim uGk As Double
Dim vGk As Double
Dim Iuk As Double
Dim Iu1 As Double
Dim Iu2 As Double
Dim Iu3 As Double
Dim Ivk As Double
Dim Iv1 As Double
Dim Iv2 As Double
Dim Iv3 As Double
Dim Iuvk As Double
Dim Iuv1 As Double
Dim Iuv2 As Double
Dim Iuv3 As Double
u(1) = uk
u(2) = ui
u(3) = uj
v(1) = vk
v(2) = vi
v(3) = vj
Ak = ((v(1) + v(2)) * (u(2) - u(1)) + (v(2) + v(3)) * (u(3) - u(2)) + (v(3) + v(1)) * (u(1) - u(3))) / 2
uGk = (u(2) + u(3) + u(1)) / 3
vGk = (v(2) + v(3) + v(1)) / 3
Suk = Ak * vGk
Svk = Ak * uGk
Iu1 = 0
Iu1 = Iu1 + (-1 / 12) * v(2) ^ 3 * u(1)
Iu1 = Iu1 + (-1 / 4) * v(2) ^ 2 * u(2)
Iu1 = Iu1 + (1 / 12) * v(2) ^ 2 * v(1) * u(2)
Iu1 = Iu1 + (-1 / 12) * v(2) ^ 2 * u(1) * v(1)
Iu1 = Iu1 + (1 / 12) * v(2) * v(1) ^ 2 * u(2)
Iu1 = Iu1 + (1 / 12) * v(2) * u(1) * v(1) ^ 2
Iu1 = Iu1 + (1 / 4) * u(1) * v(1) ^ 3
Iu1 = Iu1 + (1 / 12) * v(1) ^ 3 * u(2)
Iu2 = 0
Iu2 = Iu2 + (1 / 4) * v(2) ^ 3 * u(2)
Iu2 = Iu2 + (1 / 12) * v(2) ^ 3 * u(3)
Iu2 = Iu2 + (-1 / 12) * v(2) ^ 2 * u(2) * v(3)
Iu2 = Iu2 + (1 * 12) * v(2) ^ 2 * v(3) * u(3)
Iu2 = Iu2 + (-1 / 12) * v(2) * u(2) * v(3) ^ 3
Iu2 = Iu2 + (1 / 12) * v(2) * v(3) ^ 3 * u(3)
Iu2 = Iu2 + (-1 / 4) * u(3) * v(3) ^ 3
Iu2 = Iu2 + (-1 / 12) * u(2) * v(3) ^ 3
Iu3 = 0
Iu3 = Iu3 + (-1 / 12) * v(1) ^ 3 * u(3)
Iu3 = Iu3 + (-1 / 4) * u(1) * v(1) ^ 3
Iu3 = Iu3 + (1 / 12) * v(1) ^ 2 * v(3) * u(1)
Iu3 = Iu3 + (-1 / 12) * v(1) ^ 2 * v(3) * u(3)
Iu3 = Iu3 + (1 / 12) * v(1) * v(3) ^ 2 * u(1)
Iu3 = Iu3 + (-1 / 12) * v(1) * v(3) ^ 2 * u(3)
Iu3 = Iu3 + (1 / 4) * u(3) * v(3) ^ 3
Iu3 = Iu3 + (1 / 12) * v(3) ^ 3 * u(1)
Iuk = Iu1 + Iu2 + Iu3
Iv1 = 0
Iv1 = Iv1 + (1 / 12) * u(2) ^ 3 * v(1)
Iv1 = Iv1 + (1 / 4) * u(2) ^ 3 * v(2)
Iv1 = Iv1 + (-1 / 12) * u(2) ^ 2 * u(1) * v(2)
Iv1 = Iv1 + (1 / 12) * u(2) ^ 2 * u(1) * v(1)
Iv1 = Iv1 + (1 / 12) * u(2) * u(1) ^ 2 * v(2)
Iv1 = Iv1 + (1 / 12) * u(2) * u(1) ^ 2 * v(1)
Iv1 = Iv1 + (-1 / 4) * v(1) * u(1) ^ 3
Iv1 = Iv1 + (-1 / 12) * u(1) ^ 3 * v(2)
Iv2 = 0
Iv2 = Iv2 + (-1 / 4) * u(2) ^ 3 * v(2)
Iv2 = Iv2 + (-1 / 12) * u(2) ^ 3 * v(3)
Iv2 = Iv2 + (1 / 12) * u(2) ^ 2 * v(2) * u(3)
Iv2 = Iv2 + (-1 / 12) * u(2) ^ 2 * u(3) * v(3)
Iv2 = Iv2 + (1 / 12) * u(2) * v(2) * u(3) ^ 2
Iv2 = Iv2 + (1 / 12) * u(2) * u(3) ^ 2 * v(3)
Iv2 = Iv2 + (1 / 4) * v(3) * u(3) ^ 3
Iv2 = Iv2 + (1 / 12) * v(2) * u(3) ^ 3
Iv3 = 0
Iv3 = Iv3 + (1 / 12) * u(1) ^ 3 * v(3)
Iv3 = Iv3 + (1 / 4) * v(1) * u(1) ^ 3
Iv3 = Iv3 + (-1 / 12) * u(1) ^ 2 * u(2) * v(1)
Iv3 = Iv3 + (1 / 12) * u(1) ^ 2 * u(3) * v(3)
Iv3 = Iv3 + (-1 / 12) * u(1) * u(3) ^ 2 * v(1)
Iv3 = Iv3 + (1 / 12) * u(1) * u(3) ^ 2 * v(3)
Iv3 = Iv3 + (-1 / 4) * v(3) * u(3) ^ 3
Iv3 = Iv3 + (-1 / 12) * u(3) ^ 3 * v(1)
Ivk = Iv1 + Iv2 + Iv3
Iuv1 = 0
Iuv1 = Iuv1 + (-1 / 24) * u(1) ^ 2 * v(2) ^ 2
Iuv1 = Iuv1 + (-1 / 8) * u(1) ^ 2 * v(1) ^ 2
Iuv1 = Iuv1 + (-1 / 12) * u(1) ^ 2 * v(2) * v(1)
Iuv1 = Iuv1 + (1 / 12) * u(1) * v(1) ^ 2 * u(2)
Iuv1 = Iuv1 + (-1 / 12) * u(1) * u(2) * v(2) ^ 2
Iuv1 = Iuv1 + (1 / 24) * v(1) ^ 2 * u(2) ^ 2
Iuv1 = Iuv1 + (1 / 8) * v(2) ^ 2 * u(2) ^ 2
Iuv1 = Iuv1 + (1 / 12) * v(1) * u(2) ^ 2 * v(2)
Iuv2 = 0
Iuv2 = Iuv2 + (-1 / 24) * u(2) ^ 2 * v(3) ^ 3
Iuv1 = Iuv2 + (-1 / 8) * u(2) ^ 2 * v(2) ^ 2
Iuv2 = Iuv2 + (-1 / 12) * u(2) ^ 2 * v(3) * v(2)
Iuv2 = Iuv2 + (1 / 12) * u(2) * v(2) ^ 2 * u(3)
Iuv2 = Iuv2 + (-1 / 12) * u(2) * u(3) * v(3) ^ 2
Iuv2 = Iuv2 + (1 / 24) * v(2) ^ 2 * u(3) ^ 2
Iuv2 = Iuv2 + (1 / 8) * v(3) ^ 2 * u(3) ^ 2
Iuv2 = Iuv2 + (1 / 12) * v(2) * u(3) ^ 2 * v(3)
Iuv3 = 0
Iuv3 = Iuv3 + (1 / 8) * u(1) ^ 2 * v(1) ^ 2
Iuv3 = Iuv3 + (1 / 24) * v(3) ^ 2 * u(1) ^ 2
Iuv3 = Iuv3 + (1 / 12) * u(1) ^ 2 * v(1) * v(3)
Iuv3 = Iuv3 + (-1 / 12) * u(1) * u(3) * v(1) ^ 2
Iuv3 = Iuv3 + (1 / 12) * u(1) * u(3) * v(3) ^ 2
Iuv3 = Iuv3 + (-1 / 24) * u(3) ^ 2 * v(1) ^ 2
Iuv3 = Iuv3 + (-1 / 8) * v(2) ^ 2 * u(2) ^ 2
Iuv3 = Iuv3 + (-1 / 12) * u(3) ^ 2 * v(1) * v(3)
Iuvk = Iuv1 + Iuv2 + Iuv3
Select Case COSA
Case "AK"
DiPrisco = Ak
Case "SUK"
DiPrisco = Suk
Case "SVK"
DiPrisco = Svk
Case "UGK"
DiPrisco = uGk
Case "VGK"
DiPrisco = vGk
Case "IUK"
DiPrisco = Iuk
Case "IVK"
DiPrisco = Ivk
Case "IUVK"
DiPrisco = Iuvk
End Select
End Function