Changeset 18521
- Timestamp:
- 09/15/14 16:17:28 (11 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 74 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp
r18517 r18521 880 880 /*Drain excess water fraction in ice column: */ 881 881 for(i=0;i<femmodel->elements->Size();i++){ 882 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));882 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 883 883 DrainWaterfractionIcecolumn(element); 884 884 } … … 888 888 /*Compute basal melting rates: */ 889 889 for(i=0;i<femmodel->elements->Size();i++){ 890 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));890 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 891 891 ComputeBasalMeltingrate(element); 892 892 } … … 898 898 if(solution_type==TransientSolutionEnum){ 899 899 for(i=0;i<femmodel->elements->Size();i++){ 900 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));900 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 901 901 UpdateBasalConstraints(element); 902 902 } -
issm/trunk-jpl/src/c/analyses/ExtrapolationAnalysis.cpp
r18057 r18521 350 350 351 351 for(int i=0;i<femmodel->elements->Size();i++){ 352 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));352 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 353 353 this->SetConstraintsOnIce(element); 354 354 } -
issm/trunk-jpl/src/c/analyses/FreeSurfaceBaseAnalysis.cpp
r18074 r18521 377 377 for(int i=0;i<femmodel->elements->Size();i++){ 378 378 379 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));379 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 380 380 if(!element->IsOnBase()) continue; 381 381 -
issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp
r18183 r18521 692 692 693 693 for(int i=0;i<femmodel->elements->Size();i++){ 694 element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));694 element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 695 695 696 696 int numvertices = element->GetNumberOfVertices(); -
issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp
r18057 r18521 399 399 /* set NaN on elements intersected by zero levelset */ 400 400 for(i=0;i<femmodel->elements->Size();i++){ 401 element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));401 element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 402 402 if(element->IsZeroLevelset(MaskIceLevelsetEnum)) 403 403 for(k=0;k<element->GetNumberOfVertices();k++) … … 407 407 /* set distance on elements intersected by zero levelset */ 408 408 for(i=0;i<femmodel->elements->Size();i++){ 409 element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));409 element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 410 410 if(element->IsZeroLevelset(MaskIceLevelsetEnum)){ 411 411 SetDistanceToZeroLevelsetElement(vec_dist_zerolevelset, element); -
issm/trunk-jpl/src/c/analyses/LsfReinitializationAnalysis.cpp
r18057 r18521 369 369 /* deactivate all spcs */ 370 370 for(i=0;i<femmodel->elements->Size();i++){ 371 element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));371 element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 372 372 for(k=0;k<element->GetNumberOfNodes();k++){ 373 373 node=element->GetNode(k); … … 382 382 /* reactivate spcs on elements intersected by zero levelset */ 383 383 for(i=0;i<femmodel->elements->Size();i++){ 384 element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));384 element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 385 385 if(element->IsZeroLevelset(MaskIceLevelsetEnum)){ 386 386 /*iterate over nodes and set spc */ … … 414 414 /* set distance on elements intersected by zero levelset */ 415 415 for(i=0;i<femmodel->elements->Size();i++){ 416 element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));416 element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 417 417 if(element->IsZeroLevelset(MaskIceLevelsetEnum)){ 418 418 SetDistanceToZeroLevelsetElement(vec_dist_zerolevelset, element); -
issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
r18389 r18521 796 796 /*Create and assemble matrix*/ 797 797 for(int i=0;i<femmodel->elements->Size();i++){ 798 Element* element = dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));798 Element* element = xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 799 799 ElementMatrix* MLe = this->CreateMassMatrix(element); 800 800 if(MLe){ … … 817 817 /*Create and assemble matrix*/ 818 818 for(int i=0;i<femmodel->elements->Size();i++){ 819 Element* element = dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));819 Element* element = xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 820 820 ElementMatrix* MLe = this->CreateMassMatrix(element); 821 821 if(MLe){ … … 880 880 /*Create and assemble matrix*/ 881 881 for(int i=0;i<femmodel->elements->Size();i++){ 882 Element* element = dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));882 Element* element = xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 883 883 ElementMatrix* Ke = this->CreateFctKMatrix(element); 884 884 if(Ke) Ke->AddToGlobal(Kff,Kfs); -
issm/trunk-jpl/src/c/analyses/SeaiceAnalysis.cpp
r18520 r18521 372 372 mask=new Vector<IssmDouble>(femmodel->nodes->NumberOfNodes(SeaiceAnalysisEnum)); 373 373 for (int i=0;i<femmodel->elements->Size();i++){ 374 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));374 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 375 375 376 376 /*Get current concentration of element and decide whether it is an active element*/ … … 390 390 int counter =0; 391 391 for(int i=0;i<femmodel->nodes->Size();i++){ 392 Node* node= dynamic_cast<Node*>(femmodel->nodes->GetObjectByOffset(i));392 Node* node=xDynamicCast<Node*>(femmodel->nodes->GetObjectByOffset(i)); 393 393 if(node->InAnalysis(SeaiceAnalysisEnum)){ 394 394 if(serial_mask[node->Sid()]==1.){ … … 552 552 /*Loop over the elements of this partition and update accordingly*/ 553 553 for(int i=0;i<femmodel->elements->Size();i++){ 554 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));554 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 555 555 556 556 /*Get Mohr-Coulomb parameters*/ … … 644 644 /*Loop over the elements of this partition and update accordingly*/ 645 645 for(int i=0;i<femmodel->elements->Size();i++){ 646 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));646 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 647 647 648 648 /*Get some inputs needed for the update*/ -
issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
r18474 r18521 5032 5032 5033 5033 for(int i=0;i<elements->Size();i++){ 5034 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));5034 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 5035 5035 5036 5036 /*Get inputs and parameters*/ … … 5206 5206 5207 5207 for(int i=0;i<elements->Size();i++){ 5208 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));5208 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 5209 5209 5210 5210 /*Get inputs and parameters*/ … … 5419 5419 5420 5420 for(int i=0;i<elements->Size();i++){ 5421 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));5421 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 5422 5422 5423 5423 /*Get inputs and parameters*/ … … 6788 6788 /*Cast gauss to GaussPenta*/ 6789 6789 _assert_(gauss_in->Enum()==GaussPentaEnum); 6790 GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in);6790 GaussPenta* gauss = xDynamicCast<GaussPenta*>(gauss_in); 6791 6791 6792 6792 /*Get basis in actual coordinate system: */ … … 6837 6837 /*Cast gauss to GaussPenta*/ 6838 6838 _assert_(gauss_in->Enum()==GaussPentaEnum); 6839 GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in);6839 GaussPenta* gauss = xDynamicCast<GaussPenta*>(gauss_in); 6840 6840 6841 6841 /*Get basis in actual coordinate system: */ … … 6936 6936 /*Cast gauss to GaussPenta*/ 6937 6937 _assert_(gauss_in->Enum()==GaussPentaEnum); 6938 GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in);6938 GaussPenta* gauss = xDynamicCast<GaussPenta*>(gauss_in); 6939 6939 6940 6940 /*Get basis in actual coordinate system: */ … … 6974 6974 /*Cast gauss to GaussPenta*/ 6975 6975 _assert_(gauss_in->Enum()==GaussPentaEnum); 6976 GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in);6976 GaussPenta* gauss = xDynamicCast<GaussPenta*>(gauss_in); 6977 6977 6978 6978 /*Get basis in actual coordinate system: */ -
issm/trunk-jpl/src/c/classes/Elements/Elements.cpp
r18237 r18521 41 41 for ( object=objects.begin() ; object < objects.end(); object++ ){ 42 42 43 element= dynamic_cast<Element*>((*object));43 element=xDynamicCast<Element*>((*object)); 44 44 element->Configure(elements,loads,nodes,vertices,materials,parameters); 45 45 … … 55 55 for ( object=objects.begin() ; object < objects.end(); object++ ){ 56 56 57 element= dynamic_cast<Element*>((*object));57 element=xDynamicCast<Element*>((*object)); 58 58 element->SetCurrentConfiguration(elements,loads,nodes,materials,parameters); 59 59 … … 69 69 for ( object=objects.begin() ; object < objects.end(); object++ ){ 70 70 71 element= dynamic_cast<Element*>((*object));71 element=xDynamicCast<Element*>((*object)); 72 72 element->ResetHooks(); 73 73 … … 85 85 for(int i=0;i<this->Size();i++){ 86 86 87 Element* element= dynamic_cast<Element*>(this->GetObjectByOffset(i));87 Element* element=xDynamicCast<Element*>(this->GetObjectByOffset(i)); 88 88 numnodes=element->GetNumberOfNodes(); 89 89 if(numnodes>max)max=numnodes; … … 111 111 112 112 for(int i=0;i<this->Size();i++){ 113 Element* element= dynamic_cast<Element*>(this->GetObjectByOffset(i));113 Element* element=xDynamicCast<Element*>(this->GetObjectByOffset(i)); 114 114 element->InputDuplicate(input_enum,output_enum); 115 115 } -
issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
r18474 r18521 1970 1970 tria->parameters=this->parameters; 1971 1971 tria->element_type=P1Enum; //Only P1 CG for now (TO BE CHANGED) 1972 this->SpawnTriaHook( dynamic_cast<ElementHook*>(tria),index1,index2,index3);1972 this->SpawnTriaHook(xDynamicCast<ElementHook*>(tria),index1,index2,index3); 1973 1973 1974 1974 /*Spawn material*/ -
issm/trunk-jpl/src/c/classes/Elements/PentaRef.cpp
r18474 r18521 48 48 /*Cast gauss to GaussPenta*/ 49 49 _assert_(gauss_in->Enum()==GaussPentaEnum); 50 GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in);50 GaussPenta* gauss = xDynamicCast<GaussPenta*>(gauss_in); 51 51 52 52 /*Figure out xi,eta and zi (parametric coordinates), for this gaussian point: */ … … 160 160 /*Cast gauss to GaussPenta*/ 161 161 _assert_(gauss_in->Enum()==GaussPentaEnum); 162 GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in);162 GaussPenta* gauss = xDynamicCast<GaussPenta*>(gauss_in); 163 163 164 164 /*Get current coordinates in reference element*/ … … 365 365 /*Cast gauss to GaussPenta*/ 366 366 _assert_(gauss_in->Enum()==GaussPentaEnum); 367 GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in);367 GaussPenta* gauss = xDynamicCast<GaussPenta*>(gauss_in); 368 368 369 369 /*Get current coordinates in reference element*/ -
issm/trunk-jpl/src/c/classes/Elements/Tetra.cpp
r18239 r18521 824 824 tria->parameters=this->parameters; 825 825 tria->element_type=P1Enum; //Only P1 CG for now (TO BE CHANGED) 826 this->SpawnTriaHook( dynamic_cast<ElementHook*>(tria),index1,index2,index3);826 this->SpawnTriaHook(xDynamicCast<ElementHook*>(tria),index1,index2,index3); 827 827 828 828 /*Spawn material*/ -
issm/trunk-jpl/src/c/classes/Elements/TetraRef.cpp
r18179 r18521 37 37 /*Cast gauss to GaussTetra*/ 38 38 _assert_(gauss_in->Enum()==GaussTetraEnum); 39 GaussTetra* gauss = dynamic_cast<GaussTetra*>(gauss_in);39 GaussTetra* gauss = xDynamicCast<GaussTetra*>(gauss_in); 40 40 41 41 switch(finiteelement){ -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r18476 r18521 1796 1796 seg->parameters=this->parameters; 1797 1797 seg->element_type=P1Enum; //Only P1 CG for now (TO BE CHANGED) 1798 this->SpawnSegHook( dynamic_cast<ElementHook*>(seg),index1,index2);1798 this->SpawnSegHook(xDynamicCast<ElementHook*>(seg),index1,index2); 1799 1799 1800 1800 /*Spawn material*/ -
issm/trunk-jpl/src/c/classes/Elements/TriaRef.cpp
r18474 r18521 146 146 /*Cast gauss to GaussTria*/ 147 147 _assert_(gauss_in->Enum()==GaussTriaEnum); 148 GaussTria* gauss = dynamic_cast<GaussTria*>(gauss_in);148 GaussTria* gauss = xDynamicCast<GaussTria*>(gauss_in); 149 149 150 150 switch(finiteelement){ … … 271 271 /*Cast gauss to GaussTria*/ 272 272 _assert_(gauss_in->Enum()==GaussTriaEnum); 273 GaussTria* gauss = dynamic_cast<GaussTria*>(gauss_in);273 GaussTria* gauss = xDynamicCast<GaussTria*>(gauss_in); 274 274 275 275 switch(finiteelement){ -
issm/trunk-jpl/src/c/classes/ExternalResults/Results.cpp
r18064 r18521 41 41 42 42 for(int i=0;i<this->Size();i++){ 43 ExternalResult* result= dynamic_cast<ExternalResult*>(this->GetObjectByOffset(i));43 ExternalResult* result=xDynamicCast<ExternalResult*>(this->GetObjectByOffset(i)); 44 44 result->WriteData(fid,io_gather); 45 45 } … … 57 57 58 58 for(int i=0;i<this->Size();i++){ 59 ExternalResult* result= dynamic_cast<ExternalResult*>(this->GetObjectByOffset(i));59 ExternalResult* result=xDynamicCast<ExternalResult*>(this->GetObjectByOffset(i)); 60 60 61 61 if(result->GetStep()==in_result->GetStep()){ … … 81 81 82 82 for(int i=0;i<this->Size();i++){ 83 ExternalResult* result= dynamic_cast<ExternalResult*>(this->GetObjectByOffset(i));83 ExternalResult* result=xDynamicCast<ExternalResult*>(this->GetObjectByOffset(i)); 84 84 85 85 if(result->GetStep()==result_step){ -
issm/trunk-jpl/src/c/classes/FemModel.cpp
r18476 r18521 603 603 /*Get interpolation (and compute input if necessary)*/ 604 604 for(int j=0;j<elements->Size();j++){ 605 Element* element= dynamic_cast<Element*>(this->elements->GetObjectByOffset(j));605 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(j)); 606 606 element->ResultInterpolation(&rank_interpolation,&rank_nodesperelement,output_enum); 607 607 } … … 622 622 /*Fill-in matrix*/ 623 623 for(int j=0;j<elements->Size();j++){ 624 Element* element= dynamic_cast<Element*>(this->elements->GetObjectByOffset(j));624 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(j)); 625 625 element->ResultToPatch(values,nodesperelement,output_enum); 626 626 } … … 739 739 740 740 for (i=1;i<elements->Size();i++){ 741 element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));741 element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 742 742 dt=element->TimeAdapt(); 743 743 if(dt<min_dt)min_dt=dt; … … 756 756 757 757 for(int i=0;i<elements->Size();i++){ 758 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));758 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 759 759 element->UpdateConstraintsExtrudeFromBase(); 760 760 } … … 765 765 766 766 for(int i=0;i<elements->Size();i++){ 767 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));767 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 768 768 element->UpdateConstraintsExtrudeFromTop(); 769 769 } … … 839 839 maxabsvx=-INFINITY; 840 840 for(i=0;i<this->elements->Size();i++){ 841 Element* element= dynamic_cast<Element*>(this->elements->GetObjectByOffset(i));841 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 842 842 element_maxabsvx=element->inputs->MaxAbs(VxEnum); 843 843 if(element_maxabsvx>maxabsvx) maxabsvx=element_maxabsvx; … … 863 863 maxabsvy=-INFINITY; 864 864 for(i=0;i<this->elements->Size();i++){ 865 Element* element= dynamic_cast<Element*>(this->elements->GetObjectByOffset(i));865 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 866 866 element_maxabsvy=element->inputs->MaxAbs(VyEnum); 867 867 if(element_maxabsvy>maxabsvy) maxabsvy=element_maxabsvy; … … 887 887 maxabsvz=-INFINITY; 888 888 for(i=0;i<this->elements->Size();i++){ 889 Element* element= dynamic_cast<Element*>(this->elements->GetObjectByOffset(i));889 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 890 890 element_maxabsvz=element->inputs->MaxAbs(VzEnum); 891 891 if(element_maxabsvz>maxabsvz) maxabsvz=element_maxabsvz; … … 911 911 maxvel=-INFINITY; 912 912 for(i=0;i<this->elements->Size();i++){ 913 Element* element= dynamic_cast<Element*>(this->elements->GetObjectByOffset(i));913 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 914 914 element_maxvel = element->inputs->Max(VelEnum); 915 915 if(element_maxvel>maxvel) maxvel=element_maxvel; … … 935 935 maxvx=-INFINITY; 936 936 for(i=0;i<this->elements->Size();i++){ 937 Element* element= dynamic_cast<Element*>(this->elements->GetObjectByOffset(i));937 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 938 938 element_maxvx = element->inputs->Max(VxEnum); 939 939 if(element_maxvx>maxvx) maxvx=element_maxvx; … … 959 959 maxvy=-INFINITY; 960 960 for(i=0;i<this->elements->Size();i++){ 961 Element* element= dynamic_cast<Element*>(this->elements->GetObjectByOffset(i));961 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 962 962 element_maxvy = element->inputs->Max(VyEnum); 963 963 if(element_maxvy>maxvy) maxvy=element_maxvy; … … 983 983 maxvz=-INFINITY; 984 984 for(i=0;i<this->elements->Size();i++){ 985 Element* element= dynamic_cast<Element*>(this->elements->GetObjectByOffset(i));985 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 986 986 element_maxvz = element->inputs->Max(VzEnum); 987 987 if(element_maxvz>maxvz) maxvz=element_maxvz; … … 1007 1007 minvel=INFINITY; 1008 1008 for(i=0;i<this->elements->Size();i++){ 1009 Element* element= dynamic_cast<Element*>(this->elements->GetObjectByOffset(i));1009 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 1010 1010 element_minvel = element->inputs->Min(VelEnum); 1011 1011 if(element_minvel<minvel) minvel=element_minvel; … … 1031 1031 minvx=INFINITY; 1032 1032 for(i=0;i<this->elements->Size();i++){ 1033 Element* element= dynamic_cast<Element*>(this->elements->GetObjectByOffset(i));1033 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 1034 1034 element_minvx = element->inputs->Min(VxEnum); 1035 1035 if(element_minvx<minvx) minvx=element_minvx; … … 1055 1055 minvy=INFINITY; 1056 1056 for(i=0;i<this->elements->Size();i++){ 1057 Element* element= dynamic_cast<Element*>(this->elements->GetObjectByOffset(i));1057 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 1058 1058 element_minvy = element->inputs->Min(VyEnum); 1059 1059 if(element_minvy<minvy) minvy=element_minvy; … … 1079 1079 minvz=INFINITY; 1080 1080 for(i=0;i<this->elements->Size();i++){ 1081 Element* element= dynamic_cast<Element*>(this->elements->GetObjectByOffset(i));1081 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 1082 1082 element_minvz = element->inputs->Min(VzEnum); 1083 1083 if(element_minvz<minvz) minvz=element_minvz; … … 1099 1099 1100 1100 for(int i=0;i<this->elements->Size();i++){ 1101 Element* element= dynamic_cast<Element*>(this->elements->GetObjectByOffset(i));1101 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 1102 1102 local_smb+=element->TotalSmb(); 1103 1103 } … … 1115 1115 1116 1116 for(int i=0;i<this->elements->Size();i++){ 1117 Element* element= dynamic_cast<Element*>(this->elements->GetObjectByOffset(i));1117 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 1118 1118 local_divergence+=element->Divergence(); 1119 1119 } … … 1143 1143 1144 1144 for(int i=0;i<this->elements->Size();i++){ 1145 Element* element= dynamic_cast<Element*>(this->elements->GetObjectByOffset(i));1145 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 1146 1146 element->GetInputLocalMinMaxOnNodes(uLmin_local,uLmax_local,ug); 1147 1147 } … … 1164 1164 1165 1165 for(int i=0;i<this->elements->Size();i++){ 1166 Element* element= dynamic_cast<Element*>(this->elements->GetObjectByOffset(i));1166 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 1167 1167 local_ice_volume+=element->IceVolume(); 1168 1168 } … … 1180 1180 1181 1181 for(int i=0;i<this->elements->Size();i++){ 1182 Element* element= dynamic_cast<Element*>(this->elements->GetObjectByOffset(i));1182 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 1183 1183 local_ice_volume_af+=element->IceVolumeAboveFloatation(); 1184 1184 } … … 1205 1205 /*now, go through our elements, and retrieve the one with this id: index: */ 1206 1206 for(int i=0;i<this->elements->Size();i++){ 1207 element= dynamic_cast<Element*>(this->elements->GetObjectByOffset(i));1207 element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 1208 1208 if (element->Id()==index){ 1209 1209 found=1; … … 1243 1243 /*Compute Misfit: */ 1244 1244 for(int i=0;i<elements->Size();i++){ 1245 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));1245 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 1246 1246 1247 1247 /*If on water, return 0: */ … … 1311 1311 /*Compute Misfit: */ 1312 1312 for(int i=0;i<elements->Size();i++){ 1313 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));1313 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 1314 1314 1315 1315 /*If on water, return 0: */ … … 1341 1341 /*Compute Misfit: */ 1342 1342 for(int i=0;i<elements->Size();i++){ 1343 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));1343 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 1344 1344 1345 1345 /*If on water, return 0: */ … … 1572 1572 /*Go through elements, and add contribution from each element to the deflection vector wg:*/ 1573 1573 for(int i=0;i<elements->Size();i++){ 1574 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));1574 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 1575 1575 element->GiaDeflection(wg,dwgdt, x,y); 1576 1576 } … … 1590 1590 1591 1591 for (int i=0;i<elements->Size();i++){ 1592 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));1592 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 1593 1593 effanalysis->HydrologyEPLGetMask(mask,element); 1594 1594 } … … 1606 1606 active=new Vector<IssmDouble>(nodes->NumberOfNodes(HydrologyDCEfficientAnalysisEnum)); 1607 1607 for (int i=0;i<elements->Size();i++){ 1608 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));1608 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 1609 1609 effanalysis->HydrologyEPLGetActive(active,element); 1610 1610 } … … 1618 1618 int counter =0; 1619 1619 for (int i=0;i<nodes->Size();i++){ 1620 Node* node= dynamic_cast<Node*>(nodes->GetObjectByOffset(i));1620 Node* node=xDynamicCast<Node*>(nodes->GetObjectByOffset(i)); 1621 1621 if(node->InAnalysis(HydrologyDCEfficientAnalysisEnum)){ 1622 1622 if(serial_active[node->Sid()]==1.){ … … 1651 1651 active=new Vector<IssmDouble>(nodes->NumberOfNodes(HydrologyDCEfficientAnalysisEnum)); 1652 1652 for (int i=0;i<elements->Size();i++){ 1653 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));1653 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 1654 1654 effanalysis->HydrologyEPLGetActive(active,element); 1655 1655 } … … 1664 1664 int counter =0; 1665 1665 for (int i=0;i<nodes->Size();i++){ 1666 Node* node= dynamic_cast<Node*>(nodes->GetObjectByOffset(i));1666 Node* node=xDynamicCast<Node*>(nodes->GetObjectByOffset(i)); 1667 1667 if(node->InAnalysis(L2ProjectionEPLAnalysisEnum)){ 1668 1668 if(serial_active[node->Sid()]==1.){ -
issm/trunk-jpl/src/c/classes/Hook.cpp
r18237 r18521 168 168 /*Now, for this->objects that did not get resolved, and for which we have no offset, chase them in the dataset, by id: */ 169 169 if(this->objects[i]==NULL){ 170 this->objects[i]= dynamic_cast<Object*>(dataset->GetObjectById(this->offsets+i,this->ids[i])); //remember the offset for later on.170 this->objects[i]=xDynamicCast<Object*>(dataset->GetObjectById(this->offsets+i,this->ids[i])); //remember the offset for later on. 171 171 /*check the id is correct!: */ 172 172 if (this->objects[i]->Id()!=this->ids[i]) _error_("wrong id: " << this->objects[i]->Id() << " vs " << this->ids[i] << " in resolved pointer!"); -
issm/trunk-jpl/src/c/classes/Inputs/ControlInput.cpp
r18450 r18521 87 87 output->control_id=this->control_id; 88 88 89 if(values) output->values = dynamic_cast<Input*>(this->values->copy());90 if(savedvalues) output->savedvalues = dynamic_cast<Input*>(this->savedvalues->copy());91 if(minvalues) output->minvalues = dynamic_cast<Input*>(this->minvalues->copy());92 if(maxvalues) output->maxvalues = dynamic_cast<Input*>(this->maxvalues->copy());93 if(gradient) output->gradient = dynamic_cast<Input*>(this->gradient->copy());89 if(values) output->values = xDynamicCast<Input*>(this->values->copy()); 90 if(savedvalues) output->savedvalues = xDynamicCast<Input*>(this->savedvalues->copy()); 91 if(minvalues) output->minvalues = xDynamicCast<Input*>(this->minvalues->copy()); 92 if(maxvalues) output->maxvalues = xDynamicCast<Input*>(this->maxvalues->copy()); 93 if(gradient) output->gradient = xDynamicCast<Input*>(this->gradient->copy()); 94 94 95 95 return output; … … 234 234 235 235 if(savedvalues) delete this->savedvalues; 236 this->savedvalues= dynamic_cast<Input*>(this->values->copy());236 this->savedvalues=xDynamicCast<Input*>(this->values->copy()); 237 237 }/*}}}*/ 238 238 void ControlInput::UpdateValue(IssmDouble scalar){/*{{{*/ … … 241 241 242 242 if(values) delete this->values; 243 this->values= dynamic_cast<Input*>(this->savedvalues->copy());243 this->values=xDynamicCast<Input*>(this->savedvalues->copy()); 244 244 this->values->AXPY(gradient,scalar); 245 245 }/*}}}*/ -
issm/trunk-jpl/src/c/classes/Inputs/DatasetInput.cpp
r18237 r18521 81 81 outinput=new DatasetInput(); 82 82 outinput->enum_type=this->enum_type; 83 outinput->inputs= dynamic_cast<Inputs*>(this->inputs->SpawnTriaInputs(index1,index2,index3));83 outinput->inputs=xDynamicCast<Inputs*>(this->inputs->SpawnTriaInputs(index1,index2,index3)); 84 84 outinput->numids=this->numids; 85 85 outinput->ids=xNew<int>(this->numids); … … 98 98 outinput=new DatasetInput(); 99 99 outinput->enum_type=this->enum_type; 100 outinput->inputs= dynamic_cast<Inputs*>(this->inputs->SpawnSegInputs(index1,index2));100 outinput->inputs=xDynamicCast<Inputs*>(this->inputs->SpawnSegInputs(index1,index2)); 101 101 outinput->numids=this->numids; 102 102 outinput->ids=xNew<int>(this->numids); … … 157 157 if(offset<0) _error_("Could not find input of id "<<id ); 158 158 159 Input* input= dynamic_cast<Input*>(this->inputs->GetObjectByOffset(offset));159 Input* input=xDynamicCast<Input*>(this->inputs->GetObjectByOffset(offset)); 160 160 input->GetInputValue(pvalue,gauss); 161 161 } -
issm/trunk-jpl/src/c/classes/Inputs/Inputs.cpp
r18064 r18521 38 38 for ( object=objects.begin() ; object < objects.end(); object++ ){ 39 39 40 input= dynamic_cast<Input*>(*object);40 input=xDynamicCast<Input*>(*object); 41 41 if (input->InstanceEnum()==enum_type){ 42 42 found=true; … … 65 65 for ( object=objects.begin() ; object < objects.end(); object++ ){ 66 66 67 input= dynamic_cast<Input*>(*object);67 input=xDynamicCast<Input*>(*object); 68 68 if (input->InstanceEnum()==enum_type){ 69 69 found=true; … … 92 92 for ( object=objects.begin() ; object < objects.end(); object++ ){ 93 93 94 input= dynamic_cast<Input*>(*object);94 input=xDynamicCast<Input*>(*object); 95 95 if (input->InstanceEnum()==enum_type){ 96 96 found=true; … … 119 119 for ( object=objects.begin() ; object < objects.end(); object++ ){ 120 120 121 input= dynamic_cast<Input*>(*object);121 input=xDynamicCast<Input*>(*object); 122 122 if (input->InstanceEnum()==enum_type){ 123 123 found=true; … … 150 150 for ( object=objects.begin() ; object < objects.end(); object++ ){ 151 151 152 input= dynamic_cast<Input*>(*object);152 input=xDynamicCast<Input*>(*object); 153 153 154 154 if (input->InstanceEnum()==in_input->InstanceEnum()){ … … 171 171 /*Delete existing input of newenumtype if it exists*/ 172 172 for ( object=objects.begin() ; object < objects.end(); object++ ){ 173 input= dynamic_cast<Input*>(*object);173 input=xDynamicCast<Input*>(*object); 174 174 175 175 if (input->InstanceEnum()==newenumtype){ … … 182 182 for ( object=objects.begin() ; object < objects.end(); object++ ){ 183 183 184 input= dynamic_cast<Input*>(*object);184 input=xDynamicCast<Input*>(*object); 185 185 186 186 if (input->InstanceEnum()==oldenumtype){ … … 194 194 195 195 /*Find x and y inputs: */ 196 Input* constrain_input= dynamic_cast<Input*>(this->GetInput(constrain_enum));196 Input* constrain_input=xDynamicCast<Input*>(this->GetInput(constrain_enum)); 197 197 198 198 /*some checks: */ … … 209 209 210 210 /*Get input*/ 211 Input* input= dynamic_cast<Input*>(this->GetInput(enumtype));211 Input* input=xDynamicCast<Input*>(this->GetInput(enumtype)); 212 212 213 213 /*Apply ContrainMin: */ … … 229 229 230 230 /*Get input*/ 231 Input* input= dynamic_cast<Input*>(this->GetInput(enumtype));231 Input* input=xDynamicCast<Input*>(this->GetInput(enumtype)); 232 232 233 233 /*Apply ContrainMin: */ … … 249 249 250 250 /*Get input*/ 251 Input* input= dynamic_cast<Input*>(this->GetInput(enumtype));251 Input* input=xDynamicCast<Input*>(this->GetInput(enumtype)); 252 252 253 253 /*Apply ContrainMin: */ … … 269 269 270 270 /*Get input*/ 271 Input* input= dynamic_cast<Input*>(this->GetInput(enumtype));271 Input* input=xDynamicCast<Input*>(this->GetInput(enumtype)); 272 272 273 273 /*Apply ContrainMin: */ … … 289 289 290 290 /*Get input*/ 291 Input* input= dynamic_cast<Input*>(this->GetInput(enumtype));291 Input* input=xDynamicCast<Input*>(this->GetInput(enumtype)); 292 292 293 293 /*Apply ContrainMin: */ … … 310 310 for ( object=objects.begin() ; object < objects.end(); object++ ){ 311 311 312 input= dynamic_cast<Input*>(*object);312 input=xDynamicCast<Input*>(*object); 313 313 314 314 if (input->InstanceEnum()==enum_name){ … … 326 326 for ( object=objects.begin() ; object < objects.end(); object++ ){ 327 327 328 input= dynamic_cast<Input*>(*object);328 input=xDynamicCast<Input*>(*object); 329 329 330 330 if (input->InstanceEnum()==enum_type){ … … 341 341 342 342 /*Make a copy of the original input: */ 343 Input* original= dynamic_cast<Input*>(this->GetInput(original_enum));343 Input* original=xDynamicCast<Input*>(this->GetInput(original_enum)); 344 344 if(!original)_error_("could not find input with enum: " << EnumToStringx(original_enum)); 345 Input* copy= dynamic_cast<Input*>(original->copy());345 Input* copy=xDynamicCast<Input*>(original->copy()); 346 346 347 347 /*Change copy enum to reinitialized_enum: */ … … 349 349 350 350 /*Add copy into inputs, it will wipe off the one already there: */ 351 this->AddInput( dynamic_cast<Input*>(copy));351 this->AddInput(xDynamicCast<Input*>(copy)); 352 352 } 353 353 /*}}}*/ … … 366 366 367 367 /*Create new input*/ 368 inputin= dynamic_cast<Input*>(*object);368 inputin=xDynamicCast<Input*>(*object); 369 369 inputout=inputin->SpawnTriaInput(index1,index2,index3); 370 370 … … 391 391 392 392 /*Create new input*/ 393 inputin= dynamic_cast<Input*>(*object);393 inputin=xDynamicCast<Input*>(*object); 394 394 inputout=inputin->SpawnSegInput(index1,index2); 395 395 … … 405 405 406 406 /*Find x and y inputs: */ 407 Input* xinput= dynamic_cast<Input*>(this->GetInput(inputx_enum));408 Input* yinput= dynamic_cast<Input*>(this->GetInput(inputy_enum));407 Input* xinput=xDynamicCast<Input*>(this->GetInput(inputx_enum)); 408 Input* yinput=xDynamicCast<Input*>(this->GetInput(inputy_enum)); 409 409 410 410 /*some checks: */ … … 423 423 for ( object=objects.begin() ; object < objects.end(); object++ ){ 424 424 425 input= dynamic_cast<Input*>(*object);425 input=xDynamicCast<Input*>(*object); 426 426 input->Configure(parameters); 427 427 -
issm/trunk-jpl/src/c/classes/IoModel.cpp
r18064 r18521 259 259 260 260 /*Find constant*/ 261 Param* param= dynamic_cast<Param*>(this->constants->FindParamObject(constant_enum));261 Param* param=xDynamicCast<Param*>(this->constants->FindParamObject(constant_enum)); 262 262 if(!param) _error_("Constant " << EnumToStringx(constant_enum) << " not found in iomodel"); 263 263 264 return dynamic_cast<Param*>(param->copy());264 return xDynamicCast<Param*>(param->copy()); 265 265 } 266 266 /*}}}*/ … … 1455 1455 1456 1456 for(int i=0;i<elements->Size();i++){ 1457 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));1457 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 1458 1458 if(!doublearray) element->AddInput(vector_enum,&default_value,P0Enum); 1459 1459 else element->InputCreate(doublearray,this,M,N,vector_layout,vector_enum,code);//we need i to index into elements. … … 1485 1485 this->FetchData(&boolean,vector_enum); 1486 1486 for(i=0;i<elements->Size();i++){ 1487 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));1487 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 1488 1488 element->InputUpdateFromConstant(boolean,vector_enum); 1489 1489 } … … 1492 1492 this->FetchData(&integer,vector_enum); 1493 1493 for(i=0;i<elements->Size();i++){ 1494 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));1494 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 1495 1495 element->InputUpdateFromConstant(integer,vector_enum); 1496 1496 } … … 1499 1499 this->FetchData(&scalar,vector_enum); 1500 1500 for(i=0;i<elements->Size();i++){ 1501 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));1501 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 1502 1502 element->InputUpdateFromConstant(scalar,vector_enum); 1503 1503 } … … 1507 1507 if(!doublearray) _error_(EnumToStringx(vector_enum)<<" not found in binary file"); 1508 1508 for(i=0;i<elements->Size();i++){ 1509 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));1509 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 1510 1510 element->InputCreate(doublearray,this,M,N,vector_layout,vector_enum,code);//we need i to index into elements. 1511 1511 } … … 1515 1515 if(!doublearray) _error_(EnumToStringx(vector_enum)<<" not found in binary file"); 1516 1516 for(i=0;i<elements->Size();i++){ 1517 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));1517 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 1518 1518 element->InputCreate(doublearray,this,M,N,vector_layout,vector_enum,code);//we need i to index into elements. 1519 1519 } … … 1523 1523 if(!doublearray) _error_(EnumToStringx(vector_enum)<<" not found in binary file"); 1524 1524 for(i=0;i<elements->Size();i++){ 1525 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));1525 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 1526 1526 element->InputCreate(doublearray,this,M,N,vector_layout,vector_enum,code);//we need i to index into elements. 1527 1527 } -
issm/trunk-jpl/src/c/classes/Loads/Loads.cpp
r18237 r18521 41 41 for ( object=objects.begin() ; object < objects.end(); object++ ){ 42 42 43 load= dynamic_cast<Load*>(*object);43 load=xDynamicCast<Load*>(*object); 44 44 load->Configure(elements,loads,nodes,vertices,materials,parameters); 45 45 … … 55 55 for ( object=objects.begin() ; object < objects.end(); object++ ){ 56 56 57 load= dynamic_cast<Load*>((*object));57 load=xDynamicCast<Load*>((*object)); 58 58 load->ResetHooks(); 59 59 … … 70 70 for(int i=0;i<this->Size();i++){ 71 71 72 Load* load= dynamic_cast<Load*>(this->GetObjectByOffset(i));72 Load* load=xDynamicCast<Load*>(this->GetObjectByOffset(i)); 73 73 if (load->InAnalysis(analysis_type)){ 74 74 if(load->IsPenalty()) ispenalty++; … … 95 95 for(int i=0;i<this->Size();i++){ 96 96 97 Load* load= dynamic_cast<Load*>(this->GetObjectByOffset(i));97 Load* load=xDynamicCast<Load*>(this->GetObjectByOffset(i)); 98 98 if (load->InAnalysis(analysis_type)){ 99 99 numnodes=load->GetNumberOfNodes(); … … 132 132 for(int i=0;i<this->Size();i++){ 133 133 134 Load* load= dynamic_cast<Load*>(this->GetObjectByOffset(i));134 Load* load=xDynamicCast<Load*>(this->GetObjectByOffset(i)); 135 135 136 136 /*Check that this load corresponds to our analysis currently being carried out: */ … … 157 157 for(int i=0;i<this->Size();i++){ 158 158 159 Load* load= dynamic_cast<Load*>(this->GetObjectByOffset(i));159 Load* load=xDynamicCast<Load*>(this->GetObjectByOffset(i)); 160 160 161 161 /*Check that this load corresponds to our analysis currently being carried out: */ … … 173 173 for ( object=objects.begin() ; object < objects.end(); object++ ){ 174 174 175 load= dynamic_cast<Load*>(*object);175 load=xDynamicCast<Load*>(*object); 176 176 load->SetCurrentConfiguration(elements,loads,nodes,vertices,materials,parameters); 177 177 -
issm/trunk-jpl/src/c/classes/Materials/Materials.cpp
r18237 r18521 37 37 for ( object=objects.begin() ; object < objects.end(); object++ ){ 38 38 39 material= dynamic_cast<Material*>(*object);39 material=xDynamicCast<Material*>(*object); 40 40 material->Configure(elements); 41 41 … … 51 51 for ( object=objects.begin() ; object < objects.end(); object++ ){ 52 52 53 material= dynamic_cast<Material*>((*object));53 material=xDynamicCast<Material*>((*object)); 54 54 material->ResetHooks(); 55 55 -
issm/trunk-jpl/src/c/classes/Nodes.cpp
r18063 r18521 49 49 /*Go through objects, and distribute dofs locally, from 0 to numberofdofsperobject*/ 50 50 for(i=0;i<this->Size();i++){ 51 Node* node= dynamic_cast<Node*>(this->GetObjectByOffset(i));51 Node* node=xDynamicCast<Node*>(this->GetObjectByOffset(i)); 52 52 53 53 /*Check that this node corresponds to our analysis currently being carried out: */ … … 72 72 for(i=0;i<this->Size();i++){ 73 73 /*Check that this node corresponds to our analysis currently being carried out: */ 74 Node* node= dynamic_cast<Node*>(this->GetObjectByOffset(i));74 Node* node=xDynamicCast<Node*>(this->GetObjectByOffset(i)); 75 75 if (node->InAnalysis(analysis_type)){ 76 76 node->OffsetDofs(dofcount,setenum); … … 89 89 90 90 for(i=0;i<this->Size();i++){ 91 Node* node= dynamic_cast<Node*>(this->GetObjectByOffset(i));91 Node* node=xDynamicCast<Node*>(this->GetObjectByOffset(i)); 92 92 if (node->InAnalysis(analysis_type)){ 93 93 node->ShowTrueDofs(truedofs,maxdofspernode,setenum);//give maxdofspernode, column size, so that nodes can index into truedofs … … 99 99 /* Now every cpu knows the true dofs of everyone else that is not a clone*/ 100 100 for(i=0;i<this->Size();i++){ 101 Node* node= dynamic_cast<Node*>(this->GetObjectByOffset(i));101 Node* node=xDynamicCast<Node*>(this->GetObjectByOffset(i)); 102 102 if (node->InAnalysis(analysis_type)){ 103 103 node->UpdateCloneDofs(alltruedofs,maxdofspernode,setenum); … … 107 107 /*Update indexingupdateflag*/ 108 108 for(i=0;i<this->Size();i++){ 109 Node* node= dynamic_cast<Node*>(this->GetObjectByOffset(i));109 Node* node=xDynamicCast<Node*>(this->GetObjectByOffset(i)); 110 110 if (node->InAnalysis(analysis_type)){ 111 111 node->ReindexingDone(); … … 148 148 for(i=0;i<this->Size();i++){ 149 149 150 Node* node= dynamic_cast<Node*>(this->GetObjectByOffset(i));150 Node* node=xDynamicCast<Node*>(this->GetObjectByOffset(i)); 151 151 152 152 /*Check that this node corresponds to our analysis currently being carried out: */ … … 172 172 for(int i=0;i<this->Size();i++){ 173 173 174 Node* node= dynamic_cast<Node*>(this->GetObjectByOffset(i));174 Node* node=xDynamicCast<Node*>(this->GetObjectByOffset(i)); 175 175 176 176 /*Check that this node corresponds to our analysis currently being carried out: */ … … 197 197 if(!sorted){ 198 198 for(int i=0;i<this->Size();i++){ 199 Node* node= dynamic_cast<Node*>(this->GetObjectByOffset(i));199 Node* node=xDynamicCast<Node*>(this->GetObjectByOffset(i)); 200 200 id=node->Id(); 201 201 if(id>max)max=id; … … 207 207 } 208 208 else{ 209 Node* node= dynamic_cast<Node*>(this->GetObjectByOffset(this->Size()-1));209 Node* node=xDynamicCast<Node*>(this->GetObjectByOffset(this->Size()-1)); 210 210 max = node->Id(); 211 211 } … … 238 238 for(int i=0;i<this->Size();i++){ 239 239 240 Node* node= dynamic_cast<Node*>(this->GetObjectByOffset(i));240 Node* node=xDynamicCast<Node*>(this->GetObjectByOffset(i)); 241 241 242 242 /*Check that this node corresponds to our analysis currently being carried out: */ … … 262 262 /*Now go through all nodes, and get how many dofs they own, unless they are clone nodes: */ 263 263 for(int i=0;i<this->Size();i++){ 264 Node* node= dynamic_cast<Node*>(this->GetObjectByOffset(i));264 Node* node=xDynamicCast<Node*>(this->GetObjectByOffset(i)); 265 265 266 266 /*Ok, this object is a node, ask it to plug values into partition: */ … … 284 284 for(i=0;i<this->Size();i++){ 285 285 286 Node* node= dynamic_cast<Node*>(this->GetObjectByOffset(i));286 Node* node=xDynamicCast<Node*>(this->GetObjectByOffset(i)); 287 287 288 288 /*Check that this node corresponds to our analysis currently being carried out: */ … … 316 316 for(int i=0;i<this->Size();i++){ 317 317 318 Node* node= dynamic_cast<Node*>(this->GetObjectByOffset(i));318 Node* node=xDynamicCast<Node*>(this->GetObjectByOffset(i)); 319 319 320 320 /*Check that this node corresponds to our analysis currently being carried out: */ … … 335 335 for(int i=0;i<this->Size();i++){ 336 336 337 Node* node= dynamic_cast<Node*>(this->GetObjectByOffset(i));337 Node* node=xDynamicCast<Node*>(this->GetObjectByOffset(i)); 338 338 339 339 /*Check that this node corresponds to our analysis currently being carried out: */ -
issm/trunk-jpl/src/c/classes/Options/Options.cpp
r18487 r18521 52 52 for(object=objects.begin();object<objects.end();object++){ 53 53 54 option= dynamic_cast<Option*>(*object);54 option=xDynamicCast<Option*>(*object); 55 55 if (!strcmp(option->Name(),name)){ 56 56 _error_("Options \"" << name << "\" found multiple times"); … … 73 73 for ( object=objects.begin() ; object < objects.end(); object++ ){ 74 74 75 option= dynamic_cast<Option*>(*object);75 option=xDynamicCast<Option*>(*object); 76 76 //option=(Option*)(*object); //C-like cast 77 77 /*There is a crash on some machines (Einar Olason) that needs to be fixed*/ -
issm/trunk-jpl/src/c/classes/Options/Options.h
r15104 r18521 26 26 27 27 /*Get option*/ 28 GenericOption<OptionType>* genericoption= dynamic_cast<GenericOption<OptionType>*>(GetOption(name));28 GenericOption<OptionType>* genericoption=xDynamicCast<GenericOption<OptionType>*>(GetOption(name)); 29 29 30 30 /*If the pointer is not NULL, the option has been found*/ … … 41 41 42 42 /*Get option*/ 43 GenericOption<OptionType>* genericoption= dynamic_cast<GenericOption<OptionType>*>(GetOption(name));43 GenericOption<OptionType>* genericoption=xDynamicCast<GenericOption<OptionType>*>(GetOption(name)); 44 44 45 45 /*If the pointer is not NULL, the option has been found*/ … … 57 57 58 58 /*Get option*/ 59 GenericOption<OptionType>* genericoption= dynamic_cast<GenericOption<OptionType>*>(GetOption(name));59 GenericOption<OptionType>* genericoption=xDynamicCast<GenericOption<OptionType>*>(GetOption(name)); 60 60 61 61 /*If the pointer is not NULL, the option has been found*/ … … 72 72 73 73 /*Get option*/ 74 GenericOption<OptionType>* genericoption= dynamic_cast<GenericOption<OptionType>*>(GetOption(name));74 GenericOption<OptionType>* genericoption=xDynamicCast<GenericOption<OptionType>*>(GetOption(name)); 75 75 76 76 /*If the pointer is not NULL, the option has been found*/ … … 92 92 93 93 /*Get option*/ 94 GenericOption<char*>* genericoption= dynamic_cast<GenericOption<char*>*>(GetOption(name));94 GenericOption<char*>* genericoption=xDynamicCast<GenericOption<char*>*>(GetOption(name)); 95 95 96 96 /*If the pointer is not NULL, the option has been found*/ -
issm/trunk-jpl/src/c/classes/Params/Parameters.cpp
r18237 r18521 57 57 58 58 for ( object=objects.begin() ; object < objects.end(); object++ ){ 59 param= dynamic_cast<Param*>(*object);59 param=xDynamicCast<Param*>(*object); 60 60 if(param->InstanceEnum()==enum_type) return true; 61 61 } … … 70 70 for ( object=objects.begin() ; object < objects.end(); object++ ){ 71 71 72 param= dynamic_cast<Param*>(*object);72 param=xDynamicCast<Param*>(*object); 73 73 if(param->InstanceEnum()==enum_type){ 74 74 param->GetParameterValue(pbool); … … 86 86 for ( object=objects.begin() ; object < objects.end(); object++ ){ 87 87 88 param= dynamic_cast<Param*>(*object);88 param=xDynamicCast<Param*>(*object); 89 89 if(param->InstanceEnum()==enum_type){ 90 90 param->GetParameterValue(pinteger); … … 102 102 for ( object=objects.begin() ; object < objects.end(); object++ ){ 103 103 104 param= dynamic_cast<Param*>(*object);104 param=xDynamicCast<Param*>(*object); 105 105 if(param->InstanceEnum()==enum_type){ 106 106 param->GetParameterValue(pscalar); … … 118 118 for ( object=objects.begin() ; object < objects.end(); object++ ){ 119 119 120 param= dynamic_cast<Param*>(*object);120 param=xDynamicCast<Param*>(*object); 121 121 if(param->InstanceEnum()==enum_type){ 122 122 param->GetParameterValue(pscalar,time); … … 134 134 for ( object=objects.begin() ; object < objects.end(); object++ ){ 135 135 136 param= dynamic_cast<Param*>(*object);136 param=xDynamicCast<Param*>(*object); 137 137 if(param->InstanceEnum()==enum_type){ 138 138 param->GetParameterValue(pstring); … … 151 151 for ( object=objects.begin() ; object < objects.end(); object++ ){ 152 152 153 param= dynamic_cast<Param*>(*object);153 param=xDynamicCast<Param*>(*object); 154 154 if(param->InstanceEnum()==enum_type){ 155 155 param->GetParameterValue(pstringarray,pM); … … 168 168 for ( object=objects.begin() ; object < objects.end(); object++ ){ 169 169 170 param= dynamic_cast<Param*>(*object);170 param=xDynamicCast<Param*>(*object); 171 171 if(param->InstanceEnum()==enum_type){ 172 172 param->GetParameterValue(pintarray,pM); … … 185 185 for ( object=objects.begin() ; object < objects.end(); object++ ){ 186 186 187 param= dynamic_cast<Param*>(*object);187 param=xDynamicCast<Param*>(*object); 188 188 if(param->InstanceEnum()==enum_type){ 189 189 param->GetParameterValue(pintarray,pM,pN); … … 202 202 for ( object=objects.begin() ; object < objects.end(); object++ ){ 203 203 204 param= dynamic_cast<Param*>(*object);204 param=xDynamicCast<Param*>(*object); 205 205 if(param->InstanceEnum()==enum_type){ 206 206 param->GetParameterValue(pIssmDoublearray,pM); … … 219 219 for ( object=objects.begin() ; object < objects.end(); object++ ){ 220 220 221 param= dynamic_cast<Param*>(*object);221 param=xDynamicCast<Param*>(*object); 222 222 if(param->InstanceEnum()==enum_type){ 223 223 param->GetParameterValue(pIssmDoublearray,pM,pN); … … 236 236 for ( object=objects.begin() ; object < objects.end(); object++ ){ 237 237 238 param= dynamic_cast<Param*>(*object);238 param=xDynamicCast<Param*>(*object); 239 239 if(param->InstanceEnum()==enum_type){ 240 240 param->GetParameterValue(parray,pM,pmdims_array,pndims_array); … … 252 252 for ( object=objects.begin() ; object < objects.end(); object++ ){ 253 253 254 param= dynamic_cast<Param*>(*object);254 param=xDynamicCast<Param*>(*object); 255 255 if(param->InstanceEnum()==enum_type){ 256 256 param->GetParameterValue(pvec); … … 269 269 for ( object=objects.begin() ; object < objects.end(); object++ ){ 270 270 271 param= dynamic_cast<Param*>(*object);271 param=xDynamicCast<Param*>(*object); 272 272 if(param->InstanceEnum()==enum_type){ 273 273 param->GetParameterValue(pmat); … … 286 286 for ( object=objects.begin() ; object < objects.end(); object++ ){ 287 287 288 param= dynamic_cast<Param*>(*object);288 param=xDynamicCast<Param*>(*object); 289 289 if(param->InstanceEnum()==enum_type){ 290 290 param->GetParameterValue(pfid); … … 303 303 for ( object=objects.begin() ; object < objects.end(); object++ ){ 304 304 305 param= dynamic_cast<Param*>(*object);305 param=xDynamicCast<Param*>(*object); 306 306 if(param->InstanceEnum()==enum_type){ 307 307 param->GetParameterValue(pdataset); … … 318 318 319 319 /*first, figure out if the param has already been created: */ 320 param= dynamic_cast<Param*>(this->FindParamObject(enum_type));320 param=xDynamicCast<Param*>(this->FindParamObject(enum_type)); 321 321 322 322 if(param) param->SetValue(boolean); //already exists, just set it. … … 329 329 330 330 /*first, figure out if the param has already been created: */ 331 param= dynamic_cast<Param*>(this->FindParamObject(enum_type));331 param=xDynamicCast<Param*>(this->FindParamObject(enum_type)); 332 332 333 333 if(param) param->SetValue(integer); //already exists, just set it. … … 340 340 341 341 /*first, figure out if the param has already been created: */ 342 param= dynamic_cast<Param*>(this->FindParamObject(enum_type));342 param=xDynamicCast<Param*>(this->FindParamObject(enum_type)); 343 343 344 344 if(param) param->SetValue(scalar); //already exists, just set it. … … 351 351 352 352 /*first, figure out if the param has already been created: */ 353 param= dynamic_cast<Param*>(this->FindParamObject(enum_type));353 param=xDynamicCast<Param*>(this->FindParamObject(enum_type)); 354 354 355 355 if(param) param->SetValue(string); //already exists, just set it. … … 362 362 363 363 /*first, figure out if the param has already been created: */ 364 param= dynamic_cast<Param*>(this->FindParamObject(enum_type));364 param=xDynamicCast<Param*>(this->FindParamObject(enum_type)); 365 365 366 366 if(param) param->SetValue(stringarray,M); //already exists, just set it. … … 373 373 374 374 /*first, figure out if the param has already been created: */ 375 param= dynamic_cast<Param*>(this->FindParamObject(enum_type));375 param=xDynamicCast<Param*>(this->FindParamObject(enum_type)); 376 376 377 377 if(param) param->SetValue(IssmDoublearray,M); //already exists, just set it. … … 384 384 385 385 /*first, figure out if the param has already been created: */ 386 param= dynamic_cast<Param*>(this->FindParamObject(enum_type));386 param=xDynamicCast<Param*>(this->FindParamObject(enum_type)); 387 387 388 388 if(param) param->SetValue(IssmDoublearray,M,N); //already exists, just set it. … … 395 395 396 396 /*first, figure out if the param has already been created: */ 397 param= dynamic_cast<Param*>(this->FindParamObject(enum_type));397 param=xDynamicCast<Param*>(this->FindParamObject(enum_type)); 398 398 399 399 if(param) param->SetValue(intarray,M); //already exists, just set it. … … 406 406 407 407 /*first, figure out if the param has already been created: */ 408 param= dynamic_cast<Param*>(this->FindParamObject(enum_type));408 param=xDynamicCast<Param*>(this->FindParamObject(enum_type)); 409 409 410 410 if(param) param->SetValue(intarray,M,N); //already exists, just set it. … … 417 417 418 418 /*first, figure out if the param has already been created: */ 419 param= dynamic_cast<Param*>(this->FindParamObject(enum_type));419 param=xDynamicCast<Param*>(this->FindParamObject(enum_type)); 420 420 421 421 if(param) param->SetValue(vector); //already exists, just set it. … … 428 428 429 429 /*first, figure out if the param has already been created: */ 430 param= dynamic_cast<Param*>(this->FindParamObject(enum_type));430 param=xDynamicCast<Param*>(this->FindParamObject(enum_type)); 431 431 432 432 if(param) param->SetValue(matrix); //already exists, just set it. … … 439 439 440 440 /*first, figure out if the param has already been created: */ 441 param= dynamic_cast<Param*>(this->FindParamObject(enum_type));441 param=xDynamicCast<Param*>(this->FindParamObject(enum_type)); 442 442 443 443 if(param) param->SetValue(fid); //already exists, just set it. … … 450 450 451 451 /*first, figure out if the param has already been created: */ 452 param= dynamic_cast<Param*>(this->FindParamObject(enum_type));452 param=xDynamicCast<Param*>(this->FindParamObject(enum_type)); 453 453 454 454 if(param) param->SetValue(dataset); //already exists, just set it. … … 464 464 for ( object=objects.begin() ; object < objects.end(); object++ ){ 465 465 466 param= dynamic_cast<Param*>(*object);466 param=xDynamicCast<Param*>(*object); 467 467 if(param->InstanceEnum()==enum_type){ 468 468 return (*object); -
issm/trunk-jpl/src/c/classes/Vertices.cpp
r18063 r18521 52 52 /*Go through objects, and distribute pids locally, from 0 to numberofpidsperobject*/ 53 53 for (i=0;i<this->Size();i++){ 54 Vertex* vertex= dynamic_cast<Vertex*>(this->GetObjectByOffset(i));54 Vertex* vertex=xDynamicCast<Vertex*>(this->GetObjectByOffset(i)); 55 55 vertex->DistributePids(&pidcount); 56 56 } … … 72 72 } 73 73 for (i=0;i<this->Size();i++){ 74 Vertex* vertex= dynamic_cast<Vertex*>(this->GetObjectByOffset(i));74 Vertex* vertex=xDynamicCast<Vertex*>(this->GetObjectByOffset(i)); 75 75 vertex->OffsetPids(pidcount); 76 76 } … … 82 82 alltruepids=xNewZeroInit<int>(numberofobjects); 83 83 for (i=0;i<this->Size();i++){ 84 Vertex* vertex= dynamic_cast<Vertex*>(this->GetObjectByOffset(i));84 Vertex* vertex=xDynamicCast<Vertex*>(this->GetObjectByOffset(i)); 85 85 vertex->ShowTruePids(truepids); 86 86 } … … 89 89 /* Now every cpu knows the true pids of everyone else that is not a clone*/ 90 90 for(i=0;i<this->Size();i++){ 91 Vertex* vertex= dynamic_cast<Vertex*>(this->GetObjectByOffset(i));91 Vertex* vertex=xDynamicCast<Vertex*>(this->GetObjectByOffset(i)); 92 92 vertex->UpdateClonePids(alltruepids); 93 93 } … … 128 128 for(i=0;i<this->Size();i++){ 129 129 /*For this object, decide whether it is a clone: */ 130 Vertex* vertex= dynamic_cast<Vertex*>(this->GetObjectByOffset(i));130 Vertex* vertex=xDynamicCast<Vertex*>(this->GetObjectByOffset(i)); 131 131 vertex->SetClone(minranks); 132 132 } … … 145 145 146 146 for(i=0;i<this->Size();i++){ 147 Vertex* vertex= dynamic_cast<Vertex*>(this->GetObjectByOffset(i));147 Vertex* vertex=xDynamicCast<Vertex*>(this->GetObjectByOffset(i)); 148 148 sid=vertex->Sid(); 149 149 if (sid>max_sid)max_sid=sid; … … 172 172 for(int i=0;i<this->Size();i++){ 173 173 /*Plug rank into ranks, according to id: */ 174 Vertex* vertex= dynamic_cast<Vertex*>(this->GetObjectByOffset(i));174 Vertex* vertex=xDynamicCast<Vertex*>(this->GetObjectByOffset(i)); 175 175 sid=vertex->Sid(); 176 176 ranks[sid]=my_rank; … … 202 202 203 203 /*let vertex fill matrix: */ 204 Vertex* vertex= dynamic_cast<Vertex*>(this->GetObjectByOffset(i));204 Vertex* vertex=xDynamicCast<Vertex*>(this->GetObjectByOffset(i)); 205 205 vertex->ToXYZ(xyz); 206 206 } -
issm/trunk-jpl/src/c/classes/gauss/GaussPenta.cpp
r18171 r18521 8 8 #include "../../shared/Exceptions/exceptions.h" 9 9 #include "../../shared/MemOps/MemOps.h" 10 #include "../../shared/Numerics/recast.h" 10 11 #include "../../shared/Enum/Enum.h" 11 12 #include "../../shared/Numerics/GaussPoints.h" … … 750 751 751 752 _assert_(gauss->Enum()==GaussTriaEnum); 752 GaussTria* gauss_tria = dynamic_cast<GaussTria*>(gauss);753 GaussTria* gauss_tria = xDynamicCast<GaussTria*>(gauss); 753 754 754 755 gauss_tria->coord1=this->coord1; -
issm/trunk-jpl/src/c/classes/kriging/Observations.cpp
r18064 r18521 89 89 this->quadtree->ClosestObs(&index,x[i],y[i]); 90 90 if(index>=0){ 91 observation= dynamic_cast<Observation*>(this->GetObjectByOffset(index));91 observation=xDynamicCast<Observation*>(this->GetObjectByOffset(index)); 92 92 if(pow(observation->x-x[i],2)+pow(observation->y-y[i],2) < minspacing) continue; 93 93 } … … 131 131 this->quadtree->ClosestObs(&index,x_interp,y_interp); 132 132 if(index>=0){ 133 observation= dynamic_cast<Observation*>(this->GetObjectByOffset(index));133 observation=xDynamicCast<Observation*>(this->GetObjectByOffset(index)); 134 134 hmin = sqrt((observation->x-x_interp)*(observation->x-x_interp) + (observation->y-y_interp)*(observation->y-y_interp)); 135 135 if(hmin<radius) radius=hmin; … … 139 139 this->quadtree->RangeSearch(&indices,&nobs,x_interp,y_interp,radius); 140 140 for (i=0;i<nobs;i++){ 141 observation= dynamic_cast<Observation*>(this->GetObjectByOffset(indices[i]));141 observation=xDynamicCast<Observation*>(this->GetObjectByOffset(indices[i])); 142 142 h2 = (observation->x-x_interp)*(observation->x-x_interp) + (observation->y-y_interp)*(observation->y-y_interp); 143 143 if(i==0){ … … 155 155 /*Assign output pointer*/ 156 156 if(nobs || hmin==radius){ 157 observation= dynamic_cast<Observation*>(this->GetObjectByOffset(index));157 observation=xDynamicCast<Observation*>(this->GetObjectByOffset(index)); 158 158 *px = observation->x; 159 159 *py = observation->y; … … 210 210 nobs = 0; 211 211 for(i=0;i<tempnobs;i++){ 212 observation= dynamic_cast<Observation*>(this->GetObjectByOffset(tempindices[i]));212 observation=xDynamicCast<Observation*>(this->GetObjectByOffset(tempindices[i])); 213 213 h2 = (observation->x-x_interp)*(observation->x-x_interp) + (observation->y-y_interp)*(observation->y-y_interp); 214 214 … … 252 252 /*Loop over all observations and fill in x, y and obs*/ 253 253 for(i=0;i<nobs;i++){ 254 observation= dynamic_cast<Observation*>(this->GetObjectByOffset(indices[i]));254 observation=xDynamicCast<Observation*>(this->GetObjectByOffset(indices[i])); 255 255 observation->WriteXYObs(&x[i],&y[i],&obs[i]); 256 256 } … … 280 280 obs = xNew<IssmPDouble>(nobs); 281 281 for(int i=0;i<this->Size();i++){ 282 observation= dynamic_cast<Observation*>(this->GetObjectByOffset(i));282 observation=xDynamicCast<Observation*>(this->GetObjectByOffset(i)); 283 283 observation->WriteXYObs(&x[i],&y[i],&obs[i]); 284 284 } … … 532 532 533 533 for(i=0;i<this->Size();i++){ 534 observation1= dynamic_cast<Observation*>(this->GetObjectByOffset(i));534 observation1=xDynamicCast<Observation*>(this->GetObjectByOffset(i)); 535 535 536 536 for(j=i+1;j<this->Size();j++){ 537 observation2= dynamic_cast<Observation*>(this->GetObjectByOffset(j));537 observation2=xDynamicCast<Observation*>(this->GetObjectByOffset(j)); 538 538 539 539 distance=sqrt(pow(observation1->x - observation2->x,2) + pow(observation1->y - observation2->y,2)); -
issm/trunk-jpl/src/c/cores/ad_core.cpp
r16518 r18521 111 111 112 112 /*get the EDF pointer:*/ 113 ext_diff_fct *anEDF_for_solverx_p= dynamic_cast<GenericParam<Adolc_edf> * >(femmodel->parameters->FindParamObject(AdolcParamEnum))->GetParameterValue().myEDF_for_solverx_p;113 ext_diff_fct *anEDF_for_solverx_p=xDynamicCast<GenericParam<Adolc_edf> * >(femmodel->parameters->FindParamObject(AdolcParamEnum))->GetParameterValue().myEDF_for_solverx_p; 114 114 115 115 /*Branch according to AD driver: */ -
issm/trunk-jpl/src/c/main/kriging.cpp
r16164 r18521 58 58 results->AddObject(new GenericExternalResult<double*>(results->Size()+1,1,error,ninterp,1,1,0)); 59 59 for(int i=0;i<results->Size();i++){ 60 ExternalResult* result= dynamic_cast<ExternalResult*>(results->GetObjectByOffset(i));60 ExternalResult* result=xDynamicCast<ExternalResult*>(results->GetObjectByOffset(i)); 61 61 result->WriteData(output_fid,1); 62 62 } -
issm/trunk-jpl/src/c/modules/AllocateSystemMatricesx/AllocateSystemMatricesx.cpp
r16441 r18521 134 134 k=0; 135 135 for(i=0;i<femmodel->elements->Size();i++){ 136 element = dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));136 element = xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 137 137 lidlist = xNew<int>(element->GetNumberOfNodes()); 138 138 element->GetNodesLidList(lidlist); … … 157 157 k=0; 158 158 for(i=0;i<femmodel->loads->Size();i++){ 159 load = dynamic_cast<Load*>(femmodel->loads->GetObjectByOffset(i));159 load = xDynamicCast<Load*>(femmodel->loads->GetObjectByOffset(i)); 160 160 if(!load->InAnalysis(configuration_type)) continue; 161 161 lidlist = xNew<int>(load->GetNumberOfNodes()); … … 190 190 /*Create connectivity vector*/ 191 191 for(i=0;i<femmodel->nodes->Size();i++){ 192 Node* node= dynamic_cast<Node*>(femmodel->nodes->GetObjectByOffset(i));192 Node* node=xDynamicCast<Node*>(femmodel->nodes->GetObjectByOffset(i)); 193 193 if(node->InAnalysis(configuration_type)){ 194 194 … … 214 214 for(j=head_e[node->Lid()];j!=-1;j=next_e[j]){ 215 215 offset=count2offset_e[j]; 216 element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(offset));216 element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(offset)); 217 217 element->SetwiseNodeConnectivity(&d_nz,&o_nz,node,flags,flagsindices,set1enum,set2enum); 218 218 if(node->IsClone()){ … … 226 226 for(j=head_l[node->Lid()];j!=-1;j=next_l[j]){ 227 227 offset=count2offset_l[j]; 228 load= dynamic_cast<Load*>(femmodel->loads->GetObjectByOffset(offset));228 load=xDynamicCast<Load*>(femmodel->loads->GetObjectByOffset(offset)); 229 229 load->SetwiseNodeConnectivity(&d_nz,&o_nz,node,flags,flagsindices,set1enum,set2enum); 230 230 if(node->IsClone()){ … … 256 256 o_nnz=xNew<int>(m); 257 257 for(i=0;i<femmodel->nodes->Size();i++){ 258 Node* node= dynamic_cast<Node*>(femmodel->nodes->GetObjectByOffset(i));258 Node* node=xDynamicCast<Node*>(femmodel->nodes->GetObjectByOffset(i)); 259 259 if(node->InAnalysis(configuration_type) && !node->IsClone()){ 260 260 for(j=0;j<node->indexing.fsize;j++){ -
issm/trunk-jpl/src/c/modules/AverageOntoPartitionx/AverageOntoPartitionx.cpp
r16164 r18521 41 41 /*loop on each element, and add contribution of the element to the partition (surface weighted average): */ 42 42 for(int i=0;i<elements->Size();i++){ 43 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));43 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 44 44 element->AverageOntoPartition(partition_contributions,partition_areas,vertex_response,qmu_part); 45 45 } -
issm/trunk-jpl/src/c/modules/ConfigureObjectsx/ConfigureObjectsx.cpp
r16164 r18521 24 24 if(VerboseMProcessor()) _printf0_(" Configuring elements...\n"); 25 25 for(i=0;i<elements->Size();i++){ 26 element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));26 element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 27 27 element->Configure(elements,loads,nodes,vertices,materials,parameters); 28 28 } -
issm/trunk-jpl/src/c/modules/CreateJacobianMatrixx/CreateJacobianMatrixx.cpp
r16993 r18521 29 29 /*Create and assemble matrix*/ 30 30 for(i=0;i<femmodel->elements->Size();i++){ 31 element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));31 element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 32 32 ElementMatrix* Je = analysis->CreateJacobianMatrix(element); 33 33 if(Je) Je->AddToGlobal(Jff); -
issm/trunk-jpl/src/c/modules/DragCoefficientAbsGradientx/DragCoefficientAbsGradientx.cpp
r17976 r18521 16 16 /*Compute Misfit: */ 17 17 for(int i=0;i<elements->Size();i++){ 18 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));18 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 19 19 J+=DragCoefficientAbsGradient(element); 20 20 } -
issm/trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.cpp
r18093 r18521 33 33 34 34 for(int i=0;i<femmodel->elements->Size();i++){ 35 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));35 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 36 36 element->LinearFloatingiceMeltingRate(); 37 37 } -
issm/trunk-jpl/src/c/modules/GetSolutionFromInputsx/GetSolutionFromInputsx.cpp
r16675 r18521 32 32 Analysis* analysis = EnumToAnalysis(analysisenum); 33 33 for(int i=0;i<femmodel->elements->Size();i++){ 34 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));34 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 35 35 analysis->GetSolutionFromInputs(solution,element); 36 36 } -
issm/trunk-jpl/src/c/modules/GetVectorFromInputsx/GetVectorFromInputsx.cpp
r17275 r18521 19 19 /*Look up in elements*/ 20 20 for(i=0;i<femmodel->elements->Size();i++){ 21 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));21 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 22 22 element->GetVectorFromInputs(vector,name); 23 23 } -
issm/trunk-jpl/src/c/modules/GroundinglineMigrationx/GroundinglineMigrationx.cpp
r18063 r18521 47 47 /*Migrate grounding line : */ 48 48 for(int i=0;i<elements->Size();i++){ 49 element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));49 element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 50 50 element->MigrateGroundingLine(phi_ungrounding); 51 51 } … … 72 72 /*Fill vector vertices_potentially_floating: */ 73 73 for(int i=0;i<elements->Size();i++){ 74 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));74 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 75 75 element->FSContactMigration(vertexgrounded,vertexfloating); 76 76 } … … 120 120 /*Fill vector vertices_potentially_floating: */ 121 121 for(i=0;i<elements->Size();i++){ 122 element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));122 element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 123 123 element->PotentialUngrounding(vec_vertices_potentially_ungrounding); 124 124 } … … 148 148 vec_phi=new Vector<IssmDouble>(vertices->NumberOfVertices()); 149 149 for(i=0;i<elements->Size();i++){ 150 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));150 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 151 151 element->GetVectorFromInputs(vec_phi,MaskGroundediceLevelsetEnum); 152 152 } … … 162 162 /*Figure out if any of the nodes of the element will be floating -> elements neighbouting the floating ice*/ 163 163 for(i=0;i<elements->Size();i++){ 164 element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));164 element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 165 165 vec_elements_neighboring_floatingice->SetValue(element->Sid(),element->IsNodeOnShelfFromFlags(phi)?1.0:0.0,INS_VAL); 166 166 } … … 173 173 local_nflipped=0; 174 174 for(i=0;i<elements->Size();i++){ 175 element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));175 element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 176 176 if(reCast<int,IssmDouble>(elements_neighboring_floatingce[element->Sid()])){ 177 177 local_nflipped+=element->UpdatePotentialUngrounding(vertices_potentially_ungrounding,vec_phi,phi); -
issm/trunk-jpl/src/c/modules/InputControlUpdatex/InputControlUpdatex.cpp
r14999 r18521 12 12 /*Go through elemnets, and ask to carry out the operation on inputs: */ 13 13 for(int i=0;i<elements->Size();i++){ 14 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));14 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 15 15 element->InputControlUpdate(scalar,save_parameter); 16 16 } -
issm/trunk-jpl/src/c/modules/InputDepthAverageAtBasex/InputDepthAverageAtBasex.cpp
r17862 r18521 10 10 void InputDepthAverageAtBasex(FemModel* femmodel,int original_enum, int new_enum){ 11 11 for(int i=0;i<femmodel->elements->Size();i++){ 12 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));12 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 13 13 element->InputDepthAverageAtBase(original_enum,new_enum); 14 14 } -
issm/trunk-jpl/src/c/modules/InputDuplicatex/InputDuplicatex.cpp
r17275 r18521 11 11 /*Go through elemnets, and ask to reinitialie the input: */ 12 12 for(int i=0;i<femmodel->elements->Size();i++){ 13 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));13 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 14 14 element->InputDuplicate(original_enum,new_enum); 15 15 } -
issm/trunk-jpl/src/c/modules/InputExtrudex/InputExtrudex.cpp
r18450 r18521 10 10 void InputExtrudex(FemModel* femmodel,int input_enum,int start){ 11 11 for(int i=0;i<femmodel->elements->Size();i++){ 12 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));12 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 13 13 element->InputExtrude(input_enum,start); 14 14 } -
issm/trunk-jpl/src/c/modules/InputScalex/InputScalex.cpp
r14999 r18521 15 15 /*Go through elemnets, and ask to reinitialie the input: */ 16 16 for(i=0;i<elements->Size();i++){ 17 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));17 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 18 18 element->InputScale(enum_type,scale_factor); 19 19 } -
issm/trunk-jpl/src/c/modules/InputUpdateFromConstantx/InputUpdateFromConstantx.cpp
r16218 r18521 14 14 /*Elements and loads drive the update: */ 15 15 for(i=0;i<femmodel->elements->Size();i++){ 16 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));16 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 17 17 element->InputUpdateFromConstant(constant,name); 18 18 } … … 35 35 /*Elements and loads drive the update: */ 36 36 for(i=0;i<femmodel->elements->Size();i++){ 37 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));37 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 38 38 element->InputUpdateFromConstant(constant,name); 39 39 } … … 56 56 /*Elements and loads drive the update: */ 57 57 for(i=0;i<femmodel->elements->Size();i++){ 58 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));58 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 59 59 element->InputUpdateFromConstant(constant,name); 60 60 } … … 78 78 /*Elements and loads drive the update: */ 79 79 for(i=0;i<elements->Size();i++){ 80 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));80 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 81 81 element->InputUpdateFromConstant(constant,name); 82 82 } -
issm/trunk-jpl/src/c/modules/InputUpdateFromMatrixDakotax/InputUpdateFromMatrixDakotax.cpp
r16125 r18521 20 20 /*Update elements, nodes, loads and materials from inputs: */ 21 21 for(i=0;i<femmodel->elements->Size();i++){ 22 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));22 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 23 23 element->InputUpdateFromMatrixDakota(matrix,nrows,ncols,name,type); 24 24 } -
issm/trunk-jpl/src/c/modules/InputUpdateFromSolutionx/InputUpdateFromSolutionx.cpp
r18257 r18521 30 30 Analysis* analysis = EnumToAnalysis(analysisenum); 31 31 for(int i=0;i<femmodel->elements->Size();i++){ 32 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));32 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 33 33 analysis->InputUpdateFromSolution(solution,element); 34 34 } -
issm/trunk-jpl/src/c/modules/InputUpdateFromVectorDakotax/InputUpdateFromVectorDakotax.cpp
r16125 r18521 22 22 /*Update elements, nodes, loads and materials from inputs: */ 23 23 for(i=0;i<femmodel->elements->Size();i++){ 24 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));24 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 25 25 element->InputUpdateFromVectorDakota(vector,name,type); 26 26 } -
issm/trunk-jpl/src/c/modules/InputUpdateFromVectorx/InputUpdateFromVectorx.cpp
r16125 r18521 20 20 /*Update elements, nodes, loads and materials from inputs: */ 21 21 for(i=0;i<femmodel->elements->Size();i++){ 22 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));22 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 23 23 element->InputUpdateFromVector(vector,name,type); 24 24 } -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateOutputDefinitions.cpp
r16787 r18521 84 84 /*Now, for this particular misfit object, make sure we plug into the elements: the observation, and the weights.*/ 85 85 for(i=0;i<elements->Size();i++){ 86 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));86 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 87 87 element->InputCreate(misfit_observation_s[j], iomodel,misfit_observation_M_s[j],misfit_observation_N_s[j],1,misfit_observation_enum_s[j],7); 88 88 element->InputCreate(misfit_weights_s[j], iomodel,misfit_weights_M_s[j],misfit_weights_N_s[j],1,misfit_weights_enum_s[j],7); -
issm/trunk-jpl/src/c/modules/NodalValuex/NodalValuex.cpp
r16164 r18521 20 20 *element, figure out if they hold the vertex, and the data. If so, return it: */ 21 21 for(int i=0;i<elements->Size();i++){ 22 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));22 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 23 23 found=element->NodalValue(&value,index,natureofdataenum); 24 24 if(found){ -
issm/trunk-jpl/src/c/modules/OutputDefinitionsResponsex/OutputDefinitionsResponsex.cpp
r16794 r18521 20 20 for(int i=0;i<output_definitions->Size();i++){ 21 21 22 definition= dynamic_cast<Definition*>(output_definitions->GetObjectByOffset(i));22 definition=xDynamicCast<Definition*>(output_definitions->GetObjectByOffset(i)); 23 23 24 24 char* name = definition->Name(); -
issm/trunk-jpl/src/c/modules/ResetFSBasalBoundaryConditionx/ResetFSBasalBoundaryConditionx.cpp
r17322 r18521 12 12 13 13 for (int i=0;i<elements->Size();i++){ 14 element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));14 element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 15 15 element->ResetFSBasalBoundaryCondition(); 16 16 } -
issm/trunk-jpl/src/c/modules/RheologyBbarAbsGradientx/RheologyBbarAbsGradientx.cpp
r17976 r18521 16 16 /*Compute Misfit: */ 17 17 for(int i=0;i<elements->Size();i++){ 18 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));18 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 19 19 J+=RheologyBbarAbsGradient(element); 20 20 } -
issm/trunk-jpl/src/c/modules/SetActiveNodesLSMx/SetActiveNodesLSMx.cpp
r17700 r18521 22 22 23 23 for(i=0;i<elements->Size();i++){ 24 Element *element = dynamic_cast<Element*>(elements->GetObjectByOffset(i));24 Element *element = xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 25 25 int numnodes = element->GetNumberOfNodes(); 26 26 IssmDouble *mask = xNew<IssmDouble>(numnodes); … … 104 104 /*Fill vector with values: */ 105 105 for(i=0;i<femmodel->elements->Size();i++){ 106 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));106 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 107 107 SetMaskOfIceElement(vec_mask_ice, element); 108 108 } -
issm/trunk-jpl/src/c/modules/SurfaceAbsVelMisfitx/SurfaceAbsVelMisfitx.cpp
r17976 r18521 16 16 /*Compute Misfit: */ 17 17 for(int i=0;i<elements->Size();i++){ 18 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));18 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 19 19 J+=SurfaceAbsVelMisfit(element); 20 20 } -
issm/trunk-jpl/src/c/modules/SurfaceAreax/SurfaceAreax.cpp
r15849 r18521 20 20 /*Compute gradients: */ 21 21 for(int i=0;i<femmodel->elements->Size();i++){ 22 element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));22 element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 23 23 S+=element->SurfaceArea(); 24 24 } -
issm/trunk-jpl/src/c/modules/SurfaceAverageVelMisfitx/SurfaceAverageVelMisfitx.cpp
r17976 r18521 17 17 /*Compute Misfit: */ 18 18 for(int i=0;i<femmodel->elements->Size();i++){ 19 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));19 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 20 20 J+=SurfaceAverageVelMisfit(element); 21 21 } -
issm/trunk-jpl/src/c/modules/SurfaceLogVelMisfitx/SurfaceLogVelMisfitx.cpp
r17976 r18521 16 16 /*Compute Misfit: */ 17 17 for(int i=0;i<elements->Size();i++){ 18 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));18 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 19 19 J+=SurfaceLogVelMisfit(element); 20 20 } -
issm/trunk-jpl/src/c/modules/SurfaceLogVxVyMisfitx/SurfaceLogVxVyMisfitx.cpp
r17976 r18521 16 16 /*Compute Misfit: */ 17 17 for(int i=0;i<elements->Size();i++){ 18 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));18 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 19 19 J+=SurfaceLogVxVyMisfit(element); 20 20 } -
issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp
r18266 r18521 64 64 /*Loop over all the elements of this partition*/ 65 65 for(int i=0;i<femmodel->elements->Size();i++){ 66 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));66 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 67 67 68 68 /*Allocate all arrays*/ … … 113 113 114 114 for(int i=0;i<femmodel->elements->Size();i++){ 115 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));115 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 116 116 element->Delta18oParameterization(); 117 117 } … … 204 204 205 205 for(i=0;i<femmodel->elements->Size();i++){ 206 element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));206 element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 207 207 element->PositiveDegreeDay(pdds,pds,signorm); 208 208 } … … 234 234 /*Loop over all the elements of this partition*/ 235 235 for(int i=0;i<femmodel->elements->Size();i++){ 236 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));236 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 237 237 238 238 /*Get reference SMB (uncorrected) and allocate all arrays*/ … … 292 292 /*Loop over all the elements of this partition*/ 293 293 for(int i=0;i<femmodel->elements->Size();i++){ 294 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));294 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 295 295 296 296 /*Allocate all arrays*/ … … 333 333 /*Loop over all the elements of this partition*/ 334 334 for(int i=0;i<femmodel->elements->Size();i++){ 335 Element* element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));335 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 336 336 337 337 /*Allocate all arrays*/ -
issm/trunk-jpl/src/c/modules/SurfaceRelVelMisfitx/SurfaceRelVelMisfitx.cpp
r17976 r18521 16 16 /*Compute Misfit: */ 17 17 for(int i=0;i<elements->Size();i++){ 18 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));18 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 19 19 J+=SurfaceRelVelMisfit(element); 20 20 } -
issm/trunk-jpl/src/c/modules/SystemMatricesx/SystemMatricesx.cpp
r17492 r18521 40 40 /*Get complete stiffness matrix without penalties*/ 41 41 for (i=0;i<femmodel->elements->Size();i++){ 42 element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));42 element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 43 43 ElementMatrix* Ke = analysis->CreateKMatrix(element); 44 44 ElementVector* pe = analysis->CreatePVector(element); … … 50 50 51 51 for (i=0;i<femmodel->loads->Size();i++){ 52 load= dynamic_cast<Load*>(femmodel->loads->GetObjectByOffset(i));52 load=xDynamicCast<Load*>(femmodel->loads->GetObjectByOffset(i)); 53 53 if(load->InAnalysis(configuration_type)) load->CreateKMatrix(Kff_temp,NULL); 54 54 } … … 71 71 /*Fill stiffness matrix and load vector from elements*/ 72 72 for (i=0;i<femmodel->elements->Size();i++){ 73 element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));73 element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 74 74 ElementMatrix* Ke = analysis->CreateKMatrix(element); 75 75 ElementVector* pe = analysis->CreatePVector(element); … … 85 85 /*Fill stiffness matrix and load vector from loads*/ 86 86 for(i=0;i<femmodel->loads->Size();i++){ 87 load= dynamic_cast<Load*>(femmodel->loads->GetObjectByOffset(i));87 load=xDynamicCast<Load*>(femmodel->loads->GetObjectByOffset(i)); 88 88 if(load->InAnalysis(configuration_type)){ 89 89 load->CreateKMatrix(Kff,Kfs); … … 95 95 if(femmodel->loads->IsPenalty(configuration_type)){ 96 96 for (i=0;i<femmodel->loads->Size();i++){ 97 load= dynamic_cast<Load*>(femmodel->loads->GetObjectByOffset(i));97 load=xDynamicCast<Load*>(femmodel->loads->GetObjectByOffset(i)); 98 98 if(load->InAnalysis(configuration_type)){ 99 99 load->PenaltyCreateKMatrix(Kff,Kfs,kmax); … … 106 106 if(pdf){ 107 107 for(i=0;i<femmodel->elements->Size();i++){ 108 element= dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));108 element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 109 109 ElementVector* de=analysis->CreateDVector(element); 110 110 if(de) de->InsertIntoGlobal(df); -
issm/trunk-jpl/src/c/modules/ThicknessAbsMisfitx/ThicknessAbsMisfitx.cpp
r17976 r18521 16 16 /*Compute Misfit: */ 17 17 for(int i=0;i<elements->Size();i++){ 18 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));18 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 19 19 J+=ThicknessAbsMisfit(element); 20 20 } -
issm/trunk-jpl/src/c/modules/ThicknessAcrossGradientx/ThicknessAcrossGradientx.cpp
r17976 r18521 16 16 /*Compute Misfit: */ 17 17 for(int i=0;i<elements->Size();i++){ 18 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));18 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 19 19 J+=ThicknessAcrossGradient(element); 20 20 } -
issm/trunk-jpl/src/c/modules/ThicknessAlongGradientx/ThicknessAlongGradientx.cpp
r17976 r18521 16 16 /*Compute Misfit: */ 17 17 for(int i=0;i<elements->Size();i++){ 18 Element* element= dynamic_cast<Element*>(elements->GetObjectByOffset(i));18 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 19 19 J+=ThicknessAlongGradient(element); 20 20 } -
issm/trunk-jpl/src/c/shared/Numerics/recast.h
r14975 r18521 40 40 #endif 41 41 42 /*Morlighem's change: we do not want dynamic_casts because of performance 43 * issue, so for now, we just use C-like cast*/ 44 template<class To,class From> To xDynamicCast(const From& from) { 45 46 /*C-like cast (fast but not safe)*/ 47 return (To) from; 48 49 /*C++ dynamic_cast, poor performance but safer*/ 50 //return dynamic_cast<To>(from); 51 } 52 42 53 #endif -
issm/trunk-jpl/src/c/toolkits/gsl/DenseGslSolve.cpp
r17343 r18521 235 235 IssmPDouble* pdoubleEDFout=xNew<IssmPDouble>(n); // provide space to transfer outputs during call_ext_fct 236 236 // call the wrapped solver through the registry entry we retrieve from parameters 237 call_ext_fct( dynamic_cast<GenericParam<Adolc_edf> * >(parameters->FindParamObject(AdolcParamEnum))->GetParameterValue().myEDF_for_solverx_p,237 call_ext_fct(xDynamicCast<GenericParam<Adolc_edf> * >(parameters->FindParamObject(AdolcParamEnum))->GetParameterValue().myEDF_for_solverx_p, 238 238 n*(n+1), pdoubleEDFin, adoubleEDFin, 239 239 n, pdoubleEDFout,X); -
issm/trunk-jpl/src/c/toolkits/mumps/MpiDenseMumpsSolve.cpp
r16259 r18521 244 244 IssmPDouble *passiveSol=xNew<IssmPDouble>(n); 245 245 IssmDouble *sol=xNew<IssmDouble>(n); 246 call_ext_fct( dynamic_cast<GenericParam<Adolc_edf> * >(parameters->FindParamObject(AdolcParamEnum))->GetParameterValue().myEDF_for_solverx_p,246 call_ext_fct(xDynamicCast<GenericParam<Adolc_edf> * >(parameters->FindParamObject(AdolcParamEnum))->GetParameterValue().myEDF_for_solverx_p, 247 247 packedDimsSparseArrLength, packedDimsSparseArr, 248 248 local_nnz+n, passivePack_A_rhs, pack_A_rhs, -
issm/trunk-jpl/src/c/toolkits/mumps/MumpsSolve.cpp
r17924 r18521 324 324 IssmPDouble *passiveSol=xNew<IssmPDouble>(n); 325 325 IssmDouble *sol=xNew<IssmDouble>(n); 326 call_ext_fct( dynamic_cast<GenericParam<Adolc_edf> * >(parameters->FindParamObject(AdolcParamEnum))->GetParameterValue().myEDF_for_solverx_p,326 call_ext_fct(xDynamicCast<GenericParam<Adolc_edf> * >(parameters->FindParamObject(AdolcParamEnum))->GetParameterValue().myEDF_for_solverx_p, 327 327 packedDimsSparseArrLength, packedDimsSparseArr, 328 328 local_nnz+n, passivePack_A_rhs, pack_A_rhs,
Note:
See TracChangeset
for help on using the changeset viewer.