Жизненная энергия человека 1 страница
1. Автор - делегация ПНР в Постоянной Комиссии по сотрудничеству в области стандартизации.
2. Тема - 01.634.14-78.
3. Стандарт СЭВ утвержден на 50-м заседании ПКС.
4. Сроки начала применения стандарта СЭВ:
5. Срок первой проверки - 1988 г., периодичность проверки - 5 лет.
Настоящий стандарт СЭВ устанавливает условные графические обозначения элементов водопровода в схемах и чертежах.
1. Размеры обозначений в схемах и чертежах водопровода применяют в зависимости от компоновки и насыщенности схемы или чертежа без соблюдения масштаба. При необходимости указания размещения и габаритов элементов систем, размеры обозначений применяют в масштабе чертежа. 2. Условные графические обозначения водопровода допускается сопровождать буквенными, цифровыми или буквенно-цифровыми обозначениями, уточняющими техническую характеристику обозначаемого элемента.
Указанные обозначения разъясняют на чертежах. 3. Условные графические обозначения, приведенные в данном стандарте СЭВ, допускается, при необходимости, дополнять другими условными графическими обозначениями. Пояснения к указанным обозначениям приводятся на чертежах. 4. Обозначения элементов водопровода приведены в таблице.
Do { elemdd.d_elem = ddd=ddd-ddp/elemS; if ((el == 2) | (el == 5)) { elemdd.type_elem = 2; vElem=elemdd.velem(1.0); if (ddd >= 9) dvElem=10*(3.75+2.5*1); else dvElem= ddd*vElem;} else { elemdd.type_elem = 0; vElem=elemdd.velem(); dvElem= ddd*vElem;} ffElem = dvElem - qmax[el]/(zdan1. fp); if (ffElem*ffElemOld < 0) { priz=0; dMax=ddd; ffMin= ffElem; break; }; ffElemOld=ffElem; if (Math. abs (ffMin) > (Math. abs (ffElem))) {priz=100; ffMin=ffElem; dMax=ddd; } } while (ddd > 0.5); dmax[el]=dMax; System. out. println(" el= "+pip.format(el)+" priz= "+priz+" ffMin= "+pip.format(ffMin)+ " Dmax= "+ pip.format(dMax)); } // System.out.println(Arrays.toString(dmax));
ArrayList<elem> al = new ArrayList<elem>(); // базовый список ячеек ArrayList<doorElem> al_Door = new ArrayList<doorElem>(); // базовый список дверей
ArrayList<ArrayList<elem>> elemOut = new ArrayList<ArrayList<elem>>();// Списки на выход (n_out); for (int ii = 0; ii < n_Out; ii++) elemOut.add(new ArrayList<elem>());
int k_out[]= new int [n_Out]; // номер обрабатываемой ячейки списка выхода int finis_out[]= new int [n_Out]; // номер последней ячейки списка выхода int k_Door = 0; // номер двери for (int i=1; i<Nx-1; i++) for (int j=1; j<Ny-1; j++) if (array[i][j]<0) continue; else { number_elem=array[i][j]; powerSourse = 0; type_elem=0; // type_elem = 0 - горизонтальный путь в здании outelem = -1; // при outelem=-1, т.е. <0 - номер выхода пока не определен direct_elem=0; // направление не определено if (array[i-1][j]>=0) xreduction=array[i-1][j]; else xreduction=out; if (array[i+1][j]>=0) xincrease =array[i+1][j]; else xincrease =out; if (array[i][j-1]>=0) yreduction=array[i][j-1]; else yreduction=out; if (array[i][j+1]>=0) yincrease =array[i][j+1]; else yincrease =out; elem elem1 = new elem(number_elem,type_elem, xreduction,xincrease,yreduction,yincrease, powerSourse,outelem); elem1.d_elem = d0; // начальное распределение плотности людей elem1.d_max = dmax[type_elem]; // максимальная плотнеость elem1.number_Door = -1; // номер двери не определен for (int k=0; k<n_Out; k++) // Выходы из расчетной области (здания) { if ((i == coorOut[k][0]) & (j == coorOut[k][1])){elem1.outelem = k; peopleOut[k]=0; switch (direcOut[k]){ case -1: hxyz=0.5*hx; direct_elem=-1; break; case 1: hxyz=0.5*hx; direct_elem=1; break; case -2: hxyz=0.5*hy; direct_elem=-2; break; case 2: hxyz=0.5*hy; direct_elem=2; break; // case -3: case 3: hxyz= hxyz=0.5*hz; direct_elem=3; break; default: {hxyz=-1000; direct_elem=-1000;}; } // ошибка elem1.type_elem = 5; elem1.d_max = dmax[type_elem]; // максимальная плотнеость elem1.time_outelem=hxyz/elem1.velem(outL[k]); elem1.direct_elem = direct_elem; elem1.number_Door = k_Door; k_Door++; // номер двери k_out[k]= 0; // номер обрабатываемой ячейки списка выхода finis_out[k]= 0; // номер последней ячейки списка выхода doorElem doorOut = new doorElem(elem1.number,elem1.type_elem,elem1.direct_elem,outL[k]); elem1.d_max = doorOut.dmax(outL[k],hx,hy); elemOut.get(k).add(elem1); al_Door.add(doorOut); doorOut.printdoor(); System. out. println("number out "+number_elem+" elem1.d_max(type=5) "+elem1.d_max); // System.out.println("number out "+number_elem+" outelem "+elem1.outelem); // elem1.printelem(); } }; for (int k=0; k<n_Door; k++) { // Обработка дверных проемов в расчетной области if ((i == coorDoor[k][0]) & (j == coorDoor[k][1])){ elem1.type_elem = 2; elem1.number_Door = k_Door; // номер двери doorElem doorxx = new doorElem(elem1.number,elem1.type_elem,elem1.direct_elem, doorL[k]); elem1.d_max = doorxx.dmax(doorL[k],hx,hy); k_Door++; System. out. println("number out "+number_elem+" elem1.d_max(type=2) "+elem1.d_max); al_Door.add(doorxx); doorxx.printdoor(); } }; for (int k=0; k<n_in; k++) { // Источник if ((i == coorIn[k][0]) && (j == coorIn[k][1])) { elem1.powerSourse = powerIn[k]; System. out. println("number in "+elem1.number +" powerSourse "+ elem1.powerSourse); } }; al.add(elem1);}
// Формирование списков элементов для каждого выхода k=0,.... n_out int klist, // число проходов по списку ячеек k, // номер элемента в списке текущего выхода k_near, // номера соседних элементов по отношению к элементу k k_kd; // предписание выхода для ячеек k_xred, k_xinc, k_yred, k_yinc double time_kk, // время достижения элемента от выхода = kk time_kd, // время достижения элемента от выхода!= kk time_elem; // время прохождения ячейки elem elemxx; // обрабатываемый элемент elem elemk_near; // сосед обрабатываемого элемента boolean elem_cen, bout [] = new boolean [n_Out]; int indeks[]= new int [5]; double d_indeks[] = new double [5];
double nk0, nk_near, ntran; double d_tranzit, qout, qin, qmax_xx; double elemL; int num; int ntime=1; // число проходов по времени до корректировки списков выхода [в режиме отладки цикл печати] double kust=0.9; // устойчивость расчета при kust -> 0 (kust<1) double time=0, tay= (Math. min (hx,hy)/100.0)*kust; // минут boolean bb;
for (int kk=0; kk<n_Out; kk++) peopleOut[kk]=0; /* main do do {*/
for (int kkkk=0; kkkk<2; kkkk++) {
klist=0; elem_cen = true; do // Формирование списков от каждого выхода { klist++; // число проходов по списку выходов for (int kk=0; kk<n_Out; kk++) // Выходы { bout[kk]= false; if (elemOut.get(kk).isEmpty()) {System. out. println("\n!230! elemOut.get(kk).isEmpty"); continue; } // пустая очередь на выход kk k=k_out[kk]; // обраб. элемент в очереди на выход kk if (k<0) System. out. println("\n!232! k=k_out[kk] <0 "+k); elemxx =elemOut.get(kk).get(k); // System.out.println("\n kk= "+kk+ " k_out[kk]= "+k); elemxx.printelem();
//********** // Определение последовательности формирования списков выхода по условию мак. плотности for (int kdirect=0; kdirect<5; kdirect++) { indeks[kdirect]=0; d_indeks[kdirect]=0; } if ((k_near=elemxx.xreduction) >=0) // сосед слева в расчетной области (номер ячейки) Индекс 1 { elemk_near = al.get(k_near); // ячейка соседа слева k_kd = elemk_near.outelem; // предписание выхода для соседа слева if (k_kd!= kk) // сосед слева подлежит обработке { d_indeks[1]=elemk_near.d_elem; } }; if ((k_near=elemxx.xincrease) >=0) // сосед справа в расчетной области (номер ячейки) Индекс 2 { elemk_near = al.get(k_near); // ячейка соседа справа k_kd = elemk_near.outelem; // предписание выхода для соседа справа if (k_kd!= kk) // сосед подлежит обработке { d_indeks[2]=elemk_near.d_elem; } }; if ((k_near=elemxx.yreduction) >=0) // сосед снизу в расчетной области (номер ячейки) Индекс 3 { elemk_near = al.get(k_near); // ячейка соседа снизу k_kd = elemk_near.outelem; // предписание выхода для соседа справа if (k_kd!= kk) // сосед подлежит обработке { d_indeks[3]=elemk_near.d_elem; } }; if ((k_near=elemxx.yincrease) >=0) // сосед сверху в расчетной области (номер ячейки) Индекс 4 { elemk_near = al.get(k_near); // ячейка соседа сверху k_kd = elemk_near.outelem; // предписание выхода для соседа справа if (k_kd!= kk) // сосед подлежит обработке { d_indeks[4]=elemk_near.d_elem; } };
//************ // Обработка соседей ячейки elemxx =elemOut.get(kk).get(k) выходной очереди на выход kk if ((k_near=elemxx.xreduction) >=0) // сосед слева в расчетной области (номер ячейки) { elemk_near = al.get(k_near); // ячейка соседа слева k_kd = elemk_near.outelem; // предписание выхода для соседа слева if (k_kd!= kk) // сосед слева подлежит обработке { if (k_kd < 0) // не приписан к выходу (обрабатываем ячейку и приписываем к выходу) { al.get(k_near).outelem = kk; // приписали к выходу kk al.get(k_near).direct_elem = 1; // x al.get(k_near).time_outelem = elemxx.time_outelem + hx/elemk_near.velem(); elemOut.get(kk).add(al.get(k_near)); finis_out[kk]=finis_out[kk]+1; //System.out.println("\n k_red = "+k_near+" finis_out[kk] = "+finis_out[kk]); // al.get(k_near).printelem(); } else // обработка случая когда сосед слева приписан к выходу!= kk { time_kd=elemk_near.time_outelem; // время достижения элемента k_xred от выхода!= kk if (time_kd <= 0) {System. out. println("\n!!! time_kd= "+time_kd); elemk_near.printelem();} time_elem = hx/elemk_near.velem(); time_kk = elemxx.time_outelem + time_elem; // время достижения элемента k_xred от выхода = kk // если время достижения выхода kk значительно меньше чем k_kd (!= kk), if ((time_kk+time_elem) <= time_kd) // то выход для ряда ячеек переопределяется { al.get(k_near).outelem = kk; // приписали к выходу kk al.get(k_near).direct_elem = 1; // x al.get(k_near).time_outelem = elemxx.time_outelem + hx/elemk_near.velem(); elemOut.get(kk).add(al.get(k_near)); finis_out[kk]=finis_out[kk]+1; System. out. println("\n k_incr_x = "+k_near+" finis_out[kk] = "+finis_out[kk]); // al.get(k_near).printelem(); int k_element = elemOut.get(k_kd).indexOf(elemk_near); // Элементы удалить c k_element if (k_element <0) { System. out. println("!220! k_element "+k_element); al.get(k_near).printelem();} List<elem> listOut_kd = elemOut.get(k_kd); // начало сжатия списка выхода k_kd ListIterator itrOut_kd = listOut_kd.listIterator(k_element); while (itrOut_kd.hasNext()) // переопределение списка выхода k_kd { elem element =(elem) itrOut_kd.next(); // следующий элемент списка выхода k_kd int number_al = element.number; if (number_al <0) { System. out. println("!226! number_al "+number_al); } al.get(number_al).outelem = -1; // отписка от выхода kk al.get(number_al).direct_elem = 0; al.get(number_al).time_outelem = 0; }; while ((k_element) < listOut_kd.size()) {listOut_kd.remove(k_element);} finis_out[k_kd]=listOut_kd.size(); if (k_out[k_kd]>=k_element) k_out[k_kd]=k_element-1; if ((k_element-1) <0) { System. out. println("!233! k_element "+k_element); } } } } } // конец обработки соседа слева if ((k_near=elemxx.xincrease) >=0) // сосед справа в расчетной области (номер ячейки) { elemk_near = al.get(k_near); // ячейка соседа справа k_kd = elemk_near.outelem; // предписание выхода для соседа справа if (k_kd!= kk) // сосед подлежит обработке { if (k_kd < 0) // не приписан к выходу (обрабатываем ячейку и приписываем к выходу) { al.get(k_near).outelem = kk; // приписали к выходу kk al.get(k_near).direct_elem = -1; // x al.get(k_near).time_outelem = elemxx.time_outelem + hx/elemk_near.velem(); elemOut.get(kk).add(al.get(k_near)); finis_out[kk]=finis_out[kk]+1; //System.out.println("\n k_inc = "+k_near+" finis_out[kk] = "+finis_out[kk]); //al.get(k_near).printelem(); } else // обработка случая когда сосед слева приписан к выходу!= kk { time_kd=elemk_near.time_outelem; // время достижения элемента k_inc от выхода!= kk if (time_kd <= 0) {System. out. println("\n!251! time_kd= "+time_kd); elemk_near.printelem();} time_elem = hx/elemk_near.velem(); time_kk = elemxx.time_outelem + time_elem; // время достижения элемента k_near от выхода = kk // если время достижения выхода kk значительно меньше чем k_kd (!= kk), if ((time_kk+time_elem) <= time_kd) // то выход для ряда ячеек переопределяется { al.get(k_near).outelem = kk; // приписали к выходу kk al.get(k_near).direct_elem = -1; // x al.get(k_near).time_outelem = elemxx.time_outelem + hx/elemk_near.velem(); elemOut.get(kk).add(al.get(k_near)); finis_out[kk]=finis_out[kk]+1; System. out. println("\n k_xinc = "+k_near+" finis_out[kk] = "+finis_out[kk]); // al.get(k_near).printelem(); int k_element = elemOut.get(k_kd).indexOf(elemk_near); // Элементы удалить c k_element if (k_element <0) { System. out. println("!264! k_element "+k_element); al.get(k_near).printelem();} List<elem> listOut_kd = elemOut.get(k_kd); // начало сжатия списка выхода k_kd ListIterator itrOut_kd = listOut_kd.listIterator(k_element); while (itrOut_kd.hasNext()) // переопределение списка выхода k_kd { elem element =(elem) itrOut_kd.next(); // следующий элемент списка выхода k_kd int number_al = element.number; if (number_al <0) { System. out. println("!!! number_al "+number_al); } al.get(number_al).outelem = -1; // отписка от выхода kk al.get(number_al).direct_elem = 0; al.get(number_al).time_outelem = 0; }; while ((k_element) < listOut_kd.size()) {listOut_kd.remove(k_element);}// nn_kd++;} finis_out[k_kd]=listOut_kd.size(); if (k_out[k_kd]>=k_element) k_out[k_kd]=k_element-1; if ((k_element-1) <0) { System. out. println("!!! k_element "+k_element); } } } } } // конец обработки соседа справа if ((k_near=elemxx.yreduction) >=0) // сосед снизу в расчетной области (номер ячейки) { elemk_near = al.get(k_near); // ячейка соседа снизу k_kd = elemk_near.outelem; // предписание выхода для соседа снизу if (k_kd!= kk) // сосед снизу подлежит обработке { if (k_kd < 0) // не приписан к выходу (обрабатываем ячейку и приписываем к выходу) { al.get(k_near).outelem = kk; // приписали к выходу kk al.get(k_near).direct_elem = 2; // x al.get(k_near).time_outelem = elemxx.time_outelem + hy/elemk_near.velem(); elemOut.get(kk).add(al.get(k_near)); finis_out[kk]=finis_out[kk]+1; // System.out.println("\n k_yred = "+k_near+" finis_out[kk] = "+finis_out[kk]); // al.get(k_near).printelem(); } else // обработка случая когда сосед снизу приписан к выходу!= kk { time_kd=elemk_near.time_outelem; // время достижения элемента k_xred от выхода!= kk if (time_kd <= 0) {System. out. println("\n!!! time_kdy= "+time_kd); elemk_near.printelem();} time_elem = hy/elemk_near.velem(); time_kk = elemxx.time_outelem + time_elem; // время достижения элемента k_xred от выхода = kk // если время достижения выхода kk значительно меньше чем k_kd (!= kk), if ((time_kk+time_elem) <= time_kd) // то выход для ряда ячеек переопределяется { al.get(k_near).outelem = kk; // приписали к выходу kk al.get(k_near).direct_elem = 2; // y al.get(k_near).time_outelem = elemxx.time_outelem + hy/elemk_near.velem(); elemOut.get(kk).add(al.get(k_near)); finis_out[kk]=finis_out[kk]+1; //System.out.println("\n k_incr_y = "+k_near+" finis_out[kk] = "+finis_out[kk]); //al.get(k_near).printelem(); int k_element = elemOut.get(k_kd).indexOf(elemk_near); // Элементы удалить c k_element if (k_element <0) { System. out. println("!!! k_element "+k_element); al.get(k_near).printelem();} List<elem> listOut_kd = elemOut.get(k_kd); // начало сжатия списка выхода k_kd ListIterator itrOut_kd = listOut_kd.listIterator(k_element); while (itrOut_kd.hasNext()) // переопределение списка выхода k_kd { elem element =(elem) itrOut_kd.next(); // следующий элемент списка выхода k_kd int number_al = element.number; if (number_al <0) { System. out. println("!!! number_al "+number_al); } al.get(number_al).outelem = -1; // отписка от выхода kk al.get(number_al).direct_elem = 0; al.get(number_al).time_outelem = 0; }; while ((k_element) < listOut_kd.size()) {listOut_kd.remove(k_element); } //nn_kd++;} finis_out[k_kd]=listOut_kd.size(); if (k_out[k_kd]>=k_element) k_out[k_kd]=k_element-1; if ((k_element-1) <0) { System. out. println("!!! k_element-y "+k_element); } } } } } // конец обработки соседа снизу if ((k_near=elemxx.yincrease) >=0) // сосед сверху в расчетной области (номер ячейки) { elemk_near = al.get(k_near); // ячейка соседа сверху k_kd = elemk_near.outelem; // предписание выхода для соседа сверху if (k_kd!= kk) // сосед подлежит обработке { if (k_kd < 0) // не приписан к выходу (обрабатываем ячейку и приписываем к выходу) { al.get(k_near).outelem = kk; // приписали к выходу kk al.get(k_near).direct_elem = -2; // y al.get(k_near).time_outelem = elemxx.time_outelem + hy/elemk_near.velem(); elemOut.get(kk).add(al.get(k_near)); finis_out[kk]=finis_out[kk]+1; // System.out.println("\n k_inc+y = "+k_near+" finis_out[kk] = "+finis_out[kk]); // al.get(k_near).printelem(); } else // обработка случая когда сосед слева приписан к выходу!= kk { time_kd=elemk_near.time_outelem; // время достижения элемента k_inc от выхода!= kk if (time_kd <= 0) {System. out. println("\n!!! y time_kd= "+time_kd); elemk_near.printelem();} time_elem = hy/elemk_near.velem(); time_kk = elemxx.time_outelem + time_elem; // время достижения элемента k_near от выхода = kk // если время достижения выхода kk значительно меньше чем k_kd (!= kk), if ((time_kk+time_elem) <= time_kd) // то выход для ряда ячеек переопределяется { al.get(k_near).outelem = kk; // приписали к выходу kk al.get(k_near).direct_elem = -2; // y al.get(k_near).time_outelem = elemxx.time_outelem + hy/elemk_near.velem(); elemOut.get(kk).add(al.get(k_near)); finis_out[kk]=finis_out[kk]+1; System. out. println("\n k_yinc = "+k_near+" finis_out[kk] = "+finis_out[kk]); // al.get(k_near).printelem(); int k_element = elemOut.get(k_kd).indexOf(elemk_near); // Элементы удалить c k_element if (k_element <0) { System. out. println("!!! y k_element "+k_element); al.get(k_near).printelem();} List<elem> listOut_kd = elemOut.get(k_kd); // начало сжатия списка выхода k_kd ListIterator itrOut_kd = listOut_kd.listIterator(k_element); while (itrOut_kd.hasNext()) // переопределение списка выхода k_kd { elem element =(elem) itrOut_kd.next(); // следующий элемент списка выхода k_kd int number_al = element.number; if (number_al <0) { System. out. println("!!! +y number_al "+number_al); } al.get(number_al).outelem = -1; // отписка от выхода kk al.get(number_al).direct_elem = 0; al.get(number_al).time_outelem = 0; }; while ((k_element) < listOut_kd.size()) {listOut_kd.remove(k_element);} // nn_kd++;} finis_out[k_kd]=listOut_kd.size(); if (k_out[k_kd]>=k_element) k_out[k_kd]=k_element-1; if ((k_element-1) <0) { System. out. println("!!! +y k_element "+k_element); } } } } } // конец обработки соседа сверху
bout[kk]= false; int kfin = elemOut.get(kk).size(); // количество элементов в списке kk if (k_out[kk]<(kfin-1)) {k_out[kk]=k_out[kk]+1; bout[kk]= true;} } // цикл по выходному списку elem_cen = false; for (int kk=0; kk<n_Out; kk++) // Выходы { if (bout[kk] == true) {elem_cen = true; break; } } } while (elem_cen); // do
// Печать System. out. println(" \n Печать по выходам");;
|