Changeset 786
- Timestamp:
- 06/04/09 17:09:02 (16 years ago)
- Location:
- issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp
r653 r786 17 17 18 18 19 int i ;19 int i,j; 20 20 int count; 21 21 22 22 DataSet* constraints = NULL; 23 23 Spc* spc = NULL; 24 Rgb* rgb = NULL; 24 25 25 26 /*spc intermediary data: */ … … 28 29 int spc_dof; 29 30 double spc_value; 31 32 /*rgb constructor data: */ 33 int rgb_id; 34 int rgb_dof; 35 int rgb_nodeid1; 36 int rgb_nodeid2; 37 int grid1,grid2; 30 38 31 39 double* dirichletvalues_diag=NULL; … … 81 89 } 82 90 91 /*Create penalties loads for linking of collapsed formulation grids with non collapsed grids: */ 92 93 /*First fetch penalties: */ 94 if (strcmp(model->meshtype,"3d")==0){ 95 ModelFetchData((void**)&model->penalties,&model->numpenalties,NULL,model_handle,"penalties","Matrix","Mat"); 96 } 97 98 count=0; 99 if(model->numpenalties){ 100 101 /*First deal with internal grids: */ 102 for (i=0;i<model->numpenalties;i++){ 103 if (model->penaltypartitioning[i]>=0){ //this penalty belongs to at least this CPU 104 105 for(j=1;j<model->numlayers;j++){ 106 /*We are pairing grids along a vertical profile.*/ 107 grid1=(int)*(model->penalties+model->numlayers*i); 108 grid2=(int)*(model->penalties+model->numlayers*i+j); 109 110 rgb_id=count+1; //matlab indexing 111 rgb_dof=1; 112 rgb_nodeid1=grid1; 113 rgb_nodeid2=grid2; 114 rgb= new Rgb(rgb_id,rgb_nodeid1,rgb_nodeid2,rgb_dof); 115 constraints->AddObject(rgb); 116 count++; 117 118 rgb_id=count+1; //matlab indexing 119 rgb_dof=2; 120 rgb_nodeid1=grid1; 121 rgb_nodeid2=grid2; 122 rgb= new Rgb(rgb_id,rgb_nodeid1,rgb_nodeid2,rgb_dof); 123 constraints->AddObject(rgb); 124 count++; 125 } //for ( i=0; i<numpenalties; i++) 126 } 127 } 128 } 129 130 /*Free data: */ 131 xfree((void**)&model->penalties); 132 83 133 /*All our datasets are already order by ids. Set presort flag so that later on, when sorting is requested on these 84 134 * datasets, it will not be redone: */ 85 135 constraints->Presort(); 86 87 136 88 137 /*Free data: */ -
issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp
r748 r786 78 78 79 79 /*penta constructor input: */ 80 81 80 int penta_id; 82 81 int penta_mid; -
issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp
r586 r786 153 153 xfree((void**)&model->bed); 154 154 155 156 /*Create penalties loads for linking of collapsed formulation grids with non collapsed grids: */157 158 /*First fetch penalties: */159 if (strcmp(model->meshtype,"3d")==0){160 ModelFetchData((void**)&model->penalties,&model->numpenalties,NULL,model_handle,"penalties","Matrix","Mat");161 }162 163 155 counter=0; 164 if(model->numpenalties){ 165 166 /*First deal with internal grids: */ 167 for (i=0;i<model->numpenalties;i++){ 168 if (model->penaltypartitioning[i]>=0){ //this penalty belongs to at least this CPU 169 170 for(j=0;j<model->numlayers-1;j++){ 171 172 /*We are pairing grids along a vertical profile.*/ 173 grid1=(int)*(model->penalties+model->numlayers*i+j); 174 grid2=(int)*(model->penalties+model->numlayers*i+j+1); 175 176 penpair_id=counter+1; //matlab indexing 177 penpair_dof=1; 178 penpair_node_ids[0]=grid1; 179 penpair_node_ids[1]=grid2; 180 penpair_penalty_offset=model->penalty_offset; 181 penpair_numdofs=1; 182 183 penpair= new Penpair(penpair_id,penpair_penalty_offset,penpair_penalty_lock,penpair_numdofs,penpair_node_ids,penpair_dof, 184 penpair_element_ids,penpair_friction,penpair_fill,penpair_normal,penpair_length); 185 loads->AddObject(penpair); 186 187 188 counter++; 189 190 penpair_id=counter+1; //matlab indexing 191 penpair_dof=2; 192 penpair_node_ids[0]=grid1; 193 penpair_node_ids[1]=grid2; 194 penpair_penalty_offset=model->penalty_offset; 195 penpair_numdofs=1; 196 197 penpair= new Penpair(penpair_id,penpair_penalty_offset,penpair_penalty_lock,penpair_numdofs,penpair_node_ids,penpair_dof, 198 penpair_element_ids,penpair_friction,penpair_fill,penpair_normal,penpair_length); 199 loads->AddObject(penpair); 200 201 202 counter++; 203 204 } //for ( i=0; i<numpenalties; i++) 205 } 206 } 207 } 208 209 /*Free data: */ 210 xfree((void**)&model->penalties); 211 156 212 157 /*Create penpair loads also for rift grids, so that they don't penetrate one another, if needed: */ 213 158 /*First fetch rifts: */
Note:
See TracChangeset
for help on using the changeset viewer.