Changeset 391


Ignore:
Timestamp:
05/13/09 11:55:20 (16 years ago)
Author:
Mathieu Morlighem
Message:

fixed control methods (signs)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/objects/Tria.cpp

    r383 r391  
    16241624                /*We are using an absolute misfit: */
    16251625                for (i=0;i<numgrids;i++){
    1626                         absolutex_list[i]=vx_list[i]-obs_vx_list[i];
    1627                         absolutey_list[i]=vy_list[i]-obs_vy_list[i];
     1626                        absolutex_list[i]=obs_vx_list[i]-vx_list[i];
     1627                        absolutey_list[i]=obs_vy_list[i]-vy_list[i];
    16281628                }
    16291629        }
     
    16351635                        if(obs_vx_list[i]==0)scalex=0;
    16361636                        if(obs_vy_list[i]==0)scaley=0;
    1637                         relativex_list[i]=scalex*(vx_list[i]-obs_vx_list[i]);
    1638                         relativey_list[i]=scaley*(vy_list[i]-obs_vy_list[i]);
     1637                        relativex_list[i]=scalex*(obs_vx_list[i]-vx_list[i]);
     1638                        relativey_list[i]=scaley*(obs_vy_list[i]-vy_list[i]);
    16391639                }
    16401640        }
     
    16441644                        velocity_mag=sqrt(pow(vx_list[i],2)+pow(vy_list[i],2))+epsvel; //epsvel to avoid velocity being nil.
    16451645                        obs_velocity_mag=sqrt(pow(obs_vx_list[i],2)+pow(obs_vy_list[i],2))+epsvel; //epsvel to avoid observed velocity being nil.
    1646                         scale=8*pow(meanvel,2)/pow(velocity_mag,2)*log(velocity_mag/obs_velocity_mag);
     1646                        scale=-8*pow(meanvel,2)/pow(velocity_mag,2)*log(velocity_mag/obs_velocity_mag);
    16471647                        logarithmicx_list[i]=scale*vx_list[i];
    16481648                        logarithmicy_list[i]=scale*vy_list[i];
     
    17811781        /* node data: */
    17821782        const int    numgrids=3;
    1783         const int    numdofs=2*numgrids;
    17841783        const int    NDOF2=2;
     1784        const int    numdofs=NDOF2*numgrids;
    17851785        double       xyz_list[numgrids][3];
    17861786        int          doflist[numdofs];
     
    18231823
    18241824        /*element vector at the gaussian points: */
    1825         double  grade_g[numgrids];
     1825        double  grade_g[numdofs];
    18261826        double  grade_g_gaussian[numgrids];
    18271827
     
    19461946                GetNodalFunctions(l1l2l3, gauss_l1l2l3);
    19471947
    1948                 /*Build gradje_g_gaussian vector: */
     1948                /*Build gradje_g_gaussian vector (actually -dJ/ddrag): */
    19491949                for (i=0;i<numgrids;i++){
    1950                         grade_g_gaussian[i]=-2*drag*alpha_complement*( (lambda*vx+mu*vy))*Jdet*gauss_weight*l1l2l3[i];
     1950                        grade_g_gaussian[i]=2*drag*alpha_complement*( (lambda*vx+mu*vy))*Jdet*gauss_weight*l1l2l3[i];
    19511951                }
    19521952               
    19531953                /*Add gradje_g_gaussian vector to gradje_g: */
    1954                 for( i=0; i<numdofs; i++)grade_g[i]+=grade_g_gaussian[i];
     1954                for( i=0; i<numgrids; i++)grade_g[i*numberofdofspernode]+=grade_g_gaussian[i];
    19551955        }
    19561956
     
    20872087                #endif
    20882088
    2089                 /*Build gradje_g_gaussian vector: */
     2089                /*Build gradje_g_gaussian vector (actually -dJ/dB): */
    20902090                for (i=0;i<numgrids;i++){
    20912091                        grade_g_gaussian[i]=-viscosity2*thickness*( (2*dvx[0]+dvy[1])*2*dadjx[0]+(dvx[1]+dvy[0])*(dadjx[1]+dadjy[0])+(2*dvy[1]+dvx[0])*2*dadjy[1])*Jdet*gauss_weight*l1l2l3[i];
     
    21682168                obs_vx_list[i]=obs_velocity[doflist[i*numberofdofspernode+0]];
    21692169                obs_vy_list[i]=obs_velocity[doflist[i*numberofdofspernode+1]];
    2170 
    2171         }
    2172 
     2170        }
    21732171       
    21742172        /* Get gaussian points and weights (make this a statically initialized list of points? fstd): */
     
    21892187                gauss_l1l2l3[2]=*(third_gauss_area_coord+ig);
    21902188
    2191        
    21922189                /*Compute velocities at gaussian point: */
    21932190                GetParameterValue(&velocity_x, &vx_list[0],gauss_l1l2l3);
Note: See TracChangeset for help on using the changeset viewer.