Changeset 18241


Ignore:
Timestamp:
07/14/14 14:07:50 (11 years ago)
Author:
seroussi
Message:

NEW: preparing friction for LA

File:
1 edited

Legend:

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

    r18237 r18241  
    77#include "../cores/cores.h"
    88
    9 //#define FSANALYTICAL 24
     9//#define FSANALYTICAL 12
    1010
    1111/*Model processing*/
     
    32463246        /*Initialize Element matrix and vectors*/
    32473247        ElementMatrix* Ke = element->NewElementMatrix(FSvelocityEnum);
    3248         IssmDouble*    B  = xNew<IssmDouble>((dim-1)*numdof);
    3249         IssmDouble*    D  = xNewZeroInit<IssmDouble>((dim-1)*(dim-1));
     3248        IssmDouble*    B  = xNew<IssmDouble>(dim*numdof);
     3249        IssmDouble*    D  = xNewZeroInit<IssmDouble>(dim*dim);
    32503250
    32513251        /*Retrieve all inputs and parameters*/
     
    32713271                this->GetBFSFriction(B,element,dim,xyz_list_base,gauss);
    32723272                element->JacobianDeterminantBase(&Jdet,xyz_list_base,gauss);
    3273                 for(int i=0;i<dim-1;i++) D[i*(dim-1)+i] = alpha2*gauss->weight*Jdet; //taub_x = -alpha2 v_x (same for y)
    3274 
    3275                 TripleMultiply(B,dim-1,numdof,1,
    3276                                         D,dim-1,dim-1,0,
    3277                                         B,dim-1,numdof,0,
     3273                for(int i=0;i<dim;i++) D[i*dim+i] = alpha2*gauss->weight*Jdet; //taub_x = -alpha2 v_x (same for y)
     3274
     3275                TripleMultiply(B,dim,numdof,1,
     3276                                        D,dim,dim,0,
     3277                                        B,dim,numdof,0,
    32783278                                        &Ke->values[0],1);
    32793279        }
     
    33943394        /*Initialize Element matrix and vectors*/
    33953395        ElementMatrix* Ke = element->NewElementMatrix(FSvelocityEnum);
    3396         IssmDouble*    B  = xNew<IssmDouble>((dim-1)*numdof);
    3397         IssmDouble*    D  = xNewZeroInit<IssmDouble>((dim-1)*(dim-1));
     3396        IssmDouble*    B  = xNew<IssmDouble>(dim*numdof);
     3397        IssmDouble*    D  = xNewZeroInit<IssmDouble>(dim*dim);
    33983398
    33993399        /*Retrieve all inputs and parameters*/
     
    34313431                this->GetBFSFriction(B,element,dim,xyz_list_base,gauss);
    34323432                element->JacobianDeterminantBase(&Jdet,xyz_list_base,gauss);
    3433                 for(int i=0;i<dim-1;i++) D[i*(dim-1)+i] = alpha2*gauss->weight*Jdet; //taub_x = -alpha2 v_x (same for y)
    3434 
    3435                 TripleMultiply(B,dim-1,numdof,1,
    3436                                         D,dim-1,dim-1,0,
    3437                                         B,dim-1,numdof,0,
     3433                for(int i=0;i<dim;i++) D[i*dim+i] = alpha2*gauss->weight*Jdet; //taub_x = -alpha2 v_x (same for y)
     3434
     3435                TripleMultiply(B,dim,numdof,1,
     3436                                        D,dim,dim,0,
     3437                                        B,dim,numdof,0,
    34383438                                        &Ke->values[0],1);
    34393439        }
     
    44294429                        B[(vnumdof+pnumdof)*1+3*i+1] = vbasis[i];
    44304430                        B[(vnumdof+pnumdof)*1+3*i+2] = 0.;
     4431
     4432                        B[(vnumdof+pnumdof)*2+3*i+0] = 0.;
     4433                        B[(vnumdof+pnumdof)*2+3*i+1] = 0.;
     4434                        B[(vnumdof+pnumdof)*2+3*i+2] = vbasis[i];
    44314435                }
    44324436                for(int i=0;i<pnumnodes;i++){
     
    44374441        else{
    44384442                for(int i=0;i<vnumnodes;i++){
    4439                         B[2*i+0] = vbasis[i];
    4440                         B[2*i+1] = 0.;
     4443                        B[(vnumdof+pnumdof)*0+2*i+0] = vbasis[i];
     4444                        B[(vnumdof+pnumdof)*0+2*i+1] = 0.;
     4445
     4446                        B[(vnumdof+pnumdof)*1+2*i+0] = 0.;
     4447                        B[(vnumdof+pnumdof)*1+2*i+1] = vbasis[i];
    44414448                }
    44424449
Note: See TracChangeset for help on using the changeset viewer.