Changeset 3811
- Timestamp:
- 05/18/10 12:19:45 (15 years ago)
- Location:
- issm/trunk/src
- Files:
-
- 26 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/DataSet/DataSet.cpp
r3802 r3811 680 680 681 681 element=(Element*)(*object); 682 element->Configure( loads,nodes,materials,parameters);682 element->Configure(elements,loads,nodes,materials,parameters); 683 683 } 684 684 if(EnumIsLoad((*object)->Enum())){ -
issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateElementsNodesAndMaterialsBalancedthickness.cpp
r3775 r3811 91 91 IoModelFetchData(&iomodel->accumulation_rate,NULL,NULL,iomodel_handle,"accumulation_rate"); 92 92 IoModelFetchData(&iomodel->dhdt,NULL,NULL,iomodel_handle,"dhdt"); 93 IoModelFetchData(&iomodel->upperelements,NULL,NULL,iomodel_handle,"upperelements"); 94 IoModelFetchData(&iomodel->lowerelements,NULL,NULL,iomodel_handle,"lowerelements"); 93 95 94 96 for (i=0;i<iomodel->numberofelements;i++){ … … 116 118 xfree((void**)&iomodel->accumulation_rate); 117 119 xfree((void**)&iomodel->dhdt); 120 xfree((void**)&iomodel->upperelements); 121 xfree((void**)&iomodel->lowerelements); 122 118 123 119 124 } //if (strcmp(meshtype,"2d")==0) -
issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateElementsNodesAndMaterialsBalancedvelocities.cpp
r3775 r3811 90 90 IoModelFetchData(&iomodel->melting_rate,NULL,NULL,iomodel_handle,"melting_rate"); 91 91 IoModelFetchData(&iomodel->accumulation_rate,NULL,NULL,iomodel_handle,"accumulation_rate"); 92 IoModelFetchData(&iomodel->upperelements,NULL,NULL,iomodel_handle,"upperelements"); 93 IoModelFetchData(&iomodel->lowerelements,NULL,NULL,iomodel_handle,"lowerelements"); 92 94 93 95 for (i=0;i<iomodel->numberofelements;i++){ … … 116 118 xfree((void**)&iomodel->melting_rate); 117 119 xfree((void**)&iomodel->accumulation_rate); 120 xfree((void**)&iomodel->upperelements); 121 xfree((void**)&iomodel->lowerelements); 122 118 123 119 124 } //if (strcmp(meshtype,"2d")==0) -
issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp
r3775 r3811 122 122 IoModelFetchData(&iomodel->weights,NULL,NULL,iomodel_handle,"weights"); 123 123 } 124 IoModelFetchData(&iomodel->upperelements,NULL,NULL,iomodel_handle,"upperelements"); 125 IoModelFetchData(&iomodel->lowerelements,NULL,NULL,iomodel_handle,"lowerelements"); 126 124 127 125 128 for (i=0;i<iomodel->numberofelements;i++){ … … 160 163 xfree((void**)&iomodel->weights); 161 164 } 165 xfree((void**)&iomodel->upperelements); 166 xfree((void**)&iomodel->lowerelements); 167 162 168 163 169 -
issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateElementsNodesAndMaterialsDiagnosticStokes.cpp
r3784 r3811 58 58 IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy"); 59 59 IoModelFetchData(&iomodel->vz,NULL,NULL,iomodel_handle,"vz"); 60 IoModelFetchData(&iomodel->upperelements,NULL,NULL,iomodel_handle,"upperelements"); 61 IoModelFetchData(&iomodel->lowerelements,NULL,NULL,iomodel_handle,"lowerelements"); 60 62 61 63 if (iomodel->control_analysis){ … … 105 107 xfree((void**)&iomodel->weights); 106 108 } 109 xfree((void**)&iomodel->upperelements); 110 xfree((void**)&iomodel->lowerelements); 111 107 112 108 113 /*Add new constrant material property to materials, at the end: */ -
issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateElementsNodesAndMaterialsDiagnosticVert.cpp
r3775 r3811 51 51 IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx"); 52 52 IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy"); 53 IoModelFetchData(&iomodel->upperelements,NULL,NULL,iomodel_handle,"upperelements"); 54 IoModelFetchData(&iomodel->lowerelements,NULL,NULL,iomodel_handle,"lowerelements"); 53 55 54 56 for (i=0;i<iomodel->numberofelements;i++){ … … 80 82 xfree((void**)&iomodel->vx); 81 83 xfree((void**)&iomodel->vy); 84 xfree((void**)&iomodel->upperelements); 85 xfree((void**)&iomodel->lowerelements); 82 86 83 87 /*Add new constrant material property to materials, at the end: */ -
issm/trunk/src/c/ModelProcessorx/Melting/CreateElementsNodesAndMaterialsMelting.cpp
r3775 r3811 50 50 IoModelFetchData(&iomodel->melting_rate,NULL,NULL,iomodel_handle,"melting_rate"); 51 51 IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,"elementonwater"); 52 IoModelFetchData(&iomodel->upperelements,NULL,NULL,iomodel_handle,"upperelements"); 53 IoModelFetchData(&iomodel->lowerelements,NULL,NULL,iomodel_handle,"lowerelements"); 52 54 53 55 for (i=0;i<iomodel->numberofelements;i++){ … … 81 83 xfree((void**)&iomodel->melting_rate); 82 84 xfree((void**)&iomodel->elementonwater); 85 xfree((void**)&iomodel->upperelements); 86 xfree((void**)&iomodel->lowerelements); 83 87 84 88 /*Add new constrant material property tgo materials, at the end: */ -
issm/trunk/src/c/ModelProcessorx/Prognostic/CreateElementsNodesAndMaterialsPrognostic.cpp
r3775 r3811 91 91 IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx"); 92 92 IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy"); 93 IoModelFetchData(&iomodel->upperelements,NULL,NULL,iomodel_handle,"upperelements"); 94 IoModelFetchData(&iomodel->lowerelements,NULL,NULL,iomodel_handle,"lowerelements"); 93 95 94 96 for (i=0;i<iomodel->numberofelements;i++){ … … 117 119 xfree((void**)&iomodel->vx); 118 120 xfree((void**)&iomodel->vy); 121 xfree((void**)&iomodel->upperelements); 122 xfree((void**)&iomodel->lowerelements); 123 119 124 120 125 } //if (strcmp(meshtype,"2d")==0) -
issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateElementsNodesAndMaterialsSlopeCompute.cpp
r3775 r3811 71 71 IoModelFetchData(&iomodel->elementonbed,NULL,NULL,iomodel_handle,"elementonbed"); 72 72 IoModelFetchData(&iomodel->elementonwater,NULL,NULL,iomodel_handle,"elementonwater"); 73 IoModelFetchData(&iomodel->upperelements,NULL,NULL,iomodel_handle,"upperelements"); 74 IoModelFetchData(&iomodel->lowerelements,NULL,NULL,iomodel_handle,"lowerelements"); 73 75 74 76 for (i=0;i<iomodel->numberofelements;i++){ … … 89 91 xfree((void**)&iomodel->elementonbed); 90 92 xfree((void**)&iomodel->elementonwater); 93 xfree((void**)&iomodel->upperelements); 94 xfree((void**)&iomodel->lowerelements); 91 95 92 96 } //if (strcmp(meshtype,"2d")==0) -
issm/trunk/src/c/ModelProcessorx/Thermal/CreateElementsNodesAndMaterialsThermal.cpp
r3775 r3811 53 53 IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx"); 54 54 IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy"); 55 IoModelFetchData(&iomodel->upperelements,NULL,NULL,iomodel_handle,"upperelements"); 56 IoModelFetchData(&iomodel->lowerelements,NULL,NULL,iomodel_handle,"lowerelements"); 55 57 56 58 for (i=0;i<iomodel->numberofelements;i++){ … … 85 87 xfree((void**)&iomodel->vx); 86 88 xfree((void**)&iomodel->vy); 89 xfree((void**)&iomodel->upperelements); 90 xfree((void**)&iomodel->lowerelements); 87 91 88 92 /*Add new constrant material property tgo materials, at the end: */ -
issm/trunk/src/c/objects/Elements/Beam.cpp
r3784 r3811 164 164 /*Object management*/ 165 165 /*FUNCTION Beam::Configure{{{1*/ 166 void Beam::Configure(DataSet* loadsin, DataSet* nodesin, DataSet* materialsin, Parameters* parametersin){166 void Beam::Configure(DataSet* elementsin,DataSet* loadsin, DataSet* nodesin, DataSet* materialsin, Parameters* parametersin){ 167 167 168 168 int i; -
issm/trunk/src/c/objects/Elements/Beam.h
r3783 r3811 49 49 int Id(); 50 50 int MyRank(); 51 void Configure(DataSet* loads,DataSet* nodes,DataSet* materials,Parameters* parameters);51 void Configure(DataSet* elements,DataSet* loads,DataSet* nodes,DataSet* materials,Parameters* parameters); 52 52 Object* copy(); 53 53 void SetClone(int* minranks); -
issm/trunk/src/c/objects/Elements/Element.h
r3717 r3811 24 24 25 25 virtual ~Element(){}; 26 virtual void Configure(DataSet* loads,DataSet* nodes,DataSet* materials,Parameters* parameters)=0;26 virtual void Configure(DataSet* elements,DataSet* loads,DataSet* nodes,DataSet* materials,Parameters* parameters)=0; 27 27 28 28 virtual void CreateKMatrix(Mat Kgg,int analysis_type,int sub_analysis_type)=0; -
issm/trunk/src/c/objects/Elements/Penta.cpp
r3808 r3811 26 26 this->matice=NULL; 27 27 this->matpar=NULL; 28 this->neighboors=NULL; 28 29 29 30 this->inputs=NULL; … … 44 45 int penta_matice_id; 45 46 int penta_matpar_id; 47 int penta_element_ids[2]; 46 48 double nodeinputs[6]; 47 49 bool collapse; … … 56 58 penta_matice_id=index+1; //refers to the corresponding ice material object 57 59 penta_matpar_id=iomodel->numberofelements+1; //refers to the constant material parameters object 60 penta_elements_ids[0]=(int)*(iomodel->upperelements[index]); 61 penta_elements_ids[1]=(int)*(iomodel->lowerelements[index]); 58 62 59 63 this->InitHookNodes(penta_node_ids); this->nodes=NULL; 60 64 this->InitHookMatice(penta_matice_id);this->matice=NULL; 61 65 this->InitHookMatpar(penta_matpar_id);this->matpar=NULL; 66 this->InitHookNeighboors(penta_element_ids);this->neighboors=NULL; 62 67 63 68 //intialize inputs, and add as many inputs per element as requested: … … 197 202 penta->hmatice.copy(&this->hmatice); 198 203 penta->hmatpar.copy(&this->hmatpar); 204 penta->hneighboors.copy(&this->hneighboors); 199 205 200 206 /*recover objects: */ … … 202 208 penta->matice=(Matice*)penta->hmatice.delivers(); 203 209 penta->matpar=(Matpar*)penta->hmatpar.delivers(); 210 penta->neighboors=(Penta**)penta->hneighboors.deliverp(); 204 211 205 212 return penta; … … 209 216 /*Object management: */ 210 217 /*FUNCTION Penta::Configure {{{1*/ 211 void Penta::Configure(DataSet* loadsin, DataSet* nodesin, DataSet* materialsin, Parameters* parametersin){218 void Penta::Configure(DataSet* elementsin, DataSet* loadsin, DataSet* nodesin, DataSet* materialsin, Parameters* parametersin){ 212 219 213 220 /*Take care of hooking up all objects for this element, ie links the objects in the hooks to their respective … … 216 223 this->hmatice.configure(materialsin); 217 224 this->hmatpar.configure(materialsin); 225 this->hneighboors.configure(elementsin); 218 226 219 227 /*Now, go pick up the objects inside the hooks: */ … … 221 229 this->matice=(Matice*)this->hmatice.delivers(); 222 230 this->matpar=(Matpar*)this->hmatpar.delivers(); 231 this->neighboors=(Penta**)this->hneighboors.deliverp(); 223 232 224 233 /*point parameters to real dataset: */ … … 245 254 hmatice.Demarshall(&marshalled_dataset); 246 255 hmatpar.Demarshall(&marshalled_dataset); 256 hneighboors.Demarshall(&marshalled_dataset); 247 257 248 258 /*pointers are garbabe, until configuration is carried out: */ … … 250 260 matice=NULL; 251 261 matpar=NULL; 262 neighboors=NULL; 252 263 253 264 /*demarshall inputs: */ … … 275 286 matice->DeepEcho(); 276 287 matpar->DeepEcho(); 288 printf(" neigboor ids: %i-%i\n",neigboors[0]->Id(),neigboors[1]->Id()); 277 289 printf(" parameters\n"); 278 290 parameters->DeepEcho(); … … 320 332 hmatice.Marshall(&marshalled_dataset); 321 333 hmatpar.Marshall(&marshalled_dataset); 334 hneighboors.Marshall(&marshalled_dataset); 322 335 323 336 /*Marshall inputs: */ … … 342 355 +hmatice.MarshallSize() 343 356 +hmatpar.MarshallSize() 357 +hneighboors.MarshallSize() 344 358 +inputs->MarshallSize() 345 359 +sizeof(int); //sizeof(int) for enum type -
issm/trunk/src/c/objects/Elements/Penta.h
r3805 r3811 27 27 public: 28 28 29 int id; 30 31 Node** nodes; // 6 nodes 32 Matice* matice; // 1 material ice 33 Matpar* matpar; // 1 material parameter 29 int id; 34 30 35 Parameters* parameters; //pointer to solution parameters 36 Inputs* inputs; 31 Node **nodes; // 6 nodes 32 Matice *matice; // 1 material ice 33 Matpar *matpar; // 1 material parameter 34 Penta *neighboors; // 2 neighboors: first one under, second one above 35 36 Parameters *parameters; //pointer to solution parameters 37 Inputs *inputs; 37 38 38 39 /*FUNCTION constructors, destructors {{{1*/ … … 42 43 /*}}}*/ 43 44 /*FUNCTION object management {{{1*/ 44 void Configure(DataSet* loads,DataSet* nodes,DataSet* materials,Parameters* parameters);45 void Configure(DataSet* elements,DataSet* loads,DataSet* nodes,DataSet* materials,Parameters* parameters); 45 46 Object* copy(); 46 47 void DeepEcho(); -
issm/trunk/src/c/objects/Elements/PentaHook.cpp
r3805 r3811 45 45 } 46 46 47 /*FUNCTION PentaHook::InitHookNeighboors(int* element_ids){{{1*/ 48 void PentaHook::InitHookNeighboors(int* element_ids){ 49 this->hneighboors.Init(element_ids,2); 50 51 } 52 /*}}}*/ -
issm/trunk/src/c/objects/Elements/PentaHook.h
r3805 r3811 14 14 Hook hmatice; // 1 ice material 15 15 Hook hmatpar; // 1 material parameter 16 Hook hneighboors // 2 elements, first down, second up 16 17 17 18 … … 22 23 void InitHookMatice(int matice_id); 23 24 void InitHookMatpar(int matpar_id); 25 void InitHookNeighboors(int* element_ids); 24 26 /*}}}*/ 25 27 -
issm/trunk/src/c/objects/Elements/Sing.cpp
r3803 r3811 106 106 /*Object management*/ 107 107 /*FUNCTION Sing::Configure {{{1*/ 108 void Sing::Configure(DataSet* loadsin, DataSet* nodesin, DataSet* materialsin, Parameters* parametersin){108 void Sing::Configure(DataSet* elementsin,DataSet* loadsin, DataSet* nodesin, DataSet* materialsin, Parameters* parametersin){ 109 109 110 110 int i; -
issm/trunk/src/c/objects/Elements/Sing.h
r3783 r3811 41 41 /*}}}*/ 42 42 /*object management: {{{1*/ 43 void Configure(DataSet* loads,DataSet* nodes,DataSet* materials,Parameters* parameters);43 void Configure(DataSet* elements,DataSet* loads,DataSet* nodes,DataSet* materials,Parameters* parameters); 44 44 Object* copy(); 45 45 void DeepEcho(); -
issm/trunk/src/c/objects/Elements/Tria.cpp
r3808 r3811 211 211 /*Object management: */ 212 212 /*FUNCTION Tria::Configure {{{1*/ 213 void Tria::Configure(DataSet* loadsin, DataSet* nodesin, DataSet* materialsin, Parameters* parametersin){213 void Tria::Configure(DataSet* elementsin, DataSet* loadsin, DataSet* nodesin, DataSet* materialsin, Parameters* parametersin){ 214 214 215 215 /*Take care of hooking up all objects for this element, ie links the objects in the hooks to their respective -
issm/trunk/src/c/objects/Elements/Tria.h
r3808 r3811 40 40 /*}}}*/ 41 41 /*FUNCTION object management {{{1*/ 42 void Configure(DataSet* loads,DataSet* nodes,DataSet* materials,Parameters* parameters);42 void Configure(DataSet* elements,DataSet* loads,DataSet* nodes,DataSet* materials,Parameters* parameters); 43 43 Object* copy(); 44 44 void DeepEcho(); -
issm/trunk/src/c/objects/IoModel.cpp
r3775 r3811 45 45 xfree((void**)&this->deadgrids); 46 46 xfree((void**)&this->uppernodes); 47 xfree((void**)&this->upperelements); 48 xfree((void**)&this->lowerelements); 47 49 xfree((void**)&this->gridonpattyn); 48 50 } … … 248 250 this->numlayers=0; 249 251 this->uppernodes=NULL; 252 this->upperelements=NULL; 253 this->lowerelements=NULL; 250 254 this->gridonhutter=NULL; 251 255 this->gridonmacayeal=NULL; -
issm/trunk/src/c/objects/IoModel.h
r3775 r3811 42 42 int numlayers; 43 43 double* uppernodes; 44 double* upperelements; 44 45 45 46 /*elements type: */ -
issm/trunk/src/m/classes/@model/model.m
r3612 r3811 88 88 %Projections 89 89 md.uppergrids=NaN; 90 md.upperelements=NaN; 91 md.lowerelements=NaN; 90 92 md.lowergrids=NaN; 91 93 md.deadgrids=NaN; -
issm/trunk/src/m/classes/public/extrude.m
r3760 r3811 103 103 md.uppergrids=uppergrids; 104 104 105 %same for lower and upper elements 106 lowerelements=NaN*ones(number_el3d,1); 107 upperelements=NaN*ones(number_el3d,1); 108 lowerelements(md.numberofelements+1:end)=1:(numlayers-2)*md.numberofelements; 109 upperelements(1:(numlayers-2)*md.numberofelements)=md.numberofelements+1:(numlayers-1)*md.numberofelements; 110 md.lowerelements=lowerelements; 111 md.upperelements=upperelements; 112 113 114 105 115 %Save old mesh 106 116 md.x2d=md.x; -
issm/trunk/src/m/classes/public/marshall.m
r3759 r3811 44 44 end 45 45 WriteData(fid,md.uppergrids,'Mat','uppergrids'); 46 WriteData(fid,md.upperelements,'Mat','upperelements'); 47 WriteData(fid,md.lowerelements,'Mat','lowerelements'); 46 48 WriteData(fid,md.elementonbed,'Mat','elementonbed'); 47 49 WriteData(fid,md.elementonsurface,'Mat','elementonsurface');
Note:
See TracChangeset
for help on using the changeset viewer.