Changeset 16908


Ignore:
Timestamp:
11/23/13 20:22:24 (11 years ago)
Author:
seroussi
Message:

BUG: fixed SSAHO PVector Coupling Viscous

Location:
issm/trunk-jpl/src/c
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp

    r16907 r16908  
    30963096
    30973097        /*Constants*/
    3098         int numnodes = 2*element->GetNumberOfNodes();
     3098        int numnodes    = element->GetNumberOfNodes();
    30993099        int numdofm     = 1 *numnodes; //*2/2
    31003100        int numdofp     = 2 *numnodes;
     
    31113111        IssmDouble* Ke_gg          = xNewZeroInit<IssmDouble>(numdofp*numdofm);
    31123112        IssmDouble* Ke_gg_gaussian = xNew<IssmDouble>(numdofp*numdofm);
    3113         Node        *node_list[numnodes];
    3114         int         cs_list[numnodes];
     3113        Node        *node_list[2*numnodes];
     3114        int*         cs_list= xNew<int>(2*numnodes);
    31153115
    31163116        /*Find penta on bed as HO must be coupled to the dofs on the bed: */
     
    31503150                element->JacobianDeterminant(&Jdet, xyz_list,gauss);
    31513151                this->GetBSSAHO(B, element,xyz_list, gauss);
    3152                 //basaltria->GetBprimeSSA(Bprime, xyz_list, gauss_tria); /FIXME
    31533152                this->GetBSSAprime(Bprime, basaltria,xyz_list, gauss_tria);
    31543153                element->ViscosityHO(&viscosity,xyz_list,gauss,vx_input,vy_input);
     
    31643163                                        Ke_gg_gaussian,0);
    31653164
    3166                 for( i=0; i<numdofp; i++) for(j=0;j<numdofm; j++) Ke_gg[i*numdofp+j]+=Ke_gg_gaussian[i*numdofp+j];
     3165                for( i=0; i<numdofp; i++) for(j=0;j<numdofm; j++) Ke_gg[i*numdofm+j]+=Ke_gg_gaussian[i*numdofm+j];
    31673166        }
    3168         for(i=0;i<numdofp;i++) for(j=0;j<numdofm;j++) Ke->values[(i+2*numdofm)*numdoftotal+j]+=Ke_gg[i*numdofp+j];
    3169         for(i=0;i<numdofm;i++) for(j=0;j<numdofp;j++) Ke->values[i*numdoftotal+(j+2*numdofm)]+=Ke_gg[j*numdofp+i];
     3167        for(i=0;i<numdofp;i++) for(j=0;j<numdofm;j++) Ke->values[(i+2*numdofm)*numdoftotal+j]+=Ke_gg[i*numdofm+j];
     3168        for(i=0;i<numdofm;i++) for(j=0;j<numdofp;j++) Ke->values[i*numdoftotal+(j+2*numdofm)]+=Ke_gg[j*numdofm+i];
    31703169
    31713170        /*Transform Coordinate System*/
    3172         element->TransformStiffnessMatrixCoord(Ke,node_list,numnodes,cs_list);
     3171        element->TransformStiffnessMatrixCoord(Ke,node_list,2*numnodes,cs_list);
    31733172
    31743173        /*Clean-up and return*/
    31753174        basaltria->DeleteMaterials(); delete basaltria;
     3175       
    31763176        delete gauss;
    31773177        delete gauss_tria;
     3178        xDelete<IssmDouble>(Ke_gg);
     3179        xDelete<IssmDouble>(Ke_gg_gaussian);
     3180        xDelete<int>(cs_list);
    31783181        return Ke;
    31793182
     
    32113214        /*Build B: */
    32123215        for(int i=0;i<numnodes;i++){
    3213                 B[2*numnodes*0+2*i+0] = dbasis[0*3+i];
     3216                B[2*numnodes*0+2*i+0] = dbasis[0*numnodes+i];
    32143217                B[2*numnodes*0+2*i+1] = 0.;
    32153218                B[2*numnodes*1+2*i+0] = 0.;
    3216                 B[2*numnodes*1+2*i+1] = dbasis[1*3+i];
    3217                 B[2*numnodes*2+2*i+0] = .5*dbasis[1*3+i];
    3218                 B[2*numnodes*2+2*i+1] = .5*dbasis[0*3+i];
     3219                B[2*numnodes*1+2*i+1] = dbasis[1*numnodes+i];
     3220                B[2*numnodes*2+2*i+0] = .5*dbasis[1*numnodes+i];
     3221                B[2*numnodes*2+2*i+1] = .5*dbasis[0*numnodes+i];
    32193222        }
    32203223
  • TabularUnified issm/trunk-jpl/src/c/classes/Elements/Penta.cpp

    r16907 r16908  
    13281328/*FUNCTION Penta::GetNode(int node_number) {{{*/
    13291329Node* Penta::GetNode(int node_number){
     1330        _assert_(node_number>=0);
     1331        _assert_(node_number<this->NumberofNodes());
    13301332        return this->nodes[node_number];
    13311333}
Note: See TracChangeset for help on using the changeset viewer.