Changeset 13


Ignore:
Timestamp:
12/21/06 10:22:39 (17 years ago)
Author:
xlvlod
Message:

NS3D: ajout forcage

Location:
trunk/NS3D_JMC
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/NS3D_JMC/config.h

    r12 r13  
    1414! Pour la librairie FFTW, les produits des facteurs premiers 2,3, 5, et 7 fonctionnent bien et tout particulièrement 
    1515! les puissances de 2. 
    16 #define DIMX 256 
    17 #define DIMY 256 
    18 #define DIMZ 3 
     16#define DIMX 2 
     17#define DIMY 64 
     18#define DIMZ 64 
    1919 
    2020! utile pour definir un mode "debugage" dans le code (pas d'initialisation du generateur de nombre aleatoire, 
     
    3939! de l'architecture de calcul (NEC, processeur Intel...). 
    4040#define PPADX 0 
    41 #define PPADY 1 
    42 #define PPADZ 256 
     41#define PPADY 0 
     42#define PPADZ 0 
    4343 
    4444! choix de la fonction qui genere l'ecoulement de base. Actuellement est disponible : 
  • trunk/NS3D_JMC/data.in

    r12 r13  
    33 
    44*** Parametres de discretisation *** 
    5 nx___________________________   256 
    6 ny___________________________   256 
    7 nz___________________________   3 
    8 Lx___________________________   14.1322 
    9 Ly___________________________   60. 
     5nx___________________________   2 
     6ny___________________________   64 
     7nz___________________________   64 
     8Lx___________________________   10. 
     9Ly___________________________   10. 
    1010Lz___________________________   10. 
    11 Dt___________________________   0.01 
     11Dt___________________________   0.1 
    1212begin________________________   0. 
    13 itmax________________________   15000 
     13itmax________________________   500 
    1414Troncature_oui/non___________   T 
    1515    carree:1 / elliptique:2__   1 
     
    1919 
    2020*** Parametres physiques *** 
    21 visc_________________________   5.E-6 
    22 stratifie____________________   F 
    23     brunt_vaisala_frequency__   10. 
     21visc_________________________   1.E-4 
     22stratifie____________________   T 
     23    brunt_vaisala_frequency__   0.39 
    2424    schmidt number___________   1. 
    25252omega_______________________   0. 
    2626 
    2727*** Type de simulation *** 
    28 En perturbation______________   T 
    29 Lineaire_____________________   T 
     28En perturbation______________   F 
     29Lineaire_____________________   F 
    3030 
    3131*** Reprise de run  *** 
     
    3333 
    3434*** Etat de base (pour simulation en perturbation) *** 
    35 Call subroutine gen_base2D___   T 
     35Call subroutine gen_base2D___   F 
    3636Lecture fichier______________   F 
    3737 
     
    3939Call subroutine gen_velo2D___   F 
    4040Lecture fichier______________   F 
    41 Bruit_blanc__________________   T 
     41Bruit_blanc__________________   F 
    4242    amplitude________________   0.00001 
    4343 
     44*** forcage *** 
     45Call subroutine forcage______   T 
     46    A_ics____________________   1.E-1 
     47    freq_____________________   0.2 
     48 
    4449*** Sorties *** 
    45 periode out_physique1________   1 
    46 periode out_physique2________   2000 
    47 periode out_spectral1________   100 
     50periode out_physique1________   5 
     51periode out_physique2________   5 
     52periode out_spectral1________   1000 
    4853 
    4954*** Parametres additionnels... *** 
    5055 
    5156* Tourbillons gaussiens * 
    52 Nb_tourbillons_______________   2 
     57Nb_tourbillons_______________   0 
    5358Tourbillon 1 
    5459    Position en x____________   2.5 
     
    6166    Circulation______________   -6.28 
    6267    Rayon____________________   1. 
     68 
  • trunk/NS3D_JMC/parametres.F90

    r12 r13  
    6363    logical, save :: lnoise 
    6464    double precision, save :: amplitude_noise 
     65 
     66    !introduction d'un forcage, appel de la subroutine forcage 
     67    logical, save :: forcage_sub 
     68    double precision, save :: A_ics, freq 
    6569 
    6670    ! nombre et instants où sont appeles les differentes fonctions de sorties 
  • trunk/NS3D_JMC/sous_routines.F90

    r12 r13  
    107107            read(1,*) 
    108108            read(1,*) 
     109 
     110            ! pba : deb 
     111            ! forcage 
     112            read(1,lecture_logical) bidon, forcage_sub 
     113            read(1,lecture_reel) bidon, A_ics 
     114            read(1,lecture_reel) bidon, freq 
     115 
     116            read(1,*) 
     117            read(1,*) 
     118 
     119            !pba fin 
     120 
    109121 
    110122            ! sorties 
     
    245257 
    246258            write(*,*) 
     259            write(*,*)'---------------------------------------------------' 
     260            write(*,*)'FORCAGE EN VITESSE' 
     261            write(*,*)'---------------------------------------------------' 
     262            write(*,aff_logical)'call subroutine', forcage_sub 
     263            write(*,aff_reel)'Amplitude..................',A_ics 
     264            write(*,aff_reel)'Frequence..................',freq 
     265 
     266            write(*,*) 
    247267            write(*,*) '---------------------------------------------------' 
    248268            write(*,*) 'SORTIES' 
     
    12741294        end subroutine 
    12751295 
     1296! pba: deb 
     1297! *************************************************************************        
     1298        subroutine forcage(bx,by,bz) 
     1299! ************************************************************************* 
     1300!       ajout d'un terme de forcage 
     1301!       parametres du forcage entres ici provisoirement modifier 
     1302!       data.in etc pour entree plus propre 
     1303! **************************************************************************                           
     1304                                 
     1305                                 
     1306            implicit none        
     1307                                 
     1308            double precision, dimension(0:dimx_tab-1,0:dimy_tab-1,0:dimz_tab-1), intent(inout) :: bx, by, bz 
     1309            double precision :: vbx0,vby0,vbz0,wbx0,wby0,wbz0 
     1310            double precision :: ax0,ay0,az0,bx0,by0,bz0 
     1311            double precision :: time, arg, sigma1, sigma2, FF, GG, acc 
     1312            integer :: ix, iy, iz, itime, i0, j0, k0    !itime a faire passer en parametre?            
     1313            ! itime=it0 
     1314            ! itime=itime+1   ! penser a it0=it0+itmax(run precedent si restat                                 ! print *,'temps:', itime  
     1315            !    A_ics=100.             !deplacement   a definir dans  data.in et parametres.F90 
     1316            !freq=2*pi/(3600*12.4)  !M2 a verifier idem 
     1317             arg=freq*it*Dt      !Dt est defini dans data.in ok 
     1318            ! print *,'arg:', arg  
     1319            ! print *,'A_ics:', A_ics  !acceleration 
     1320                  
     1321            ! localisation centre de la source       
     1322              i0=floor(0.5*nxmax) 
     1323              j0=floor(0.5*nymax) 
     1324              k0=floor(0.5*nzmax) 
     1325                                 
     1326            ! enveloppe gaussienne               
     1327            !sigma1=4km, sigma2=100m     revoir les valeurs ci-dessous 
     1328            sigma1=20.   ! defini en unite de dx et dz 
     1329            sigma2=1.    !                    dy 
     1330                                      
     1331               do iz=0,nzmax-1 
     1332                   do iy=0,nymax-1 
     1333                        do ix=0,nxmax-1 
     1334                            FF=exp(-((ix-i0)**2+(iy-j0)**2)/sigma1**2)             
     1335                            GG=exp(-(iz-k0)**2/sigma2**2) 
     1336                            bx0=bx(ix,iy,iz) 
     1337                            by0=by(ix,iy,iz) 
     1338                            bz0=bz(ix,iy,iz) 
     1339                            bx(ix,iy,iz)=bx0+A_ics*freq**2*FF*GG*sin(arg) 
     1340                                !  Acc=A_ics*FF*GG*sin(arg) 
     1341                                !print *,'acceleration:', Acc 
     1342                            by(ix,iy,iz)=by0 
     1343                            bz(ix,iy,iz)=bz0 
     1344                        end do 
     1345                    end do 
     1346               end do 
     1347 
     1348        end subroutine 
     1349 
     1350!pba : fin 
     1351 
     1352 
    12761353! ************************************************************************* 
    12771354        subroutine urho(ax,ay,az,b) 
     
    15181595            tps_vecpro2 = tps_vecpro2 - tps_temp 
    15191596            call vecpro2(vox,voy,voz,fx,fy,fz) 
     1597!pba : deb 
     1598            call forcage(fx,fy,fz) 
     1599!pba : fin                                                             
    15201600            call cpu_time(tps_temp) 
    15211601            tps_vecpro2 = tps_vecpro2 + tps_temp 
Note: See TracChangeset for help on using the changeset viewer.