perm filename PARA.SAI[NET,GUE] blob
sn#018512 filedate 1973-01-11 generic text, type T, neo UTF8
00005 COMMENT
00010 A SOLUTION TO THE LOCAL DESCRIPTION OF ELEMENTS
00015 USING A CONE WITH PARABOLIC AXIS;
00020
00100 REAL X,Y; COMMENT TRANSFORMED COORDINATES;
00200 REAL A; COMMENT PARAMETER FOR PARABOLA;
00300 REAL λ; COMMENT THETA OF COORDINATE SYSTEM;
00400 REAL U,V; COMMENT CENTER OF COORDINATE SYSTEM;
00500 REAL α,β; COMMENT PARAMETERS OF RADIUS FUNCTION;
00600
00700
00800 FOR I←1 STEP 1 UNTIL N1 DO BEGIN "FIRST"
00900 X←X1[I]*CT+Y1[I]*ST+U; COMMENT ROTATION AND TRANSLATION INTO NEW COORDS;
01000 Y←-X1[I]*ST+Y1[I]*CT+V;
01100 DXDλ←-X1[I]*ST+Y1[I]*CT;
01200 DYDλ←-X1[I]*CT-Y1[I]*ST;
01300 DXDλDλ←-X1[I]*CT-Y1[I]*ST;
01400 DYDλDλ←X1[I]*ST-Y1[I]*CT;
01700
01800 COMMENT P IS THE RADIUS FUNCTION: P=α+β*X;
01900 DPDα←1; COMMENT DERIVATIVES OF P;
02000 DPDβ←X;
02100 DPDλ←R*DXDλ;
02200 DPDU←R*DXDU;
02300 DPDβDλ←DXDλ;
02400 DPDβDU←DXDU;
02500 DPDλDλ←β*DXDλDλ;
02600
02700 COMMENT R IS THE DISTANCE FROM THE AXIS;
02800 A2←A*A;
02900 A3←A2*A;
03000 X2←X*X;
03100 X3←X2*X;
03200 X4←X3*X;
03250 R←(Y-A*X2)*(1-2*A2*X2);
03300 DRDX←-2*A*X(1+2*A*Y)+8*A3*X3;
03400 DRDY←1-2*A2*X2;
03500 DRDXDY←-4*A2*X;
03600 DRDXDX←-2*A*(1+2*A*Y)+24*A3*X2;
03700 DRDADX←24*A2*X3-2*(1+4*A*Y)*X;
03800 DRDADY←-4*A*X2;
03900
04000 DRDA←6*A2*X4-(1+4*A*Y)*X2;
04100 DRDλ←DRDX*DXDλ+DRDY*DYDλ;
04200 DRDU←DRDX;
04300 DRDV←DRDY;
04400 DRDADA←12*A*X4-4*Y*X2;
04500 DRDADλ←DRDADX*DXDλ+DRDADY*DYDλ;
04600 DRDADU←DRDADX;
04700 DRDADV←DRDADY;
04800 DRDλDX←DRDXDX*DXDλ+DRDXDY*DYDλ;
04900 DRDUDX←DRDXDX*DXDU;
05000 DRDVDX←DRDXDY*DYDV;
05100 DRDλDY←DRDXDY*DXDλ;
05200 DRDUDY←DRDXDY*DXDU;
05300 COMMENT DRDVDY IS ZERO;
05400
05500 DRDλDλ←DRDλDX*DXDλ+DRDλDY*DYDλ;
05600 DRDλDU←DRDλDX*DXDU;
05700 DRDλDV←DRDλDY*DYDV;
05800 DRDUDU←DRDUDX*DXDU;
05900 DRDUDV←DRDUDY*DYDV;
06000 DRDVDV←DRDVDY*DYDV;
06100
06200 Q←R-P;
06300 DQDA←DRDA-DPDA;
06400 DQDλ←DRDλ-DPDλ;
06500 DQDU←DRDU-DPDV;
06600 DQDV←DRDV-DPDV;
06700 DQDα←-DPDα;
06800 DQDβ←-DPDβ;
06805 DQDADA←DRDADA;
06810 DQDADλ←DRDADλ;
06815 DQDADU←DRDADU;
06820 DQDADV←DRDADV;
06825 DQDADα←DRDADα;
06830 DQDADβ←DRDADβ;
06835 DQDλDλ←DRDλDλ-DPDλDλ;
06840 DQDλDU←DRDλDU-DPDλDU;
06845 DQDλDV←DRDλDV-DPDλDV;
06850 DQDλDα←-DPDλDα;
06855 DQDλDβ←-DPDλDβ;
06860 DQDUDU←DRDUDU-DPDUDU;
06865 DQDUDV←DRDUDV-DPDUDV;
06870 DQDUDα←-DPDUDα;
06875 DQDUDβ←-DPDUDβ;
06880 DQDVDV←DRDVDV-DPDVDV;
06885 DQDVDα←-DPDVDα;
06890 DQDVDβ←-DPDVDβ;
06895 DQDαDα←-DPDαDα;
06897 DQDαDβ←-DPDαDβ;
06898 DQDβDβ←-DPDβDβ;
06899
06900 Q2←Q*2;
07000 DLDA←DLDA+Q2*DQDA
07100 DLDλ←DLDλ+Q2*DQDλ;
07200 DLDU←DLDU+Q2*DQDU;
07300 DLDV←DLDV+Q2*DQDV;
07400 DLDα←DLDα+Q2*DQDα;
07500 DLDβ←DLDβ+Q2*DQDβ;
07600 DLDADA←DLDADA+2*(DQDA*DQDA+Q*DQDADA);
07700 DLDADλ←DLDADλ+2*(DQDA*DQDλ+Q*DQDADλ);
07800 DLDADU←DLDADU+2*(DQDA*DQDU+Q*DQDADU);
07900 DLDADV←DLDADV+2*(DQDA*DQDV+Q*DQDADV);
08000 DLDADα←DLDADα+2*(DQDA*DQDα+Q*DQDADα);
08100 DLDADβ←DLDADβ+2*(DQDA*DQDβ+Q*DQDADβ);
08300 DLDλDλ←DLDλDλ+2*(DQDλ*DQDλ+Q*DQDλDλ);
08400 DLDλDU←DLDλDU+2*(DQDλ*DQDU+Q*DQDλDU);
08500 DLDλDV←DLDλDV+2*(DQDλ*DQDV+Q*DQDλDV);
08600 DLDλDα←DLDλDα+2*(DQDλ*DQDα+Q*DQDλDα);
08700 DLDλDβ←DLDλDβ+2*(DQDλ*DQDβ+Q*DQDλDβ);
08750 DLDUDU←DLDUDU+2*(DQDU*DQDU+Q*DQDUDU);
08800 DLDUDV←DLDUDV+2*(DQDU*DQDV+Q*DQDUDV);
08900 DLDUDβ←DLDUDβ+2*(DQDU*DQDβ+Q*DQDUDβ);
08910 DLDUDα←DLDUDα+2*(DQDU*DQDα+Q*DQDUDα);
08980 DLDVDV←DLDVDV+2*(DQDV*DQDV+Q*DQDVDV);
08990 DLDVDα←DLDVDα+2*(DQDV*DQDα+Q*DQDVDα);
09000 DLDVDβ←DLDVDβ+2*(DQDV*DQDβ+Q*DQDVDβ);
09090 DLDαDα←DLDαDα+2*(DQDα*DQDα+Q*DQDαDα);
09100 DLDαDβ←DLDαDβ+2*(DQDα*DQDβ+Q*DQDαDβ);
09200 DLDβDβ←DLDβDβ+2*(DQDβ*DQDβ+Q*DQDβDβ);