$$$$ AFT1 * AFT1 PROCEDUR BP208322 16/09/01 21:15:01 9010 ************************************************************************ * * OBJET : Calcul du deplacement temporel * a partir de son expression frequentielle * * * /!\ TOUS LES ARGUMENTS (SAUF DEP1) SONT PASSES IMPLICITEMENT /!\ * ************************************************************************ DEBPROC AFT1 DEP1*'CHPOINT'; *---------------- sous forme d'un LISTCHPO SI IFCHPO; *DEP_k = listchpo des chpoint de deplacement par harmonique ik = 0; DEP_k = SUIT (exco DEP1 NOMU0 NOMCOM 'NOID'); REPE bouhbm nhbm; ik = ik + 1 ; NOMUc = NHBMU . ik . 'COS'; NOMUs = NHBMU . ik . 'SIN'; DEP_k = DEP_k et (exco DEP1 NOMUc NOMCOM 'NOID'); DEP_k = DEP_k et (exco DEP1 NOMUs NOMCOM 'NOID'); FIN bouhbm; DEPT = VIDE 'LISTCHPO'; VITT = VIDE 'LISTCHPO'; *it = temps; ik = harmonique; it = 0; *-BOUCLE SUR LE TEMPS------------------------------ REPE btemps (dime LISTDT); it = it + 1; * xdeg = extr LISDEG it; * * harmonique 0 * xt = prog 1.; * ik = 0; * *---BOUCLE SUR LES HARMONIQUES----------------------- * REPE bouhbm nhbm; ik = ik + 1 ; * xt = xt et (cos (ik*xdeg)) et (sin (ik*xdeg)); * FIN bouhbm; xt = TGAMMA . it; * u(t_i) = {1 .. cos(k*t_i) sin(k*t_i) ..} * (U_0 .. U_kcos U_ksin ..) DEPT = DEPT ET (COLI DEP_k xt); SI FLVITE; vt = wrads * (TGAMMA_V . it); * v(t_i) = {0 .. -k*sin(k*t_i) k*cos(k*t_i) ..} * (U_0 .. U_kcos U_ksin ..) VITT = VITT ET (COLI DEP_k vt); FINSI; FIN btemps; DEPnl = DEPT; VITnl = VITT; *---------------- sous forme de LISTREELs SINON; * DEPnl = TABLE indicee par les ddl NL contenant les listreels u(t) DEPnl = TABLE ; VITnl = TABLE; *-boucle sur les ddls physique NL (UX, UY, ...) --------- REPE Bcnl (DIME COMP_FNL); inl = &Bcnl; icnl = EXTR COMP_FNL inl; SI (EGA (TYPE Pnl) 'POINT'); Ps = Pnl; SINON; Ps = EXTR Pnl inl; FINSI; *---boucle sur les ddls frequentiels associes pour chaque harmonique --- DEPf = PROG; REPE Bdep (DIME COMPU . icnl); id = &Bdep; DEPf = DEPf ET (EXTR DEP1 (EXTR COMPU . icnl id) Ps); FIN Bdep; *---recombinaison pour chaque harmonique --- DEPnl . inl = (EXTR DEPf 1) * (LISCOS . 0); REPE Bdep nhbm; ik = &Bdep; DEPnl . inl = DEPnl . inl + ((EXTR DEPf (2* ik)) * LISCOS . ik) + ((EXTR DEPf (2*ik + 1)) * LISSIN . ik); FIN Bdep; SI FLVITE; VITnl . inl = 0. * (COS(0*LISTDT)); REPE Bdep nhbm; ik = &Bdep; VITnl . inl = VITnl . inl + (wrads * (EXTR DEPf (2* ik)) * LISCOS2 . ik) + (wrads * (EXTR DEPf (2*ik + 1)) * LISSIN2 . ik); FIN Bdep; FINSI; FIN Bcnl; *-fin de boucle sur les ddls NL --------- FINSI; *---------------- fin de la distinction LISTCHPO / LISTREELs FINP DEPnl VITnl;