Changeset 257


Ignore:
Timestamp:
05/06/09 11:42:13 (16 years ago)
Author:
Eric.Larour
Message:

bug fix: ndof was getting clobbered

File:
1 edited

Legend:

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

    r247 r257  
    120120               
    121121
    122 void  Input::Recover(double* values, int ndof, int* dofs,int numnodes,void** vpnodes){
     122void  Input::Recover(double* valuesin, int ndofin, int* dofsin,int numnodesin,void** vpnodesin){
    123123
    124124        //ex:
     
    133133        int  dof;
    134134        int  i,j;
     135       
    135136        Node** nodes=NULL;
    136137        Node* node=NULL;
    137138
    138139        /*recover pointer to nodes: */
    139         nodes=(Node**)vpnodes;
     140        nodes=(Node**)vpnodesin;
    140141       
    141142        if (type!=DOUBLEVEC) throw ErrorException(__FUNCT__,exprintf("%s%i%s"," cannot recover values from a ",type," input type"));
     
    143144        /*Ok, we are trying to fill values. values is of size ndof*numnodes.  The dofs
    144145         * for picking up the values are found in the numnodes nodes. We firt build the dof list: */
    145         doflist=(int*)xmalloc(ndof*numnodes*sizeof(int));
    146 
    147         for(i=0;i<numnodes;i++){
     146        doflist=(int*)xmalloc(ndofin*numnodesin*sizeof(int));
     147
     148        for(i=0;i<numnodesin;i++){
    148149                node=nodes[i];
    149150
     
    151152                dof1=node->GetDoflist1();
    152153
    153                 for(j=0;j<ndof;j++){
    154                         dof=dofs[j];
    155                         doflist[i*ndof+j]=dof1*ndof+dof;
     154                for(j=0;j<ndofin;j++){
     155                        dof=dofsin[j];
     156                        doflist[i*ndofin+j]=dof1*ndof+dof;
    156157                }
    157158        }
    158159       
    159         for(i=0;i<ndof*numnodes;i++){
     160        for(i=0;i<ndofin*numnodesin;i++){
    160161                values[i]=vector[doflist[i]];
    161162        }
Note: See TracChangeset for help on using the changeset viewer.