Changeset 391
- Timestamp:
- 05/13/09 11:55:20 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/objects/Tria.cpp
r383 r391 1624 1624 /*We are using an absolute misfit: */ 1625 1625 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]; 1628 1628 } 1629 1629 } … … 1635 1635 if(obs_vx_list[i]==0)scalex=0; 1636 1636 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]); 1639 1639 } 1640 1640 } … … 1644 1644 velocity_mag=sqrt(pow(vx_list[i],2)+pow(vy_list[i],2))+epsvel; //epsvel to avoid velocity being nil. 1645 1645 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); 1647 1647 logarithmicx_list[i]=scale*vx_list[i]; 1648 1648 logarithmicy_list[i]=scale*vy_list[i]; … … 1781 1781 /* node data: */ 1782 1782 const int numgrids=3; 1783 const int numdofs=2*numgrids;1784 1783 const int NDOF2=2; 1784 const int numdofs=NDOF2*numgrids; 1785 1785 double xyz_list[numgrids][3]; 1786 1786 int doflist[numdofs]; … … 1823 1823 1824 1824 /*element vector at the gaussian points: */ 1825 double grade_g[num grids];1825 double grade_g[numdofs]; 1826 1826 double grade_g_gaussian[numgrids]; 1827 1827 … … 1946 1946 GetNodalFunctions(l1l2l3, gauss_l1l2l3); 1947 1947 1948 /*Build gradje_g_gaussian vector : */1948 /*Build gradje_g_gaussian vector (actually -dJ/ddrag): */ 1949 1949 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]; 1951 1951 } 1952 1952 1953 1953 /*Add gradje_g_gaussian vector to gradje_g: */ 1954 for( i=0; i<num dofs; i++)grade_g[i]+=grade_g_gaussian[i];1954 for( i=0; i<numgrids; i++)grade_g[i*numberofdofspernode]+=grade_g_gaussian[i]; 1955 1955 } 1956 1956 … … 2087 2087 #endif 2088 2088 2089 /*Build gradje_g_gaussian vector : */2089 /*Build gradje_g_gaussian vector (actually -dJ/dB): */ 2090 2090 for (i=0;i<numgrids;i++){ 2091 2091 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]; … … 2168 2168 obs_vx_list[i]=obs_velocity[doflist[i*numberofdofspernode+0]]; 2169 2169 obs_vy_list[i]=obs_velocity[doflist[i*numberofdofspernode+1]]; 2170 2171 } 2172 2170 } 2173 2171 2174 2172 /* Get gaussian points and weights (make this a statically initialized list of points? fstd): */ … … 2189 2187 gauss_l1l2l3[2]=*(third_gauss_area_coord+ig); 2190 2188 2191 2192 2189 /*Compute velocities at gaussian point: */ 2193 2190 GetParameterValue(&velocity_x, &vx_list[0],gauss_l1l2l3);
Note:
See TracChangeset
for help on using the changeset viewer.