Changeset 257
- Timestamp:
- 05/06/09 11:42:13 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/objects/Input.cpp
r247 r257 120 120 121 121 122 void Input::Recover(double* values , int ndof, int* dofs,int numnodes,void** vpnodes){122 void Input::Recover(double* valuesin, int ndofin, int* dofsin,int numnodesin,void** vpnodesin){ 123 123 124 124 //ex: … … 133 133 int dof; 134 134 int i,j; 135 135 136 Node** nodes=NULL; 136 137 Node* node=NULL; 137 138 138 139 /*recover pointer to nodes: */ 139 nodes=(Node**)vpnodes ;140 nodes=(Node**)vpnodesin; 140 141 141 142 if (type!=DOUBLEVEC) throw ErrorException(__FUNCT__,exprintf("%s%i%s"," cannot recover values from a ",type," input type")); … … 143 144 /*Ok, we are trying to fill values. values is of size ndof*numnodes. The dofs 144 145 * 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++){ 148 149 node=nodes[i]; 149 150 … … 151 152 dof1=node->GetDoflist1(); 152 153 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; 156 157 } 157 158 } 158 159 159 for(i=0;i<ndof *numnodes;i++){160 for(i=0;i<ndofin*numnodesin;i++){ 160 161 values[i]=vector[doflist[i]]; 161 162 }
Note:
See TracChangeset
for help on using the changeset viewer.