* fichier : visufour1.dgibi ************************************************************************ * Section : Mecanique Fourier ************************************************************************ ************************************************************************ * * * Exemple d'utilisation de four2tri * * Visualisation 3D de résultats de calcul Fourier * * avec possibilité de recombinaison des harmoniques * * * * D. Combescure - Janvier 2007 * * Laboratoire DYN - CEA Saclay * ************************************************************************ * * GRAPH = VRAI; OPTI TRAC PSC; GRAPH = FAUX; * opti dime 2 elem tri3 mode four 'NOHA'; * ************************************************************************ * MAILLAGE ************************************************************************ xelim = 1.E-8; p1 = 10 0.01; p2 = 11 0.01; p3 = 20 0.01; p4 = 30 0.01; p5 = 30 1; v1 = 0 1; * lig1 = d 3 p1 p2; mesh2d = tran 3 lig1 v1; opti elem seg2; lig2 = d 3 p2 p3; ************************************************************************ * MODELE ************************************************************************ mod1 = modeli mesh2d mecanique elastique; mod2 = modeli lig2 mecanique elastique coq2; * mod3 = modeli (p5 et p4) mecanique elastique cerc; modt = mod1 et mod2; mesht = mesh2d et lig2; ************************************************************************ * CHPO 2D Fourier ************************************************************************ * listreel pour les isovaleurs izo1 = prog -1. PAS 0.1 1.; izo2 = 0.001 * izo1; * creation des tables de chpoint U2D = tabl; U2DZ = tabl; F2D = tabl; F2DZ = tabl; PRE1 = tabl; REPE bnf 3; nf = &bnf - 1; opti dime 2 elem tri3 mode four nf; U2D . nf = manu chpo mesht 3 'UR' 1. 'UT' -1. 'UZ' 0. 'NATURE' 'DIFFUS'; U2DZ . nf = manu chpo mesht 3 'UR' 0. 'UT' 0. 'UZ' 1. 'NATURE' 'DIFFUS'; F2D . nf = manu chpo mesht 2 'FR' 0.001 'FT' 0.001 'NATURE' 'DISCRET'; F2DZ . nf = manu chpo mesht 1 'FZ' 1. 'NATURE' 'DISCRET'; PRE1 . nf = manu chpo mesht 2 'P' 0.001 'EPAI' 0.001 'NATURE' 'DIFFUS'; FIN bnf; opti mode four 'NOHA'; * creation d'une force composee de plusieurs harmoniques opti mode four 1; FPONC = manu chpo p3 1 FR 1. nature discrete; opti mode four 2; FPONC = FPONC et (manu chpo p3 1 FR 1. nature discrete); opti mode four 3; FPONC = FPONC et (manu chpo p3 1 FR 1. nature discrete); opti mode four 4; FPONC = FPONC et (manu chpo p3 1 FR 1. nature discrete); opti mode four 5; FPONC = FPONC et (manu chpo p3 1 FR 1. nature discrete); opti mode four 6; FPONC = FPONC et (manu chpo p3 1 FR 1. nature discrete); opti mode four 'NOHA'; ************************************************************************ * FOUR2TRI (attention : on passe en 3D) ************************************************************************ * >>> GENERATION DU MAILLAGE 3D SEULEMENT <<< tab1 = TABLE; tab1 . 'MODELE' = modt; tab1 . 'ELIM' = xelim; tab1 . 'ANGLES' = PROG 0. pas 10. 360.; FOUR2TRI tab1 ; mesh3d = tab1 . 'MAILLAGE_3D'; OPTI 'OEIL' (0. 1.E4 -1.E4); SI GRAPH; TRAC mesh3d 'TITRE' 'MAILLAGE_3D'; FINSI; * >>> CHPO 2D Fourier --> 3D (deplacements et champs scalaires)<<< REPE bnf 3; nf = &bnf - 1; tab1.'DEPLACEMENTS' = TABLE; tab1.'DEPLACEMENTS'. 1 = U2D . nf; tab1.'DEPLACEMENTS'. 2 = U2DZ . nf; tab1.'CHPO_SYME' = TABLE; tab1.'CHPO_SYME'. 1 = PRE1 . nf; FOUR2TRI tab1 nf ; dep3D1 = (tab1 . 'DEPLACEMENTS_3D' . 1); dep3D2 = (tab1 . 'DEPLACEMENTS_3D' . 2); SI GRAPH; mo3d = mots 'UX' 'UY' 'UZ'; u1 = psca dep3D1 dep3D1 mo3d mo3d; trac (defo mesh3D dep3D1 u1) CACH izo1 'TITRE' (chai 'n_{H}='nf ' UR=-UT=+1'); u2 = psca dep3D2 dep3D2 mo3d mo3d; trac (defo mesh3D dep3D2 u2) CACH izo1 'TITRE' (chai 'n_{H}='nf ' UZ=+1'); trac mesh3d (exco (tab1.'CHPO_SYME_3D'. 1) 'P') 'TITRE' (chai 'n_{H}='nf ' p=+0.001') izo2; FINSI; * pour ne pas refaire le calcul on oublie simplement... OUBL tab1 'DEPLACEMENTS'; OUBL tab1 'CHPO_SYME'; FIN bnf; * >>> CHPO 2D Fourier --> 3D (efforts) <<< tab1.'EFFORTS' = TABLE; tab1.'EFFORTS'. 1 = FPONC; F3D = VIDE 'CHPOINT'; REPE bnf 6; nf = &bnf ; FOUR2TRI tab1 nf; F3D = F3D + tab1. 'EFFORTS_3D'. 1; FVECT = vect F3D 'FX' 'FY' 'FZ' ROSE; SI GRAPH; trac (0 -1E4 0) mesh3d FVECT 'TITRE' (chai 'F^{3D}=\S_{n=1..'nf'} F_{n}'); FINSI; FIN bnf; ************************************************************************ * fin du cas-test ************************************************************************ * TODO : on pourrait tester la convergence vers une force poncutelle ... TEMP 'IMPR' 'MAXI' 'CPU'; FIN ;