Changeset 2496
- Timestamp:
- 10/22/09 15:53:48 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/ProcessParamsx/ProcessParamsx.cpp
r2333 r2496 28 28 int i,j,k; 29 29 int ndof; 30 int param_type; 30 31 31 32 /*processing of parameters: */ … … 41 42 for(i=0;i<parameters->Size();i++){ 42 43 43 Param* param=(Param*)parameters->GetObjectByOffset(i);44 param_type=parameters->GetEnum(i); 44 45 45 if (param->GetType()==DOUBLEVEC){46 if(param_type==ParamEnum()){ 46 47 47 ndof=param->GetNdof();48 Param* param=(Param*)parameters->GetObjectByOffset(i); 48 49 49 if ( ndof!=0){ /*ok, we are dealing with a parameter that needs to be repartitioned, for ndof degrees of freedom: */50 if (param->GetType()==DOUBLEVEC){ 50 51 51 new_parameter=(double*)xcalloc(numberofnodes*ndof,sizeof(double)); 52 param->GetParameterValue(¶meter); 52 ndof=param->GetNdof(); 53 53 54 for(j=0;j<ndof;j++){54 if (ndof!=0){ /*ok, we are dealing with a parameter that needs to be repartitioned, for ndof degrees of freedom: */ 55 55 56 for(k=0;k<numberofnodes;k++){ 57 58 new_parameter[(int)(ndof*partition[k]+j)]=parameter[ndof*k+j]; 56 new_parameter=(double*)xcalloc(numberofnodes*ndof,sizeof(double)); 57 param->GetParameterValue(¶meter); 58 59 for(j=0;j<ndof;j++){ 60 61 for(k=0;k<numberofnodes;k++){ 62 63 new_parameter[(int)(ndof*partition[k]+j)]=parameter[ndof*k+j]; 64 65 } 59 66 60 67 } 68 69 70 /*Now, replace old parameter with new parameter: */ 71 param->SetDoubleVec(new_parameter,ndof*numberofnodes,ndof); 72 73 /*Free ressources: */ 74 xfree((void**)&new_parameter); 75 xfree((void**)¶meter); 61 76 62 77 } 63 64 65 /*Now, replace old parameter with new parameter: */66 param->SetDoubleVec(new_parameter,ndof*numberofnodes,ndof);67 68 /*Free ressources: */69 xfree((void**)&new_parameter);70 xfree((void**)¶meter);71 72 78 } 73 79 }
Note:
See TracChangeset
for help on using the changeset viewer.