Changeset 13798


Ignore:
Timestamp:
10/22/12 15:00:16 (13 years ago)
Author:
Mathieu Morlighem
Message:

CHG: use dynamic_cast instead of C-style casting

Location:
issm/trunk-jpl/src/c
Files:
54 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/Container/DataSet.cpp

    r13763 r13798  
    5050DataSet*   DataSet::Copy(void){
    5151
    52         DataSet* copy=NULL;
    5352        vector<Object*>::iterator object;
    5453        Object* object_copy=NULL;
    5554
    56         copy=new DataSet(enum_type);
     55        DataSet* copy=new DataSet(enum_type);
    5756
    5857        copy->sorted=sorted;
  • issm/trunk-jpl/src/c/Container/Inputs.cpp

    r13797 r13798  
    208208void  Inputs::ConstrainMin(int constrain_enum, IssmDouble minimum){
    209209
    210         Input* constrain_input=NULL;
    211210        /*Find x and y inputs: */
    212         constrain_input=dynamic_cast<Input*>(this->GetInput(constrain_enum));
     211        Input* constrain_input=dynamic_cast<Input*>(this->GetInput(constrain_enum));
    213212
    214213        /*some checks: */
  • issm/trunk-jpl/src/c/Container/Nodes.cpp

    r13790 r13798  
    154154        int num_procs;
    155155
    156         int* ranks=NULL;
    157         int* minranks=NULL;
    158156        int  numnodes;
    159157
     
    165163
    166164        /*Allocate ranks: */
    167         ranks=xNew<int>(numnodes);
    168         minranks=xNew<int>(numnodes);
     165        int* ranks    = xNew<int>(numnodes);
     166        int* minranks = xNew<int>(numnodes);
    169167        for(i=0;i<numnodes;i++)ranks[i]=num_procs; //no cpu can have rank num_procs. This is the maximum limit.
    170168
  • issm/trunk-jpl/src/c/classes/FemModel.cpp

    r13784 r13798  
    534534
    535535        for (i=1;i<elements->Size();i++){
    536                 element=(Element*)elements->GetObjectByOffset(i);
     536                element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    537537                dt=element->TimeAdapt();
    538538                if(dt<min_dt)min_dt=dt;
     
    808808        /*Compute Misfit: */
    809809        for (i=0;i<elements->Size();i++){
    810                 element=(Element*)elements->GetObjectByOffset(i);
     810                element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    811811                J+=element->ThicknessAbsGradient(process_units,weight_index);
    812812        }
  • issm/trunk-jpl/src/c/classes/Hook.cpp

    r13622 r13798  
    173173                /*Now, for this->objects that did not get resolved, and for which we have no offset, chase them in the dataset, by id: */
    174174                if(this->objects[i]==NULL){
    175                         this->objects[i]=(Object*)dataset->GetObjectById(this->offsets+i,this->ids[i]); //remember the offset for later on.
     175                        this->objects[i]=dynamic_cast<Object*>(dataset->GetObjectById(this->offsets+i,this->ids[i])); //remember the offset for later on.
    176176                        /*check the id is correct!: */
    177177                        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/IoModel.cpp

    r13787 r13798  
    186186
    187187        /*Find constant*/
    188         Param* param=(Param*)this->constants->FindParamObject(constant_enum);
     188        Param* param=dynamic_cast<Param*>(this->constants->FindParamObject(constant_enum));
    189189        if(!param) _error_("Constant " << EnumToStringx(constant_enum) << " not found in iomodel");
    190190
    191         return (Param*)param->copy();
     191        return dynamic_cast<Param*>(param->copy());
    192192}
    193193/*}}}*/
     
    11051105                        for (i=0;i<numberofelements;i++){
    11061106                                if(this->my_elements[i]){
    1107                                         Element* element=(Element*)elements->GetObjectByOffset(counter);
     1107                                        Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(counter));
    11081108                                        element->InputCreate((IssmDouble)boolean,vector_enum,code);
    11091109                                        counter++;
     
    11181118                        for (i=0;i<numberofelements;i++){
    11191119                                if(this->my_elements[i]){
    1120                                         Element* element=(Element*)elements->GetObjectByOffset(counter);
     1120                                        Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(counter));
    11211121                                        element->InputCreate((IssmDouble)integer,vector_enum,code);
    11221122                                        counter++;
     
    11311131                        for (i=0;i<numberofelements;i++){
    11321132                                if(this->my_elements[i]){
    1133                                         Element* element=(Element*)elements->GetObjectByOffset(counter);
     1133                                        Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(counter));
    11341134                                        element->InputCreate(scalar,vector_enum,code);
    11351135                                        counter++;
     
    11681168                        for (i=0;i<numberofelements;i++){
    11691169                                if(this->my_elements[i]){
    1170                                         Element* element=(Element*)elements->GetObjectByOffset(counter);
     1170                                        Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(counter));
    11711171                                        if(defaulting) element->InputCreate(default_value,vector_enum,code);
    11721172                                        else           element->InputCreate(IssmDoublevector,i,this,M,N,vector_layout,vector_enum,code);//we need i to index into elements.
     
    12061206                        for (i=0;i<numberofelements;i++){
    12071207                                if(this->my_elements[i]){
    1208                                         Element* element=(Element*)elements->GetObjectByOffset(counter);
     1208                                        Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(counter));
    12091209                                        if(defaulting) element->InputCreate(default_value,vector_enum,code);
    12101210                                        else           element->InputCreate(IssmDoublevector,i,this,M,N,vector_layout,vector_enum,code);//we need i to index into elements.
     
    12441244                        for (i=0;i<numberofelements;i++){
    12451245                                if(this->my_elements[i]){
    1246                                         Element* element=(Element*)elements->GetObjectByOffset(counter);
     1246                                        Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(counter));
    12471247                                        if(defaulting) element->InputCreate(default_value,vector_enum,code);
    12481248                                        else           element->InputCreate(IssmDoublevector,i,this,M,N,vector_layout,vector_enum,code);//we need i to index into elements.
  • issm/trunk-jpl/src/c/classes/bamg/Geometry.cpp

    r13761 r13798  
    499499                /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, MeshGeom.cpp/AfterRead)*/
    500500
    501                 long               i,j,k;
    502                 long              *head_v   = new long[nbv];
    503                 long              *next_p   = new long[2*nbe];
    504                 float             *eangle   = new float[nbe];
    505                 double             eps      = 1e-20;
    506                 BamgQuadtree       quadtree; // build quadtree to find duplicates
    507                 BamgVertex        *v0       = vertices;
    508                 GeomVertex *v0g      = (GeomVertex*) (void*)v0;
     501                long          i          ,j,k;
     502                long         *head_v   = new long[nbv];
     503                long         *next_p   = new long[2 *nbe];
     504                float        *eangle   = new float[nbe];
     505                double        eps      = 1e-20;
     506                BamgQuadtree  quadtree;                            // build quadtree to find duplicates
     507                BamgVertex   *v0       = vertices;
    509508
    510509                k=0;
     
    868867                directionge[bge]=1;
    869868
    870                 while (eg0!=(GeomEdge*)vg0 && (*eg0)(direction0)!=(GeomVertex*)vg0){
     869                while(eg0!=(GeomEdge*)vg0 && (*eg0)(direction0)!=(GeomVertex*)vg0){
    871870                        if (bge<=0) {
    872871                                if(NbTry) {
  • issm/trunk-jpl/src/c/modules/AverageOntoPartitionx/AverageOntoPartitionx.cpp

    r13762 r13798  
    4747        /*loop on each element, and add contribution of the element to the partition (surface weighted average): */
    4848        for(int i=0;i<elements->Size();i++){
    49                 Element* element=(Element*)elements->GetObjectByOffset(i);
     49                Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    5050                element->AverageOntoPartition(partition_contributions,partition_areas,vertex_response,qmu_part);
    5151        }
  • issm/trunk-jpl/src/c/modules/ComputeBasalStressx/ComputeBasalStressx.cpp

    r13622 r13798  
    2929        /*Compute basal stress for each element: */
    3030        for (i=0;i<elements->Size();i++){
    31                 element=(Element*)elements->GetObjectByOffset(i);
     31                element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    3232                element->ComputeBasalStress(sigma);
    3333        }
  • issm/trunk-jpl/src/c/modules/ComputeStrainRatex/ComputeStrainRatex.cpp

    r13622 r13798  
    2929        /*Compute basal stress for each element: */
    3030        for (i=0;i<elements->Size();i++){
    31                 element=(Element*)elements->GetObjectByOffset(i);
     31                element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    3232                element->ComputeStrainRate(eps);
    3333        }
  • issm/trunk-jpl/src/c/modules/ConfigureObjectsx/ConfigureObjectsx.cpp

    r13622 r13798  
    2727        if(VerboseMProcessor()) _pprintLine_("      Configuring elements...");
    2828        for (i=0;i<elements->Size();i++){
    29                 element=(Element*)elements->GetObjectByOffset(i);
     29                element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    3030                element->Configure(elements,loads,nodes,materials,parameters);
    3131        }
  • issm/trunk-jpl/src/c/modules/CreateJacobianMatrixx/CreateJacobianMatrixx.cpp

    r13622 r13798  
    3333        /*Create and assemble matrix*/
    3434        for(i=0;i<elements->Size();i++){
    35                 element=(Element*)elements->GetObjectByOffset(i);
     35                element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    3636                element->CreateJacobianMatrix(Jff);
    3737        }
  • issm/trunk-jpl/src/c/modules/Delta18oParameterizationx/Delta18oParameterizationx.cpp

    r13622 r13798  
    1818  /*Compute temperature and precipitation fields: */
    1919  for(i=0;i<elements->Size();i++){
    20     element=(Element*)elements->GetObjectByOffset(i);
     20    element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    2121    element->Delta18oParameterization();
    2222  } 
  • issm/trunk-jpl/src/c/modules/DragCoefficientAbsGradientx/DragCoefficientAbsGradientx.cpp

    r13590 r13798  
    2222        /*Compute Misfit: */
    2323        for (i=0;i<elements->Size();i++){
    24                 element=(Element*)elements->GetObjectByOffset(i);
     24                element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    2525                J+=element->DragCoefficientAbsGradient(process_units,weight_index);
    2626        }
  • issm/trunk-jpl/src/c/modules/ElementResponsex/ElementResponsex.cpp

    r13622 r13798  
    2828        /*now, go through our elements, and retrieve the one with this id: index: */
    2929        for(i=0;i<elements->Size();i++){
    30                 element=(Element*)elements->GetObjectByOffset(i);
     30                element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    3131                if (element->Id()==index){
    3232                        found=1;
  • issm/trunk-jpl/src/c/modules/GetSolutionFromInputsx/GetSolutionFromInputsx.cpp

    r13622 r13798  
    3333        /*Go through elements and plug solution: */
    3434        for (i=0;i<elements->Size();i++){
    35                 element=(Element*)elements->GetObjectByOffset(i);
     35                element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    3636                element->GetSolutionFromInputs(solution);
    3737        }
  • issm/trunk-jpl/src/c/modules/GetVectorFromInputsx/GetVectorFromInputsx.cpp

    r13622 r13798  
    2121                /*Look up in elements*/
    2222                for(i=0;i<elements->Size();i++){
    23                         Element* element=(Element*)elements->GetObjectByOffset(i);
     23                        Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    2424                        element->GetVectorFromInputs(vector,name);
    2525                }
  • issm/trunk-jpl/src/c/modules/GroundinglineMigrationx/GroundinglineMigrationx.cpp

    r13622 r13798  
    4343        /*Migrate grounding line : */
    4444        for(i=0;i<elements->Size();i++){
    45                 element=(Element*)elements->GetObjectByOffset(i);
     45                element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    4646                element->MigrateGroundingLine(old_floatingice,vertices_ungrounding);
    4747        }
     
    9595        /*Fill vector vertices_potentially_floating: */
    9696        for(i=0;i<elements->Size();i++){
    97                 element=(Element*)elements->GetObjectByOffset(i);
     97                element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    9898                element->PotentialSheetUngrounding(vec_vertices_potentially_ungrounding);
    9999        }
     
    137137                /*Figure out if any of the nodes of the element will be floating -> elements neighbouting the floating ice*/
    138138                for(i=0;i<elements->Size();i++){
    139                         element=(Element*)elements->GetObjectByOffset(i);
     139                        element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    140140                        vec_elements_neighboring_floatingice->SetValue(element->Sid(),element->IsNodeOnShelfFromFlags(nodes_on_floatingice)?1.0:0.0,INS_VAL);
    141141                }
     
    148148                local_nflipped=0;
    149149                for(i=0;i<elements->Size();i++){
    150                         element=(Element*)elements->GetObjectByOffset(i);
     150                        element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    151151                        if(reCast<int,IssmDouble>(elements_neighboring_floatingce[element->Sid()])){
    152152                                local_nflipped+=element->UpdatePotentialSheetUngrounding(vertices_potentially_ungrounding,vec_nodes_on_floatingice,nodes_on_floatingice);
  • issm/trunk-jpl/src/c/modules/IceVolumex/IceVolumex.cpp

    r13590 r13798  
    1616
    1717        for(int i=0;i<elements->Size();i++){
    18                 Element* element=(Element*)elements->GetObjectByOffset(i);
     18                Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    1919                local_ice_volume+=element->IceVolume();
    2020        }
  • issm/trunk-jpl/src/c/modules/InputArtificialNoisex/InputArtificialNoisex.cpp

    r12470 r13798  
    1515        /*Update elements, nodes, loads and materials from inputs: */
    1616        for(i=0;i<elements->Size();i++){
    17                 Element* element=(Element*)elements->GetObjectByOffset(i);
     17                Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    1818                element->InputArtificialNoise(enum_name,min,max);
    1919        }
  • issm/trunk-jpl/src/c/modules/InputControlUpdatex/InputControlUpdatex.cpp

    r13073 r13798  
    1313        /*Go through elemnets, and ask to carry out the operation on inputs: */
    1414        for(int i=0;i<elements->Size();i++){
    15                 Element* element=(Element*)elements->GetObjectByOffset(i);
     15                Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    1616                element->InputControlUpdate(scalar,save_parameter);
    1717        }
  • issm/trunk-jpl/src/c/modules/InputConvergencex/InputConvergencex.cpp

    r13590 r13798  
    2424        /*Go through elements, and ask them to do the job: */
    2525        for(i=0;i<elements->Size();i++){
    26                 element=(Element*)elements->GetObjectByOffset(i);
     26                element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    2727                converged=element->InputConvergence(eps,enums,num_enums,criterionenums,criterionvalues,num_criterionenums);
    2828                if(!converged) num_notconverged++;
  • issm/trunk-jpl/src/c/modules/InputDuplicatex/InputDuplicatex.cpp

    r13622 r13798  
    1414        int      i;
    1515        for(i=0;i<elements->Size();i++){
    16                 Element* element=(Element*)elements->GetObjectByOffset(i);
     16                Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    1717                element->InputDuplicate(original_enum,new_enum);
    1818        }
  • issm/trunk-jpl/src/c/modules/InputScalex/InputScalex.cpp

    r12470 r13798  
    1616        /*Go through elemnets, and ask to reinitialie the input: */
    1717        for(i=0;i<elements->Size();i++){
    18                 Element* element=(Element*)elements->GetObjectByOffset(i);
     18                Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    1919                element->InputScale(enum_type,scale_factor);
    2020        }
  • issm/trunk-jpl/src/c/modules/InputToResultx/InputToResultx.cpp

    r12470 r13798  
    2323        for(int i=0;i<elements->Size();i++){
    2424
    25                 element=(Element*)elements->GetObjectByOffset(i);
     25                element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    2626                element->InputToResult(enum_type,step,time);
    2727        }
  • issm/trunk-jpl/src/c/modules/InputUpdateFromConstantx/InputUpdateFromConstantx.cpp

    r13622 r13798  
    1515        /*Elements and loads drive the update: */
    1616        for(i=0;i<elements->Size();i++){
    17                 Element* element=(Element*)elements->GetObjectByOffset(i);
     17                Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    1818                element->InputUpdateFromConstant(constant,name);
    1919        }
     
    3535        /*Elements and loads drive the update: */
    3636        for(i=0;i<elements->Size();i++){
    37                 Element* element=(Element*)elements->GetObjectByOffset(i);
     37                Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    3838                element->InputUpdateFromConstant(constant,name);
    3939        }
     
    5555        /*Elements and loads drive the update: */
    5656        for(i=0;i<elements->Size();i++){
    57                 Element* element=(Element*)elements->GetObjectByOffset(i);
     57                Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    5858                element->InputUpdateFromConstant(constant,name);
    5959        }
  • issm/trunk-jpl/src/c/modules/InputUpdateFromMatrixDakotax/InputUpdateFromMatrixDakotax.cpp

    r10576 r13798  
    2222                /*Update elements, nodes, loads and materials from inputs: */
    2323                for(i=0;i<elements->Size();i++){
    24                         Element* element=(Element*)elements->GetObjectByOffset(i);
     24                        Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    2525                        element->InputUpdateFromMatrixDakota(matrix,nrows,ncols,name,type);
    2626                }
  • issm/trunk-jpl/src/c/modules/InputUpdateFromSolutionx/InputUpdateFromSolutionx.cpp

    r13622 r13798  
    3131        /*Elements drive the update: */
    3232        for (i=0;i<elements->Size();i++){
    33                 element=(Element*)elements->GetObjectByOffset(i);
     33                element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    3434                element->InputUpdateFromSolution(solution);
    3535        }
  • issm/trunk-jpl/src/c/modules/InputUpdateFromVectorDakotax/InputUpdateFromVectorDakotax.cpp

    r13622 r13798  
    2727        /*Update elements, nodes, loads and materials from inputs: */
    2828        for(i=0;i<elements->Size();i++){
    29                 Element* element=(Element*)elements->GetObjectByOffset(i);
     29                Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    3030                element->InputUpdateFromVectorDakota(vector,name,type);
    3131        }
     
    5050        /*Update elements, nodes, loads and materials from inputs: */
    5151        for(i=0;i<elements->Size();i++){
    52                 Element* element=(Element*)elements->GetObjectByOffset(i);
     52                Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    5353                element->InputUpdateFromVectorDakota(vector,name,type);
    5454        }
     
    7373        /*Update elements, nodes, loads and materials from inputs: */
    7474        for(i=0;i<elements->Size();i++){
    75                 Element* element=(Element*)elements->GetObjectByOffset(i);
     75                Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    7676                element->InputUpdateFromVectorDakota(vector,name,type);
    7777        }
  • issm/trunk-jpl/src/c/modules/InputUpdateFromVectorx/InputUpdateFromVectorx.cpp

    r13622 r13798  
    2727        /*Update elements, nodes, loads and materials from inputs: */
    2828        for(i=0;i<elements->Size();i++){
    29                 Element* element=(Element*)elements->GetObjectByOffset(i);
     29                Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    3030                element->InputUpdateFromVector(vector,name,type);
    3131        }
     
    5050        /*Update elements, nodes, loads and materials from inputs: */
    5151        for(i=0;i<elements->Size();i++){
    52                 Element* element=(Element*)elements->GetObjectByOffset(i);
     52                Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    5353                element->InputUpdateFromVector(vector,name,type);
    5454        }
     
    7373        /*Update elements, nodes, loads and materials from inputs: */
    7474        for(i=0;i<elements->Size();i++){
    75                 Element* element=(Element*)elements->GetObjectByOffset(i);
     75                Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    7676                element->InputUpdateFromVector(vector,name,type);
    7777        }
  • issm/trunk-jpl/src/c/modules/MinVelx/MinVelx.cpp

    r13622 r13798  
    1919        /*Go through elements, and request velocity: */
    2020        for(i=0;i<elements->Size();i++){
    21                 Element* element=(Element*)elements->GetObjectByOffset(i);
     21                Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    2222                element->MinVel(&element_minvel,process_units); //go pick up the minimum velocity in the inputs
    2323
  • issm/trunk-jpl/src/c/modules/MinVxx/MinVxx.cpp

    r13622 r13798  
    1818        /*Go through elements, and request velocity: */
    1919        for(i=0;i<elements->Size();i++){
    20                 Element* element=(Element*)elements->GetObjectByOffset(i);
     20                Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    2121                element->MinVx(&element_minvx,process_units); //go pick up the minimum velocity in the inputs
    2222
  • issm/trunk-jpl/src/c/modules/MinVyx/MinVyx.cpp

    r13622 r13798  
    1818        /*Go through elements, and request velocity: */
    1919        for(i=0;i<elements->Size();i++){
    20                 Element* element=(Element*)elements->GetObjectByOffset(i);
     20                Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    2121                element->MinVy(&element_minvy,process_units); //go pick up the minimum velocity in the inputs
    2222
  • issm/trunk-jpl/src/c/modules/MinVzx/MinVzx.cpp

    r13622 r13798  
    1818        /*Go through elements, and request velocity: */
    1919        for(i=0;i<elements->Size();i++){
    20                 Element* element=(Element*)elements->GetObjectByOffset(i);
     20                Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    2121                element->MinVz(&element_minvz,process_units); //go pick up the minimum velocity in the inputs
    2222
  • issm/trunk-jpl/src/c/modules/NodalValuex/NodalValuex.cpp

    r13612 r13798  
    3030         *element, figure out  if they hold the vertex, and the data. If so, return it: */
    3131        for(i=0;i<elements->Size();i++){
    32                 Element* element=(Element*)elements->GetObjectByOffset(i);
     32                Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    3333                found=element->NodalValue(&value,index,natureofdataenum,process_units);
    3434                if (found){
  • issm/trunk-jpl/src/c/modules/PositiveDegreeDayx/PositiveDegreeDayx.cpp

    r13622 r13798  
    102102
    103103  for(i=0;i<elements->Size();i++){
    104     element=(Element*)elements->GetObjectByOffset(i);
     104    element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    105105    element->PositiveDegreeDay(pdds,pds,signorm);
    106106  }
  • issm/trunk-jpl/src/c/modules/ResetCoordinateSystemx/ResetCoordinateSystemx.cpp

    r10440 r13798  
    1313
    1414        for (int i=0;i<elements->Size();i++){
    15                 element=(Element*)elements->GetObjectByOffset(i);
     15                element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    1616                element->ResetCoordinateSystem();
    1717        }
  • issm/trunk-jpl/src/c/modules/RheologyBbarAbsGradientx/RheologyBbarAbsGradientx.cpp

    r13590 r13798  
    2222        /*Compute Misfit: */
    2323        for (i=0;i<elements->Size();i++){
    24                 element=(Element*)elements->GetObjectByOffset(i);
     24                element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    2525                J+=element->RheologyBbarAbsGradient(process_units,weight_index);
    2626        }
  • issm/trunk-jpl/src/c/modules/SmbGradientsx/SmbGradientsx.cpp

    r13622 r13798  
    2222
    2323  for(i=0;i<elements->Size();i++){
    24     element=(Element*)elements->GetObjectByOffset(i);
     24    element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    2525    element->SmbGradients();
    2626  }
  • issm/trunk-jpl/src/c/modules/SmearFunctionx/SmearFunctionx.cpp

    r13622 r13798  
    4040        /*Fill smearedvector vector: */
    4141        for (i=0;i<elements->Size();i++){
    42                 element=(Element*)elements->GetObjectByOffset(i);
     42                element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    4343                element->SmearFunction(smearedvector,WeightFunction,SmearedFieldEnum,radius);
    4444        }
  • issm/trunk-jpl/src/c/modules/SurfaceAbsVelMisfitx/SurfaceAbsVelMisfitx.cpp

    r13590 r13798  
    2222        /*Compute Misfit: */
    2323        for (i=0;i<elements->Size();i++){
    24                 element=(Element*)elements->GetObjectByOffset(i);
     24                element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    2525                J+=element->SurfaceAbsVelMisfit(process_units,weight_index);
    2626        }
  • issm/trunk-jpl/src/c/modules/SurfaceAreax/SurfaceAreax.cpp

    r13622 r13798  
    2323        /*Compute gradients: */
    2424        for (i=0;i<elements->Size();i++){
    25                 element=(Element*)elements->GetObjectByOffset(i);
     25                element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    2626                S+=element->SurfaceArea();
    2727        }
  • issm/trunk-jpl/src/c/modules/SurfaceAverageVelMisfitx/SurfaceAverageVelMisfitx.cpp

    r13590 r13798  
    2626        /*Compute Misfit: */
    2727        for (i=0;i<elements->Size();i++){
    28                 element=(Element*)elements->GetObjectByOffset(i);
     28                element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    2929                J+=element->SurfaceAverageVelMisfit(process_units,weight_index);
    3030        }
  • issm/trunk-jpl/src/c/modules/SurfaceLogVelMisfitx/SurfaceLogVelMisfitx.cpp

    r13590 r13798  
    2222        /*Compute Misfit: */
    2323        for (i=0;i<elements->Size();i++){
    24                 element=(Element*)elements->GetObjectByOffset(i);
     24                element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    2525                J+=element->SurfaceLogVelMisfit(process_units,weight_index);
    2626        }
  • issm/trunk-jpl/src/c/modules/SurfaceLogVxVyMisfitx/SurfaceLogVxVyMisfitx.cpp

    r13590 r13798  
    2222        /*Compute Misfit: */
    2323        for (i=0;i<elements->Size();i++){
    24                 element=(Element*)elements->GetObjectByOffset(i);
     24                element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    2525                J+=element->SurfaceLogVxVyMisfit(process_units,weight_index);
    2626        }
  • issm/trunk-jpl/src/c/modules/SurfaceRelVelMisfitx/SurfaceRelVelMisfitx.cpp

    r13590 r13798  
    2222        /*Compute Misfit: */
    2323        for (i=0;i<elements->Size();i++){
    24                 element=(Element*)elements->GetObjectByOffset(i);
     24                element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    2525                J+=element->SurfaceRelVelMisfit(process_units,weight_index);
    2626        }
  • issm/trunk-jpl/src/c/modules/SystemMatricesx/SystemMatricesx.cpp

    r13787 r13798  
    5555                /*Fill stiffness matrix from elements: */
    5656                for (i=0;i<elements->Size();i++){
    57                         element=(Element*)elements->GetObjectByOffset(i);
     57                        element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    5858                        element->CreateKMatrix(Kff,Kfs,df);
    5959                }
     
    6161                /*Fill stiffness matrix from loads if loads have the current configuration_type: */
    6262                for (i=0;i<loads->Size();i++){
    63                         load=(Load*)loads->GetObjectByOffset(i);
     63                        load=dynamic_cast<Load*>(loads->GetObjectByOffset(i));
    6464                        if (load->InAnalysis(configuration_type)) load->CreateKMatrix(Kff,Kfs);
    6565                }
     
    7777                /*Fill right hand side vector, from elements: */
    7878                for (i=0;i<elements->Size();i++){
    79                         element=(Element*)elements->GetObjectByOffset(i);
     79                        element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    8080                        element->CreatePVector(pf);
    8181                }
     
    8383                /*Fill right hand side from loads if loads have the current configuration_type: */
    8484                for (i=0;i<loads->Size();i++){
    85                         load=(Load*)loads->GetObjectByOffset(i);
     85                        load=dynamic_cast<Load*>(loads->GetObjectByOffset(i));
    8686                        if (load->InAnalysis(configuration_type)) load->CreatePVector(pf);
    8787                }
     
    9797                /*Fill stiffness matrix from loads: */
    9898                for (i=0;i<loads->Size();i++){
    99                         load=(Load*)loads->GetObjectByOffset(i);
     99                        load=dynamic_cast<Load*>(loads->GetObjectByOffset(i));
    100100                        if (load->InAnalysis(configuration_type)) load->PenaltyCreateKMatrix(Kff,Kfs,kmax);
    101101                }
     
    110110                /*Fill right hand side vector, from loads: */
    111111                for (i=0;i<loads->Size();i++){
    112                         load=(Load*)loads->GetObjectByOffset(i);
     112                        load=dynamic_cast<Load*>(loads->GetObjectByOffset(i));
    113113                        if (load->InAnalysis(configuration_type)) load->PenaltyCreatePVector(pf,kmax);
    114114                }
  • issm/trunk-jpl/src/c/modules/ThicknessAbsMisfitx/ThicknessAbsMisfitx.cpp

    r13590 r13798  
    2222        /*Compute Misfit: */
    2323        for (i=0;i<elements->Size();i++){
    24                 element=(Element*)elements->GetObjectByOffset(i);
     24                element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    2525                J+=element->ThicknessAbsMisfit(process_units,weight_index);
    2626        }
  • issm/trunk-jpl/src/c/modules/ThicknessAcrossGradientx/ThicknessAcrossGradientx.cpp

    r13590 r13798  
    2222        /*Compute Misfit: */
    2323        for (i=0;i<elements->Size();i++){
    24                 element=(Element*)elements->GetObjectByOffset(i);
     24                element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    2525                J+=element->ThicknessAcrossGradient(process_units,weight_index);
    2626        }
  • issm/trunk-jpl/src/c/modules/ThicknessAlongGradientx/ThicknessAlongGradientx.cpp

    r13590 r13798  
    2222        /*Compute Misfit: */
    2323        for (i=0;i<elements->Size();i++){
    24                 element=(Element*)elements->GetObjectByOffset(i);
     24                element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    2525                J+=element->ThicknessAlongGradient(process_units,weight_index);
    2626        }
  • issm/trunk-jpl/src/c/modules/TotalSmbx/TotalSmbx.cpp

    r13590 r13798  
    1616
    1717        for(int i=0;i<elements->Size();i++){
    18                 Element* element=(Element*)elements->GetObjectByOffset(i);
     18                Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
    1919                local_smb+=element->TotalSmb();
    2020        }
  • issm/trunk-jpl/src/c/solutions/DakotaSpawnCore.cpp

    r13699 r13798  
    6262
    6363        /*cast void_femmodel to FemModel: */
    64         femmodel=(FemModel*)void_femmodel;
     64        femmodel=dynamic_cast<FemModel*>(void_femmodel);
    6565
    6666        /*retrieve parameters: */
  • issm/trunk-jpl/src/c/solutions/kriging.cpp

    r13764 r13798  
    7373                results->AddObject(new GenericExternalResult<double*>(results->Size()+1,1,error,ninterp,1,1,0));
    7474                for(int i=0;i<results->Size();i++){
    75                         ExternalResult* result=(ExternalResult*)results->GetObjectByOffset(i);
     75                        ExternalResult* result=dynamic_cast<ExternalResult*>(results->GetObjectByOffset(i));
    7676                        result->WriteData(output_fid,1);
    7777                }
  • issm/trunk-jpl/src/c/solvers/solver_nonlinear.cpp

    r13693 r13798  
    4242
    4343        /*Were loads requested as output? : */
    44         if(conserve_loads) loads=(Loads*)femmodel->loads->Copy(); //protect loads from being modified by the solution
    45         else               loads=(Loads*)femmodel->loads;         //modify loads  in this solution
     44        if(conserve_loads) loads=static_cast<Loads*>(femmodel->loads->Copy()); //protect loads from being modified by the solution
     45        else               loads=static_cast<Loads*>(femmodel->loads);         //modify loads  in this solution
    4646
    4747        count=1;
Note: See TracChangeset for help on using the changeset viewer.