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β);