Documentation ¶
Index ¶
- Constants
- func Cylinder(out io.Writer, zone Zone, wr Region, ld LogDecriment, Δ, d, h float64, ...) (WsZ func(z float64) float64)
- func DimlessPeriodLimit(ld LogDecriment) float64
- func EffectiveHeigth(z, d, h float64, isTower bool) (ze float64)
- func FactorKz(zone Zone, ze float64) (kz float64)
- func FactorNu(ρ, χ float64) (ν float64)
- func FactorXiHz(wr Region, zone Zone, ld LogDecriment, isBuilding bool, z float64, ...) (ξ float64)
- func FactorZeta(zone Zone, ze float64) (ζ float64)
- func Frame(out io.Writer, zone Zone, wr Region, ld LogDecriment, h float64, hzs []float64) (WsZ func(z float64) float64)
- func GraphB14(d, Δ, Re float64) (cx float64)
- func GraphB17(d, Δ, Re float64) (Cx float64)
- func GraphB23(λe, ϕ float64) (Kλ float64)
- func NaturalFrequencyLimit(zone Zone, wr Region, ld LogDecriment, z float64) (Flim float64)
- func NuPlates(b, h, a float64, pl Plate) (ρ, χ float64)
- func Rectangle(zone Zone, wr Region, ld LogDecriment, b, d, h float64, zo float64, ...) (WsZ [SideSize]func(z float64) float64)
- func Sphere(zone Zone, wr Region, zg, d, Δ float64) (cx, cz, Re, ν float64)
- func SplitHeigth(zo, h float64) (zs []float64)
- type LogDecriment
- type Plate
- type RectangleSide
- type Region
- type Struhale
- type Zone
Examples ¶
Constants ¶
const ( RegionIa Region = 170.0 RegionI = 230.0 RegionII = 300.0 RegionIII = 380.0 RegionIV = 480.0 RegionV = 600.0 RegionVI = 730.0 RegionVII = 850.0 )
Unit: Pa
const ( TableB10Col1 float64 = 0.5 TableB10Col2 float64 = 1.0 TableB10Col3 float64 = 2.0 TableB10Col4 float64 = 1e100 // Infinity : math.Inf(1) )
Variables ¶
This section is empty.
Functions ¶
func Cylinder ¶
func Cylinder(out io.Writer, zone Zone, wr Region, ld LogDecriment, Δ, d, h float64, zo float64, hzs []float64) ( WsZ func(z float64) float64, )
Cylinder return Wsum dependency of height. Acceptable for vertical and horizontal duct.
Example ¶
Wsum := Cylinder(os.Stdout, ZoneA, RegionII, LogDecriment15, 0.200, 4.710, 10.100, 2.800, []float64{3.091, 3.414, 3.719}) for _, z := range []float64{2.8, 5, 10} { fmt.Fprintf(os.Stdout, "Wsum[z = %6.3f m] = %6.1f Pa\n", z, Wsum(z)) }
Output: Sketch: |<--- d ----->| | | ***************------- * * | Wind * * | -----> * * | * * | * * | * * | * * h ***************--- | | | zo | | | ---------- ground ------------- Wind zone: A Wind region: II with value = 300.0 Pa Wind log decrement: δ = 0.15 Natural frequency : [3.091 3.414 3.719] Dimensions: b 4.710 m d 4.710 m zo 2.800 m h 10.100 m Re = 86.160*10^5 for ze=0.8*h = 8.640 Cx∞ = 1.100 Elongation: λ 1.550 λe 3.100 ϕ 1.000 Kλ 0.649 Cx = 0.714 The spatial correlation coefficient of pressure pulsations: ρ 4.710 χ 10.100 ν 0.873 | z ze Kz ζ ξ | Wm Wp Wsum | | m m | Pa Pa Pa | | | | | 2.800 2.800 0.750 0.850 1.000 | 160.7 119.2 279.8 | | 5.000 5.000 0.750 0.850 1.000 | 160.7 119.2 279.8 | | 10.000 10.000 1.000 0.760 1.000 | 214.2 142.1 356.3 | | 10.100 10.100 1.003 0.759 1.000 | 214.9 142.3 357.1 | Ws on top |-----------> |---------> | / | | |---------> Ws average |---------> | / | | Ws on zero |-------> |---------> --------------- ground ------------------ | side | width | Center of Ws | Ws average | | front | 4.710 | 6.623 | +307.1 | Wsum[z = 2.800 m] = 279.8 Pa Wsum[z = 5.000 m] = 279.8 Pa Wsum[z = 10.000 m] = 356.3 Pa
func DimlessPeriodLimit ¶
func DimlessPeriodLimit(ld LogDecriment) float64
Limit dimensionless period - by table 11.5
func EffectiveHeigth ¶
EffectiveHeigth by par 11.1.5
z - height from ground / высота от поверхности земли d - dimension of building (perpendicular) / размер здания (без учета его стилобатной части) в направлении, перпендикулярном расчетному направлению ветра (поперечный размер). h - heigth of building / высота здания.
func FactorKz ¶
FactorKz by table 11.2 and formula 11.4
Example ¶
var buf bytes.Buffer w := tabwriter.NewWriter(&buf, 0, 0, 1, ' ', tabwriter.TabIndent) fmt.Fprintf(w, "factor kz\n") fmt.Fprintf(w, "ze\tA\tB\tC\n") for _, ze := range []float64{5, 10, 20, 40, 60, 80, 100, 150, 200, 250, 300} { fmt.Fprintf(w, "%.0f", ze) for _, zone := range []Zone{ZoneA, ZoneB, ZoneC} { kz := FactorKz(zone, ze) fmt.Fprintf(w, "\t%.2f", kz) } fmt.Fprintf(w, "\n") } w.Flush() fmt.Fprintf(os.Stdout, "%s", buf.String())
Output: factor kz ze A B C 5 0.75 0.50 0.40 10 1.00 0.65 0.40 20 1.23 0.86 0.57 40 1.52 1.13 0.80 60 1.71 1.33 0.98 80 1.87 1.49 1.13 100 2.00 1.63 1.26 150 2.25 1.92 1.55 200 2.46 2.15 1.79 250 2.63 2.36 2.00 300 2.77 2.53 2.19
func FactorNu ¶
FactorNu Коэффициент пространственной корреляции пульсаций давления by table 11.6
Example ¶
var buf bytes.Buffer w := tabwriter.NewWriter(&buf, 0, 0, 1, ' ', tabwriter.TabIndent) fmt.Fprintf(w, "factor Nu\n") for _, ro := range []float64{0.1, 5, 10, 20, 40, 80, 160} { fmt.Fprintf(w, "| %6.2f |", ro) for _, xi := range []float64{5, 10, 20, 40, 80, 160, 350} { v := FactorNu(ro, xi) fmt.Fprintf(w, "\t%.2f", v) } fmt.Fprintf(w, "\n") } fmt.Fprintf(w, "factor Nu with middle points\n") for _, ro := range []float64{0.1, 3, 5, 7, 10, 15, 20, 25, 40, 60, 80, 100, 160} { fmt.Fprintf(w, "| %6.2f |", ro) for _, xi := range []float64{5, 7, 10, 15, 20, 30, 40, 60, 80, 120, 160, 300, 350} { v := FactorNu(ro, xi) fmt.Fprintf(w, "\t%.2f", v) } fmt.Fprintf(w, "\n") } w.Flush() fmt.Fprintf(os.Stdout, "%s", buf.String())
Output: factor Nu | 0.10 | 0.95 0.92 0.88 0.83 0.76 0.67 0.56 | 5.00 | 0.89 0.87 0.84 0.80 0.73 0.65 0.54 | 10.00 | 0.85 0.84 0.81 0.77 0.71 0.64 0.53 | 20.00 | 0.80 0.78 0.76 0.73 0.68 0.61 0.51 | 40.00 | 0.72 0.72 0.70 0.67 0.63 0.57 0.48 | 80.00 | 0.63 0.63 0.61 0.59 0.56 0.51 0.44 | 160.00 | 0.53 0.53 0.52 0.50 0.47 0.44 0.38 factor Nu with middle points | 0.10 | 0.95 0.94 0.92 0.90 0.88 0.85 0.83 0.79 0.76 0.72 0.67 0.59 0.56 | 3.00 | 0.91 0.90 0.89 0.87 0.86 0.83 0.81 0.78 0.74 0.70 0.66 0.58 0.55 | 5.00 | 0.89 0.88 0.87 0.85 0.84 0.82 0.80 0.77 0.73 0.69 0.65 0.57 0.54 | 7.00 | 0.87 0.87 0.86 0.84 0.83 0.81 0.79 0.76 0.72 0.68 0.65 0.56 0.54 | 10.00 | 0.85 0.85 0.84 0.82 0.81 0.79 0.77 0.74 0.71 0.68 0.64 0.56 0.53 | 15.00 | 0.82 0.82 0.81 0.80 0.79 0.77 0.75 0.72 0.70 0.66 0.62 0.55 0.52 | 20.00 | 0.80 0.79 0.78 0.77 0.76 0.74 0.73 0.71 0.68 0.65 0.61 0.54 0.51 | 25.00 | 0.78 0.77 0.77 0.76 0.74 0.73 0.71 0.69 0.67 0.63 0.60 0.53 0.50 | 40.00 | 0.72 0.72 0.72 0.71 0.70 0.69 0.67 0.65 0.63 0.60 0.57 0.50 0.48 | 60.00 | 0.68 0.68 0.68 0.67 0.66 0.64 0.63 0.61 0.59 0.57 0.54 0.48 0.46 | 80.00 | 0.63 0.63 0.63 0.62 0.61 0.60 0.59 0.57 0.56 0.54 0.51 0.46 0.44 | 100.00 | 0.60 0.60 0.60 0.60 0.59 0.58 0.57 0.55 0.54 0.52 0.49 0.44 0.42 | 160.00 | 0.53 0.53 0.53 0.53 0.52 0.51 0.50 0.48 0.47 0.45 0.44 0.40 0.38
func FactorXiHz ¶
func FactorXiHz(wr Region, zone Zone, ld LogDecriment, isBuilding bool, z float64, hzs []float64) (ξ float64)
FactorXiHz - коэффициент динамичности by pic 11.1 c учетом динамической реации по s собственным формам
isBuilding = true - для зданий и сооружений zэк = 0.8*h isBuilding = false - для конструктивных элементов zэк — высота z, на которой они расположены hzs - список частот собственных колебаний
func FactorZeta ¶
FactorZeta by table 11.4 and formula 11.6
Example ¶
var buf bytes.Buffer w := tabwriter.NewWriter(&buf, 0, 0, 1, ' ', tabwriter.TabIndent) fmt.Fprintf(w, "factor zeta\n") fmt.Fprintf(w, "ze\tA\tB\tC\n") for _, ze := range []float64{5, 10, 20, 40, 60, 80, 100, 150, 200, 250, 300} { fmt.Fprintf(w, "%.0f", ze) for _, zone := range []Zone{ZoneA, ZoneB, ZoneC} { zeta := FactorZeta(zone, ze) fmt.Fprintf(w, "\t%.2f", zeta) } fmt.Fprintf(w, "\n") } w.Flush() fmt.Fprintf(os.Stdout, "%s", buf.String())
Output: factor zeta ze A B C 5 0.85 1.22 1.78 10 0.76 1.06 1.78 20 0.68 0.92 1.50 40 0.62 0.80 1.26 60 0.58 0.74 1.14 80 0.56 0.70 1.06 100 0.54 0.67 1.00 150 0.51 0.62 0.90 200 0.48 0.58 0.84 250 0.47 0.56 0.80 300 0.46 0.54 0.76
func Frame ¶
func Frame(out io.Writer, zone Zone, wr Region, ld LogDecriment, h float64, hzs []float64) ( WsZ func(z float64) float64, )
Frame return Wsum dependency of height
Example ¶
Wsum := Frame(os.Stdout, ZoneA, RegionII, LogDecriment15, 18.965, []float64{1.393}) for _, z := range []float64{2.8, 5, 10} { fmt.Fprintf(os.Stdout, "Wsum[z = %6.3f m] = %6.1f Pa\n", z, Wsum(z)) }
Output: Sketch: *------- * | Wind * | -----> * | * | * | * | * h * | * | * | * | ---- ground ---- Wind zone: A Wind region: II with value = 300.0 Pa Wind log decrement: δ = 0.15 Natural frequency : [1.393] Dimensions: h 18.965 m Cx = 1.400 The spatial correlation coefficient of pressure pulsations: ρ 0.000 χ 18.965 ν 0.884 | z ze Kz ζ ξ | Wm Wp Wsum | | m m | Pa Pa Pa | | | | | 0.000 0.000 0.750 0.850 1.526 | 315.0 361.2 676.2 | | 5.000 5.000 0.750 0.850 1.526 | 315.0 361.2 676.2 | | 10.000 10.000 1.000 0.760 1.526 | 420.0 430.7 850.7 | | 15.000 15.000 1.129 0.715 1.526 | 474.3 457.7 932.0 | | 18.965 18.965 1.212 0.690 1.526 | 508.9 474.1 983.0 | Wsum[z = 2.800 m] = 676.2 Pa Wsum[z = 5.000 m] = 676.2 Pa Wsum[z = 10.000 m] = 850.7 Pa
func GraphB14 ¶
GraphB14 Реализованый алгоритм упрощенный, но в худшую сторону. Аэродинамические коэффициенты лобового сопротивления сх сферы
Example ¶
var buf bytes.Buffer w := tabwriter.NewWriter(&buf, 0, 0, 1, ' ', tabwriter.TabIndent) fmt.Fprintf(w, "Graph B14\n") Res := []float64{1e5, 3e5, 4e5, 5e5, 6e5, 1e6, 1e7, 1e8} fmt.Fprintf(w, "| %7s |", "-") for _, re := range Res { fmt.Fprintf(w, "\t%6.0e", re) } fmt.Fprintf(w, "\n") for _, delta := range []float64{1e-6, 1e-5, 5e-5, 10e-5, 12e-5, 50e-5, 100e-5, 1e-2} { fmt.Fprintf(w, "| %6.1e |", delta) for _, re := range Res { d := 1.4 cx := GraphB14(d, delta*d, re) fmt.Fprintf(w, "\t%6.4f", cx) } fmt.Fprintf(w, "\n") } w.Flush() fmt.Fprintf(os.Stdout, "%s", buf.String())
Output: Graph B14 | - | 1e+05 3e+05 4e+05 5e+05 6e+05 1e+06 1e+07 1e+08 | 1.0e-06 | 0.6000 0.6000 0.6000 0.6000 0.2000 0.2000 0.2000 0.2000 | 1.0e-05 | 0.6000 0.6000 0.6000 0.6000 0.2000 0.2000 0.2000 0.2000 | 5.0e-05 | 0.6000 0.6000 0.6000 0.6000 0.2690 0.2690 0.2690 0.2690 | 1.0e-04 | 0.6000 0.6000 0.6000 0.6000 0.3000 0.3000 0.3000 0.3000 | 1.2e-04 | 0.6000 0.6000 0.6000 0.6000 0.3070 0.3070 0.3070 0.3070 | 5.0e-04 | 0.6000 0.6000 0.6000 0.6000 0.3690 0.3690 0.3690 0.3690 | 1.0e-03 | 0.6000 0.6000 0.6000 0.6000 0.4000 0.4000 0.4000 0.4000 | 1.0e-02 | 0.6000 0.6000 0.6000 0.6000 0.4000 0.4000 0.4000 0.4000
func GraphB17 ¶
GraphB17 Значение коэффициента Cx
Example ¶
var buf bytes.Buffer w := tabwriter.NewWriter(&buf, 0, 0, 1, ' ', tabwriter.TabIndent) fmt.Fprintf(w, "Graph B17\n") Res := []float64{1e4, 1e5, 2e5, 4e5, 6e5, 8e5, 1e6, 5e6, 1e7, 5e7, 1e8} fmt.Fprintf(w, "| %7s |", "-") for _, re := range Res { fmt.Fprintf(w, "\t%6.0e", re) } fmt.Fprintf(w, "\n") for _, delta := range []float64{1e-1, 1e-2, 1e-3, 1e-4, 1e-5, 1e-6} { fmt.Fprintf(w, "| %6.1e |", delta) for _, re := range Res { d := 1.4 cx := GraphB17(d, delta*d, re) fmt.Fprintf(w, "\t%6.4f", cx) } fmt.Fprintf(w, "\n") } w.Flush() fmt.Fprintf(os.Stdout, "%s", buf.String())
Output: Graph B17 | - | 1e+04 1e+05 2e+05 4e+05 6e+05 8e+05 1e+06 5e+06 1e+07 5e+07 1e+08 | 1.0e-01 | 1.2000 1.1000 1.1000 1.1000 1.1000 1.1000 1.1000 1.1000 1.1000 1.1000 1.1000 | 1.0e-02 | 1.2000 1.2000 0.9484 0.9891 1.0099 1.0232 1.0328 1.0819 1.0922 1.0906 1.0790 | 1.0e-03 | 1.2000 1.2000 0.7067 0.7721 0.8063 0.8287 0.8450 0.9360 0.9605 0.9837 0.9790 | 1.0e-04 | 1.2000 1.2000 0.5734 0.5551 0.6027 0.6342 0.6573 0.7900 0.8289 0.8767 0.8790 | 1.0e-05 | 1.2000 1.2000 0.5734 0.4000 0.4000 0.4396 0.4695 0.6441 0.6973 0.7698 0.7790 | 1.0e-06 | 1.2000 1.2000 0.5734 0.4000 0.4000 0.4396 0.4695 0.6441 0.6973 0.7698 0.7790
func GraphB23 ¶
GraphB23 - В.1.15 Учет относительного удлинения
Example ¶
var buf bytes.Buffer w := tabwriter.NewWriter(&buf, 0, 0, 1, ' ', tabwriter.TabIndent) fmt.Fprintf(w, "Graph B23\n") λes := []float64{1, 5, 10, 50, 200, 500} ϕs := []float64{0.1, 0.5, 0.9, 0.95, 1.0} fmt.Fprintf(w, "| %7s |", "-") for _, λe := range λes { fmt.Fprintf(w, "\t%6.0e", λe) } fmt.Fprintf(w, "\n") for _, ϕ := range ϕs { fmt.Fprintf(w, "| %6.1e |", ϕ) for _, λe := range λes { Kλ := GraphB23(λe, ϕ) fmt.Fprintf(w, "\t%6.4f", Kλ) } fmt.Fprintf(w, "\n") } w.Flush() fmt.Fprintf(os.Stdout, "%s", buf.String())
Output: Graph B23 | - | 1e+00 5e+00 1e+01 5e+01 2e+02 5e+02 | 1.0e-01 | 0.9800 0.9870 0.9900 0.9900 1.0000 1.0000 | 5.0e-01 | 0.8800 0.9010 0.9100 0.9589 1.0000 1.0000 | 9.0e-01 | 0.8200 0.8549 0.8700 0.9399 1.0000 1.0000 | 9.5e-01 | 0.7300 0.7789 0.8000 0.9118 1.0000 1.0000 | 1.0e+00 | 0.6000 0.6699 0.7000 0.8747 1.0000 1.0000
func NaturalFrequencyLimit ¶
func NaturalFrequencyLimit(zone Zone, wr Region, ld LogDecriment, z float64) (Flim float64)
NaturalFrequencyLimit by formula 11.9a
func NuPlates ¶
NuPlates calculate dimention values. see table 11.7
Example ¶
var buf bytes.Buffer w := tabwriter.NewWriter(&buf, 0, 0, 1, ' ', tabwriter.TabIndent) fmt.Fprintf(w, "Table 11.7\n") fmt.Fprintf(w, "Plate\tρ\tχ\n") b, h, a := 1.0, 2.0, 3.0 for _, pl := range []Plate{ZOY, ZOX, XOY} { ρ, χ := NuPlates(b, h, a, pl) fmt.Fprintf(w, "%s\t%.2f\t%.2f\n", pl, ρ, χ) } w.Flush() fmt.Fprintf(os.Stdout, "%s", buf.String())
Output: Table 11.7 Plate ρ χ ZOY 1.00 2.00 ZOX 1.20 2.00 XOY 1.00 3.00
func Rectangle ¶
func Rectangle(zone Zone, wr Region, ld LogDecriment, b, d, h float64, zo float64, hzs []float64) ( WsZ [SideSize]func(z float64) float64, )
Rectangle return Wsum dependency of height, see part B.1.2
Example ¶
Wsum := Rectangle(ZoneA, RegionII, LogDecriment15, 5.38, 7.32, 18.965, 0.000, []float64{1.393}) for _, z := range []float64{10, 15} { fmt.Fprintf(os.Stdout, "z = %6.3f m\n", z) for _, side := range ListRectangleSides() { fmt.Fprintf(os.Stdout, "Wsum[%s] = %6.1f Pa\n", side, Wsum[side](z)) } fmt.Fprintf(os.Stdout, "Summary D and E:\n") fmt.Fprintf(os.Stdout, "Wsum[z = %6.3f m] = %6.1f Pa\n", z, math.Abs(Wsum[SideD](z))+math.Abs(Wsum[SideE](z))) fmt.Fprintf(os.Stdout, "\n") }
Output: Sketch: |<------- d --------->| | | ***********************------ * * | Wind * * | -----> * * | D * * E b * * | * * | * * | ***********************------ | A | B | C | Wind zone: A Wind region: II with value = 300.0 Pa Wind log decrement: δ = 0.15 Natural frequency : [1.393] Dimensions: b 5.380 m d 7.320 m zo 0.000 m h 18.965 m | side z ze Kz ζ ξ | cx ρ χ ν Wm Wp Wsum | | | Pa Pa Pa | | | | | A 0.000 7.320 0.866 0.808 1.526 | -1.0 2.928 18.965 0.860 -259.8 -275.7 -535.5 | | A 5.000 7.320 0.866 0.808 1.526 | -1.0 2.928 18.965 0.860 -259.8 -275.7 -535.5 | | A 10.000 10.000 1.000 0.760 1.526 | -1.0 2.928 18.965 0.860 -300.0 -299.4 -599.4 | | A 15.000 18.965 1.212 0.690 1.526 | -1.0 2.928 18.965 0.860 -363.5 -329.5 -693.0 | | A 18.965 18.965 1.212 0.690 1.526 | -1.0 2.928 18.965 0.860 -363.5 -329.5 -693.0 | | | | | B 0.000 7.320 0.866 0.808 1.526 | -0.8 2.928 18.965 0.860 -207.8 -220.6 -428.4 | | B 5.000 7.320 0.866 0.808 1.526 | -0.8 2.928 18.965 0.860 -207.8 -220.6 -428.4 | | B 10.000 10.000 1.000 0.760 1.526 | -0.8 2.928 18.965 0.860 -240.0 -239.5 -479.5 | | B 15.000 18.965 1.212 0.690 1.526 | -0.8 2.928 18.965 0.860 -290.8 -263.6 -554.4 | | B 18.965 18.965 1.212 0.690 1.526 | -0.8 2.928 18.965 0.860 -290.8 -263.6 -554.4 | | | | | C 0.000 7.320 0.866 0.808 1.526 | -0.5 2.928 18.965 0.860 -129.9 -137.9 -267.8 | | C 5.000 7.320 0.866 0.808 1.526 | -0.5 2.928 18.965 0.860 -129.9 -137.9 -267.8 | | C 10.000 10.000 1.000 0.760 1.526 | -0.5 2.928 18.965 0.860 -150.0 -149.7 -299.7 | | C 15.000 18.965 1.212 0.690 1.526 | -0.5 2.928 18.965 0.860 -181.8 -164.8 -346.5 | | C 18.965 18.965 1.212 0.690 1.526 | -0.5 2.928 18.965 0.860 -181.8 -164.8 -346.5 | | | | | D 0.000 5.380 0.769 0.843 1.526 | 0.8 5.380 18.965 0.841 184.6 199.7 384.2 | | D 5.000 5.380 0.769 0.843 1.526 | 0.8 5.380 18.965 0.841 184.6 199.7 384.2 | | D 10.000 10.000 1.000 0.760 1.526 | 0.8 5.380 18.965 0.841 240.0 234.0 474.0 | | D 15.000 18.965 1.212 0.690 1.526 | 0.8 5.380 18.965 0.841 290.8 257.6 548.4 | | D 18.965 18.965 1.212 0.690 1.526 | 0.8 5.380 18.965 0.841 290.8 257.6 548.4 | | | | | E 0.000 5.380 0.769 0.843 1.526 | -0.5 5.380 18.965 0.841 -115.4 -124.8 -240.1 | | E 5.000 5.380 0.769 0.843 1.526 | -0.5 5.380 18.965 0.841 -115.4 -124.8 -240.1 | | E 10.000 10.000 1.000 0.760 1.526 | -0.5 5.380 18.965 0.841 -150.0 -146.3 -296.3 | | E 15.000 18.965 1.212 0.690 1.526 | -0.5 5.380 18.965 0.841 -181.8 -161.0 -342.8 | | E 18.965 18.965 1.212 0.690 1.526 | -0.5 5.380 18.965 0.841 -181.8 -161.0 -342.8 | Ws on top |-----------> |---------> | / | | |---------> Ws average |---------> | / | | Ws on zero |-------> |---------> --------------- ground ------------------ | side | width | Center of Ws | Ws average | | A | 1.076 | 10.036 | -606.1 | | B | 4.304 | 10.036 | -484.8 | | C | 1.940 | 10.036 | -303.0 | | D | 5.380 | 10.244 | +463.9 | | E | 5.380 | 10.244 | -289.9 | z = 10.000 m Wsum[Side of rectangle: A] = -599.4 Pa Wsum[Side of rectangle: B] = -479.5 Pa Wsum[Side of rectangle: C] = -299.7 Pa Wsum[Side of rectangle: D] = 474.0 Pa Wsum[Side of rectangle: E] = -296.3 Pa Summary D and E: Wsum[z = 10.000 m] = 770.3 Pa z = 15.000 m Wsum[Side of rectangle: A] = -693.0 Pa Wsum[Side of rectangle: B] = -554.4 Pa Wsum[Side of rectangle: C] = -346.5 Pa Wsum[Side of rectangle: D] = 548.4 Pa Wsum[Side of rectangle: E] = -342.8 Pa Summary D and E: Wsum[z = 15.000 m] = 891.2 Pa
func SplitHeigth ¶
Types ¶
type LogDecriment ¶
type LogDecriment float64
LogDecriment - Значение логарифмического декремента колебаний
const ( // LogDecriment15 для стальных сооружений, футерованных дымовых труб, // аппаратов колонного типа, в том числе на железобетонных постаментах LogDecriment15 LogDecriment = 0.15 // LogDecriment22 для стекла, а также смешанных сооружений, имеющих // одновременно стальные и железобетонные несущие конструкции LogDecriment22 LogDecriment = 0.22 // LogDecriment30 для железобетонных и каменных сооружений, а также // для зданий со стальным каркасом при наличии ограждающих конструкций LogDecriment30 LogDecriment = 0.30 )
func ListLogDecriment ¶
func ListLogDecriment() []LogDecriment
func (LogDecriment) String ¶
func (ld LogDecriment) String() string
String implementation of Stringer interface
type RectangleSide ¶
type RectangleSide int
const ( SideA RectangleSide = iota SideB SideC SideD SideE SideSize // size of sides for rectangle building )
func ListRectangleSides ¶
func ListRectangleSides() [SideSize]RectangleSide
func (RectangleSide) Convert ¶
func (rs RectangleSide) Convert() Plate
func (RectangleSide) Name ¶
func (rs RectangleSide) Name() string
func (RectangleSide) String ¶
func (rs RectangleSide) String() string
func (RectangleSide) Value ¶
func (rs RectangleSide) Value() float64
type Region ¶
type Region float64
Region is wind region. Ветровые районы (принимаются по карте 2 приложения Е)
Example ¶
wos := ListWo() var buf bytes.Buffer w := tabwriter.NewWriter(&buf, 0, 0, 1, ' ', tabwriter.TabIndent) fmt.Fprintf(w, "factor Wo\n") fmt.Fprintf(w, "region") for _, wo := range wos { fmt.Fprintf(w, "\t%8s", wo.Name()) } fmt.Fprintf(w, "\n") fmt.Fprintf(w, "Wo, kPa") for _, wo := range wos { fmt.Fprintf(w, "\t%8.2f", float64(wo)/1000.0) } fmt.Fprintf(w, "\n") for _, wo := range wos { fmt.Fprintf(w, "%s\n", wo) } w.Flush() fmt.Fprintf(os.Stdout, "%s", buf.String())
Output: factor Wo region Ia I II III IV V VI VII Wo, kPa 0.17 0.23 0.30 0.38 0.48 0.60 0.73 0.85 Wind region: Ia with value = 170.0 Pa Wind region: I with value = 230.0 Pa Wind region: II with value = 300.0 Pa Wind region: III with value = 380.0 Pa Wind region: IV with value = 480.0 Pa Wind region: V with value = 600.0 Pa Wind region: VI with value = 730.0 Pa Wind region: VII with value = 850.0 Pa
type Zone ¶
type Zone byte
Zone - тип местности
const ( // ZoneA - открытые побережья морей, озер и водохранилищ, сельские // местности, в том числе с постройками высотой менее 10 м, пустыни, // степи, лесостепи, тундра; ZoneA Zone = 'A' // ZoneB - городские территории, лесные массивы и другие местности, // равномерно покрытые препятствиями высотой более 10 м; ZoneB Zone = 'B' // ZoneC - городские районы с плотной застройкой зданиями высотой более 25м ZoneC Zone = 'C' )