wind

package
v0.0.0-...-3e33014 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 11, 2023 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Examples

Constants

View Source
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

View Source
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

func EffectiveHeigth(z, d, h float64, isTower bool) (ze float64)

EffectiveHeigth by par 11.1.5

z - height from ground / высота от поверхности земли
d - dimension of building (perpendicular) / размер здания (без учета его
	стилобатной части) в направлении, перпендикулярном расчетному
	направлению ветра (поперечный размер).
h - heigth of building / высота здания.

func FactorKz

func FactorKz(zone Zone, ze float64) (kz float64)

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

func FactorNu(ρ, χ float64) (ν float64)

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

func FactorZeta(zone Zone, ze float64) (ζ float64)

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

func GraphB14(d, Δ, Re float64) (cx float64)

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

func GraphB17(d, Δ, Re float64) (Cx float64)

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

func GraphB23(λe, ϕ float64) (Kλ float64)

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

func NuPlates(b, h, a float64, pl Plate) (ρ, χ float64)

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 Sphere

func Sphere(zone Zone, wr Region, zg, d, Δ float64) (cx, cz, Re, ν float64)

Sphere сфера by B.1.11

func SplitHeigth

func SplitHeigth(zo, h float64) (zs []float64)

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) Name

func (ld LogDecriment) Name() string

Name of log decriment

func (LogDecriment) String

func (ld LogDecriment) String() string

String implementation of Stringer interface

type Plate

type Plate string

Plate плоскость

const (
	ZOY Plate = "ZOY"
	ZOX Plate = "ZOX"
	XOY Plate = "XOY"
)

Плоскости

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

func ListWo

func ListWo() []Region

ListWo is list of all wind regions

func (Region) Name

func (wr Region) Name() string

Name of wind region

func (Region) String

func (wr Region) String() string

String implementation of Stringer interface

type Struhale

type Struhale int
const (
	StCylinder Struhale = iota
	StRectangle
)

func (Struhale) Name

func (st Struhale) Name() string

func (Struhale) String

func (st Struhale) String() string

func (Struhale) Value

func (st Struhale) Value() float64

type Zone

type Zone byte

Zone - тип местности

const (
	// ZoneA - открытые побережья морей, озер и водохранилищ, сельские
	// местности, в том числе с постройками высотой менее 10 м, пустыни,
	// степи, лесостепи, тундра;
	ZoneA Zone = 'A'

	// ZoneB - городские территории, лесные массивы и другие местности,
	// равномерно покрытые препятствиями высотой более 10 м;
	ZoneB Zone = 'B'

	// ZoneC - городские районы с плотной застройкой зданиями высотой более 25м
	ZoneC Zone = 'C'
)

func ListZone

func ListZone() []Zone

func (Zone) String

func (z Zone) String() string

String implementation of Stringer interface

Jump to

Keyboard shortcuts

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