Changeset 4025


Ignore:
Timestamp:
06/06/10 21:19:16 (15 years ago)
Author:
Eric.Larour
Message:

Manage analysis_type better

Location:
issm/trunk/src/c
Files:
1 added
1 deleted
42 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/Makefile.am

    r4023 r4025  
    301301                                        ./modules/ModelProcessorx/NodesPartitioning.cpp\
    302302                                        ./modules/ModelProcessorx/SortDataSets.cpp\
    303                                         ./modules/ModelProcessorx/UpdateCounter.cpp\
     303                                        ./modules/ModelProcessorx/UpdateCounters.cpp\
    304304                                        ./modules/ModelProcessorx/CreateDataSets.cpp\
    305305                                        ./modules/ModelProcessorx/CreateParameters.cpp\
    306306                                        ./modules/ModelProcessorx/CreateSingleNodeToElementConnectivity.cpp\
    307307                                        ./modules/ModelProcessorx/CreateNumberNodeToElementConnectivity.cpp\
    308                                         ./modules/ModelProcessorx/CreateElementsMaterialsAndVertices.cpp\
     308                                        ./modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp\
    309309                                        ./modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp\
    310310                                        ./modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp \
     
    770770                                        ./modules/ModelProcessorx/Partitioning.cpp\
    771771                                        ./modules/ModelProcessorx/SortDataSets.cpp\
    772                                         ./modules/ModelProcessorx/UpdateCounter.cpp\
     772                                        ./modules/ModelProcessorx/UpdateCounters.cpp\
    773773                                        ./modules/ModelProcessorx/CreateDataSets.cpp\
    774774                                        ./modules/ModelProcessorx/CreateParameters.cpp\
    775775                                        ./modules/ModelProcessorx/CreateSingleNodeToElementConnectivity.cpp\
    776776                                        ./modules/ModelProcessorx/CreateNumberNodeToElementConnectivity.cpp\
    777                                         ./modules/ModelProcessorx/DiagnosticHoriz/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp\
     777                                        ./modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp\
     778                                        ./modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp\
    778779                                        ./modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp \
    779780                                        ./modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp\
     781                                        ./modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp\
    780782                                        ./modules/ModelProcessorx/DiagnosticVert/CreateElementsNodesAndMaterialsDiagnosticVert.cpp\
    781783                                        ./modules/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp \
    782784                                        ./modules/ModelProcessorx/DiagnosticVert/CreateLoadsDiagnosticVert.cpp\
     785                                        ./modules/ModelProcessorx/DiagnosticVert/CreateNodesDiagnosticVert.cpp\
    783786                                        ./modules/ModelProcessorx/DiagnosticHutter/CreateElementsNodesAndMaterialsDiagnosticHutter.cpp\
    784787                                        ./modules/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp \
    785788                                        ./modules/ModelProcessorx/DiagnosticHutter/CreateLoadsDiagnosticHutter.cpp\
     789                                        ./modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp\
    786790                                        ./modules/ModelProcessorx/DiagnosticStokes/CreateElementsNodesAndMaterialsDiagnosticStokes.cpp\
    787791                                        ./modules/ModelProcessorx/DiagnosticStokes/CreateConstraintsDiagnosticStokes.cpp \
    788792                                        ./modules/ModelProcessorx/DiagnosticStokes/CreateLoadsDiagnosticStokes.cpp\
     793                                        ./modules/ModelProcessorx/DiagnosticStokes/CreateNodesDiagnosticStokes.cpp\
    789794                                        ./modules/ModelProcessorx/SlopeCompute/CreateElementsNodesAndMaterialsSlopeCompute.cpp\
    790795                                        ./modules/ModelProcessorx/SlopeCompute/CreateConstraintsSlopeCompute.cpp \
    791796                                        ./modules/ModelProcessorx/SlopeCompute/CreateLoadsSlopeCompute.cpp\
     797                                        ./modules/ModelProcessorx/SlopeCompute/CreateNodesSlopeCompute.cpp\
    792798                                        ./modules/ModelProcessorx/Control/CreateParametersControl.cpp\
    793799                                        ./modules/ModelProcessorx/Thermal/CreateElementsNodesAndMaterialsThermal.cpp\
    794800                                        ./modules/ModelProcessorx/Thermal/CreateConstraintsThermal.cpp\
    795801                                        ./modules/ModelProcessorx/Thermal/CreateLoadsThermal.cpp\
     802                                        ./modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp\
    796803                                        ./modules/ModelProcessorx/Melting/CreateElementsNodesAndMaterialsMelting.cpp\
    797804                                        ./modules/ModelProcessorx/Melting/CreateConstraintsMelting.cpp\
    798805                                        ./modules/ModelProcessorx/Melting/CreateLoadsMelting.cpp\
     806                                        ./modules/ModelProcessorx/Melting/CreateNodesMelting.cpp\
    799807                                        ./modules/ModelProcessorx/Prognostic/CreateElementsNodesAndMaterialsPrognostic.cpp\
    800808                                        ./modules/ModelProcessorx/Prognostic/CreateConstraintsPrognostic.cpp\
    801809                                        ./modules/ModelProcessorx/Prognostic/CreateLoadsPrognostic.cpp\
     810                                        ./modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp\
    802811                                        ./modules/ModelProcessorx/Prognostic2/CreateElementsNodesAndMaterialsPrognostic2.cpp\
    803812                                        ./modules/ModelProcessorx/Prognostic2/CreateConstraintsPrognostic2.cpp\
    804813                                        ./modules/ModelProcessorx/Prognostic2/CreateLoadsPrognostic2.cpp\
     814                                        ./modules/ModelProcessorx/Prognostic2/CreateNodesPrognostic2.cpp\
    805815                                        ./modules/ModelProcessorx/Balancedthickness/CreateElementsNodesAndMaterialsBalancedthickness.cpp\
    806816                                        ./modules/ModelProcessorx/Balancedthickness/CreateConstraintsBalancedthickness.cpp\
    807817                                        ./modules/ModelProcessorx/Balancedthickness/CreateLoadsBalancedthickness.cpp\
     818                                        ./modules/ModelProcessorx/Balancedthickness/CreateNodesBalancedthickness.cpp\
    808819                                        ./modules/ModelProcessorx/Balancedthickness2/CreateElementsNodesAndMaterialsBalancedthickness2.cpp\
    809820                                        ./modules/ModelProcessorx/Balancedthickness2/CreateConstraintsBalancedthickness2.cpp\
    810821                                        ./modules/ModelProcessorx/Balancedthickness2/CreateLoadsBalancedthickness2.cpp\
     822                                        ./modules/ModelProcessorx/Balancedthickness2/CreateNodesBalancedthickness2.cpp\
    811823                                        ./modules/ModelProcessorx/Balancedvelocities/CreateElementsNodesAndMaterialsBalancedvelocities.cpp\
    812824                                        ./modules/ModelProcessorx/Balancedvelocities/CreateConstraintsBalancedvelocities.cpp\
    813825                                        ./modules/ModelProcessorx/Balancedvelocities/CreateLoadsBalancedvelocities.cpp\
     826                                        ./modules/ModelProcessorx/Balancedvelocities/CreateNodesBalancedvelocities.cpp\
    814827                                        ./modules/ModelProcessorx/Qmu/CreateParametersQmu.cpp\
    815828                                        ./modules/VerticesDofx/VerticesDofx.h\
  • issm/trunk/src/c/modules/Dux/Dux.cpp

    r3967 r4025  
    1111#include "../SurfaceAreax/SurfaceAreax.h"
    1212
    13 void Dux( Vec* pdu_g, DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials, Parameters* parameters,
    14                         int analysis_type,int sub_analysis_type){
     13void Dux( Vec* pdu_g, DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads,
     14                DataSet* materials, Parameters* parameters,int analysis_type,int sub_analysis_type){
    1515
    1616        /*Intermediary*/
  • issm/trunk/src/c/modules/ModelProcessorx/Balancedthickness/CreateNodesBalancedthickness.cpp

    r4005 r4025  
    4646
    4747                        /*Add node to nodes dataset: */
    48                         nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel));
     48                        nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel,BalancedthicknessAnalysisEnum));
    4949
    5050                }
  • issm/trunk/src/c/modules/ModelProcessorx/Balancedthickness/UpdateElementsBalancedthickness.cpp

    r4017 r4025  
    1313#include "../ModelProcessorx.h"
    1414
    15 void    UpdateElementsBalancedthickness(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter){
     15void    UpdateElementsBalancedthickness(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type){
    1616
    1717        /*Intermediary*/
     
    4545                if(iomodel->my_elements[i]){
    4646                        element=(Element*)elements->GetObjectByOffset(counter);
    47                         element->Update(i,iomodel,analysis_counter); //we need i to index into elements.
     47                        element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements.
    4848                        counter++;
    4949                }
  • issm/trunk/src/c/modules/ModelProcessorx/Balancedthickness2/CreateNodesBalancedthickness2.cpp

    r4005 r4025  
    1616
    1717        /*Intermediary*/
    18         int i;
     18        int i,j;
    1919        bool continuous_galerkin=false;
     20        int  vertex_index;
     21        int node_index;
    2022
    2123        /*DataSets: */
     
    5860
    5961                                /*Add node to nodes dataset: */
    60                                 nodes->AddObject(new Node(iomodel->nodecounter+i+1,vertex_index,node_index,iomodel));
     62                                nodes->AddObject(new Node(iomodel->nodecounter+i+1,vertex_index,node_index,iomodel,Balancedthickness2AnalysisEnum));
    6163
    6264                        }
  • issm/trunk/src/c/modules/ModelProcessorx/Balancedthickness2/UpdateElementsBalancedthickness2.cpp

    r4017 r4025  
    1313#include "../ModelProcessorx.h"
    1414
    15 void    UpdateElementsBalancedthickness2(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter){
     15void    UpdateElementsBalancedthickness2(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type){
    1616
    1717        /*Intermediary*/
     
    4242                if(iomodel->my_elements[i]){
    4343                        element=(Element*)elements->GetObjectByOffset(counter);
    44                         element->Update(i,iomodel,analysis_counter); //we need i to index into elements.
     44                        element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements.
    4545                        counter++;
    4646                }
  • issm/trunk/src/c/modules/ModelProcessorx/Balancedvelocities/CreateNodesBalancedvelocities.cpp

    r4005 r4025  
    4646                       
    4747                        /*Add node to nodes dataset: */
    48                         nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel));
     48                        nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel,BalancedvelocitiesAnalysisEnum));
    4949
    5050                }
  • issm/trunk/src/c/modules/ModelProcessorx/Balancedvelocities/UpdateElementsBalancedvelocities.cpp

    r4017 r4025  
    1313#include "../ModelProcessorx.h"
    1414
    15 void    UpdateElementsBalancedvelocities(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter){
     15void    UpdateElementsBalancedvelocities(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type){
    1616
    1717        /*Intermediary*/
     
    4444                if(iomodel->my_elements[i]){
    4545                        element=(Element*)elements->GetObjectByOffset(counter);
    46                         element->Update(i,iomodel,analysis_counter); //we need i to index into elements.
     46                        element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements.
    4747                        counter++;
    4848                }
  • issm/trunk/src/c/modules/ModelProcessorx/Control/CreateParametersControl.cpp

    r3913 r4025  
    1212#include "../ModelProcessorx.h"
    1313
    14 void CreateParametersControl(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle){
     14void CreateParametersControl(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_type){
    1515       
    1616        int i;
  • issm/trunk/src/c/modules/ModelProcessorx/CreateDataSets.cpp

    r4002 r4025  
    3333                        CreateConstraintsDiagnosticHoriz(pconstraints,iomodel,iomodel_handle);
    3434                        CreateLoadsDiagnosticHoriz(ploads,iomodel,iomodel_handle);
    35                         UpdateElementsDiagnosticHoriz(elements,iomodel,iomodel_handle,analysis_counter);
     35                        UpdateElementsDiagnosticHoriz(elements,iomodel,iomodel_handle,analysis_counter,analysis_type);
    3636                        break;
    3737               
     
    4040                        CreateConstraintsDiagnosticVert(pconstraints,iomodel,iomodel_handle);
    4141                        CreateLoadsDiagnosticVert(ploads,iomodel,iomodel_handle);
    42                         UpdateElementsDiagnosticVert(elements,iomodel,iomodel_handle,analysis_counter);
     42                        UpdateElementsDiagnosticVert(elements,iomodel,iomodel_handle,analysis_counter,analysis_type);
    4343                        break;
    4444       
     
    4747                        CreateConstraintsDiagnosticStokes(pconstraints,iomodel,iomodel_handle);
    4848                        CreateLoadsDiagnosticStokes(ploads,iomodel,iomodel_handle);
    49                         UpdateElementsDiagnosticStokes(elements,iomodel,iomodel_handle,analysis_counter);
     49                        UpdateElementsDiagnosticStokes(elements,iomodel,iomodel_handle,analysis_counter,analysis_type);
    5050                        break;
    5151       
     
    5454                        CreateConstraintsDiagnosticHutter(pconstraints,iomodel,iomodel_handle);
    5555                        CreateLoadsDiagnosticHutter(ploads,iomodel,iomodel_handle);
    56                         UpdateElementsDiagnosticHutter(elements,iomodel,iomodel_handle,analysis_counter);
     56                        UpdateElementsDiagnosticHutter(elements,iomodel,iomodel_handle,analysis_counter,analysis_type);
    5757                        break;
    5858
    59                 case SlopecomputeAnalysisEnum:
     59                case SlopeComputeAnalysisEnum:
    6060                        CreateNodesSlopeCompute(pnodes, iomodel,iomodel_handle);
    6161                        CreateConstraintsSlopeCompute(pconstraints,iomodel,iomodel_handle);
    6262                        CreateLoadsSlopeCompute(ploads,iomodel,iomodel_handle);
    63                         UpdateElementsSlopeCompute(elements,iomodel,iomodel_handle,analysis_counter);
     63                        UpdateElementsSlopeCompute(elements,iomodel,iomodel_handle,analysis_counter,analysis_type);
    6464                        break;
    6565
     
    6868                        CreateConstraintsThermal(pconstraints,iomodel,iomodel_handle);
    6969                        CreateLoadsThermal(ploads,iomodel,iomodel_handle);
    70                         UpdateElementsThermal(elements,iomodel,iomodel_handle,analysis_counter);
     70                        UpdateElementsThermal(elements,iomodel,iomodel_handle,analysis_counter,analysis_type);
    7171                        break;
    7272
     
    7575                        CreateConstraintsMelting(pconstraints,iomodel,iomodel_handle);
    7676                        CreateLoadsMelting(ploads,iomodel,iomodel_handle);
    77                         UpdateElementsMelting(elements,iomodel,iomodel_handle,analysis_counter);
     77                        UpdateElementsMelting(elements,iomodel,iomodel_handle,analysis_counter,analysis_type);
    7878                        break;
    7979
     
    8282                        CreateConstraintsPrognostic(pconstraints,iomodel,iomodel_handle);
    8383                        CreateLoadsPrognostic(ploads,iomodel,iomodel_handle);
    84                         UpdateElementsPrognostic(elements,iomodel,iomodel_handle,analysis_counter);
     84                        UpdateElementsPrognostic(elements,iomodel,iomodel_handle,analysis_counter,analysis_type);
    8585                        break;
    8686
     
    8989                        CreateConstraintsPrognostic2(pconstraints,iomodel,iomodel_handle);
    9090                        CreateLoadsPrognostic2(ploads,iomodel,iomodel_handle);
    91                         UpdateElementsPrognostic2(elements,iomodel,iomodel_handle,analysis_counter);
     91                        UpdateElementsPrognostic2(elements,iomodel,iomodel_handle,analysis_counter,analysis_type);
    9292                        break;
    9393
     
    9696                        CreateConstraintsBalancedthickness(pconstraints,iomodel,iomodel_handle);
    9797                        CreateLoadsBalancedthickness(ploads,iomodel,iomodel_handle);
    98                         UpdateElementsBalancedthickness(elements,iomodel,iomodel_handle,analysis_counter);
     98                        UpdateElementsBalancedthickness(elements,iomodel,iomodel_handle,analysis_counter,analysis_type);
    9999                        break;
    100100
     
    103103                        CreateConstraintsBalancedthickness2(pconstraints,iomodel,iomodel_handle);
    104104                        CreateLoadsBalancedthickness2(ploads,iomodel,iomodel_handle);
    105                         UpdateElementsBalancedthickness2(elements,iomodel,iomodel_handle,analysis_counter);
     105                        UpdateElementsBalancedthickness2(elements,iomodel,iomodel_handle,analysis_counter,analysis_type);
    106106                        break;
    107107                case BalancedvelocitiesAnalysisEnum:
     
    109109                        CreateConstraintsBalancedvelocities(pconstraints,iomodel,iomodel_handle);
    110110                        CreateLoadsBalancedvelocities(ploads,iomodel,iomodel_handle);
    111                         UpdateElementsBalancedvelocities(elements,iomodel,iomodel_handle,analysis_counter);
     111                        UpdateElementsBalancedvelocities(elements,iomodel,iomodel_handle,analysis_counter,analysis_type);
    112112                        break;
    113113                default:
     
    116116       
    117117        /*Generate objects that are not dependent on any analysis_type: */
    118         CreateParameters(pparameters,iomodel,iomodel_handle);
     118        CreateParameters(pparameters,iomodel,iomodel_handle,analysis_type);
    119119
    120120        /*Sort datasets: */
    121         SortDataSets(elements,nodes,vertices, loads, materials, constraints, parameters);
     121        SortDataSets(pelements,pnodes,pvertices, ploads, pmaterials, pconstraints, pparameters);
    122122
    123123        /*Update counters, because we have created more nodes, loads and constraints, and ids for objects created in next call to CreateDataSets
  • issm/trunk/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp

    r4002 r4025  
    33 */
    44
    5 #include "../../../DataSet/DataSet.h"
    6 #include "../../../toolkits/toolkits.h"
    7 #include "../../../io/io.h"
    8 #include "../../../EnumDefinitions/EnumDefinitions.h"
    9 #include "../../../objects/objects.h"
    10 #include "../../../shared/shared.h"
    11 #include "../../MeshPartitionx/MeshPartitionx.h"
    12 #include "../../../include/include.h"
    13 #include "../ModelProcessorx.h"
     5#include "../../DataSet/DataSet.h"
     6#include "../../toolkits/toolkits.h"
     7#include "../../io/io.h"
     8#include "../../EnumDefinitions/EnumDefinitions.h"
     9#include "../../objects/objects.h"
     10#include "../../shared/shared.h"
     11#include "../MeshPartitionx/MeshPartitionx.h"
     12#include "../../include/include.h"
     13#include "./ModelProcessorx.h"
    1414
    1515void    CreateElementsVerticesAndMaterials(DataSet** pelements,DataSet** pvertices,DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle,int nummodels){
     
    3131        materials = new DataSet(MaterialsEnum);
    3232       
    33         /*Partition elements and vertices and nodes: */
    34         Partitioning(&iomodel->my_elements, &iomodel->my_vertices, &iomodel->my_nodes, &iomodel->my_bordervertices, iomodel, iomodel_handle);
    35 
    3633        /*First, partition elements and vertices. Nodes will partitioned on a per analysis_type basis. If partitining already done, ignore: */
    3734        ElementsAndVerticesPartitioning(&iomodel->my_elements, &iomodel->my_vertices, &iomodel->my_bordervertices, iomodel, iomodel_handle);
  • issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp

    r4002 r4025  
    1010#include "../MeshPartitionx/MeshPartitionx.h"
    1111#include "../../io/io.h"
     12#include "./ModelProcessorx.h"
    1213
    13 void CreateParameters(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle){
     14void CreateParameters(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_type){
    1415       
    1516        int i;
     
    3233        if (iomodel->dim==2) parameters->AddObject(new IntParam(DimEnum,2));
    3334        else parameters->AddObject(new IntParam(DimEnum,3));
    34         parameters->AddObject(new    IntParam(AnalysisTypeEnum,iomodel->analysis_type));
    35         parameters->AddObject(new    IntParam(SubAnalysisTypeEnum,iomodel->sub_analysis_type));
    3635        parameters->AddObject(new StringParam(OutputFileNameEnum,iomodel->outputfilename));
    3736        parameters->AddObject(new   BoolParam(IsHutterEnum,iomodel->ishutter));
     
    6867        /*Deal with more complex parameters*/
    6968        if (
    70                                 iomodel->analysis_type==Prognostic2AnalysisEnum ||
    71                                 iomodel->analysis_type==Balancedthickness2AnalysisEnum
     69                                analysis_type==Prognostic2AnalysisEnum ||
     70                                analysis_type==Balancedthickness2AnalysisEnum
    7271                                )
    7372                parameters->AddObject(new    IntParam(NumberOfNodesEnum,3*iomodel->numberofelements));
    7473        else parameters->AddObject(new    IntParam(NumberOfNodesEnum,iomodel->numberofvertices));
    7574
    76         DistributeNumDofs(&numberofdofspernode,iomodel->analysis_type,iomodel->sub_analysis_type);
     75        DistributeNumDofs(&numberofdofspernode,analysis_type);
    7776        parameters->AddObject(new    IntParam(NumberOfDofsPerNodeEnum,numberofdofspernode));
    7877
     
    116115
    117116        /*Before returning, create parameters in case we are running Qmu or control types runs: */
    118         CreateParametersControl(&parameters,iomodel,iomodel_handle);
    119         CreateParametersQmu(&parameters,iomodel,iomodel_handle);
     117        CreateParametersControl(&parameters,iomodel,iomodel_handle,analysis_type);
     118        CreateParametersQmu(&parameters,iomodel,iomodel_handle,analysis_type);
    120119
    121120        /*Assign output pointer: */
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp

    r4008 r4025  
    7979                                count++;
    8080                               
    81                                 constraints->AddObject(new Rgb(iomodel->constraintcounter+count+1,node1,node2,2),DiagnosticHorizAnalysisEnum);  //add count'th Rgb on dof 1 between node1 and node2
     81                                constraints->AddObject(new Rgb(iomodel->constraintcounter+count+1,node1,node2,2,DiagnosticHorizAnalysisEnum));  //add count'th Rgb on dof 1 between node1 and node2
    8282
    8383                        }
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp

    r4005 r4025  
    6868        xfree((void**)&iomodel->uppernodes);
    6969
    70         /*All our datasets are already order by ids. Set presort flag so that later on, when sorting is requested on these
    71          * datasets, it will not be redone: */
    72         nodes->Presort();
     70        cleanup_and_return:
    7371
    7472        /*Assign output pointer: */
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp

    r4016 r4025  
    1313#include "../ModelProcessorx.h"
    1414
    15 void    UpdateElementsDiagnosticHoriz(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter){
     15void    UpdateElementsDiagnosticHoriz(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type){
    1616
    1717        /*Intermediary*/
     
    5555                if(iomodel->my_elements[i]){
    5656                        element=(Element*)elements->GetObjectByOffset(counter);
    57                         element->Update(i,iomodel,analysis_counter); //we need i to index into elements.
     57                        element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements.
    5858                }
    5959        }
     60        cleanup_and_return:
    6061
    6162        /*Free data: */
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp

    r4005 r4025  
    5252
    5353                        /*Add node to nodes dataset: */
    54                         nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel));
     54                        nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel,DiagnosticHutterAnalysisEnum));
    5555
    5656                }
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/UpdateElementsDiagnosticHutter.cpp

    r4017 r4025  
    1313#include "../ModelProcessorx.h"
    1414
    15 void    UpdateElementsDiagnosticHutter(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter){
     15void    UpdateElementsDiagnosticHutter(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type){
    1616
    1717        /*Intermediary*/
     
    3030        IoModelFetchData(&iomodel->gridonsurface,NULL,NULL,iomodel_handle,"gridonsurface");
    3131        IoModelFetchData(&iomodel->gridonbed,NULL,NULL,iomodel_handle,"gridonbed");
    32         IoModelFetchData(&iomodel->uppergrids,NULL,NULL,iomodel_handle,"uppergrids");
    3332        IoModelFetchData(&iomodel->drag_coefficient,NULL,NULL,iomodel_handle,"drag_coefficient");
    3433        IoModelFetchData(&iomodel->rheology_B,NULL,NULL,iomodel_handle,"rheology_B");
     
    4746                if(iomodel->my_elements[i]){
    4847                        element=(Element*)elements->GetObjectByOffset(counter);
    49                         element->Update(i,iomodel,analysis_counter); //we need i to index into elements.
     48                        element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements.
    5049                        counter++;
    5150                }
    5251        }
     52        cleanup_and_return:
    5353
    5454        /*Free data: */
     
    5959        xfree((void**)&iomodel->gridonsurface);
    6060        xfree((void**)&iomodel->gridonbed);
    61         xfree((void**)&iomodel->uppergrids);
    6261        xfree((void**)&iomodel->drag_coefficient);
    6362        xfree((void**)&iomodel->rheology_B);
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticStokes/CreateLoadsDiagnosticStokes.cpp

    r4006 r4025  
    6161
    6262                /*Create and  add load: */
    63                 loads->AddObject(new Icefront(iomodel->loadcounter+counter+1,i,iomodel,DiagnosticStokesAnalysisEnum));
     63                loads->AddObject(new Icefront(iomodel->loadcounter+count+1,i,iomodel,DiagnosticStokesAnalysisEnum));
    6464                count++;
    6565
     
    8585                        if ((iomodel->gridonbed[i]) && (iomodel->gridonicesheet[i]) && (iomodel->gridonstokes[i])){
    8686                               
    87                                 loads->AddObject(new Pengrid(iomodel->loadcounter+counter+1,i,iomodel,DiagnosticStokesAnalysisEnum));
     87                                loads->AddObject(new Pengrid(iomodel->loadcounter+count+1,i,iomodel,DiagnosticStokesAnalysisEnum));
    8888                                count++;
    8989                        }
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticStokes/CreateNodesDiagnosticStokes.cpp

    r4005 r4025  
    5050
    5151                        /*Add node to nodes dataset: */
    52                         nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel));
     52                        nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel,DiagnosticStokesAnalysisEnum));
    5353
    5454                }
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticStokes/UpdateElementsDiagnosticStokes.cpp

    r4000 r4025  
    1313#include "../ModelProcessorx.h"
    1414
    15 void    UpdateElementsDiagnosticHoriz(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter){
     15void    UpdateElementsDiagnosticHoriz(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type){
    1616
    1717        /*Intermediary*/
     
    5555
    5656                element=(Element*)elements->GetObjectByOffset(i);
    57                 element->Update(iomodel,analysis_counter);
     57                element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements.
    5858
    5959        }
     60
     61        cleanup_and_return:
    6062
    6163        /*Free data: */
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateNodesDiagnosticVert.cpp

    r4005 r4025  
    4747
    4848                        /*Add node to nodes dataset: */
    49                         nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel));
     49                        nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel,DiagnosticVertAnalysisEnum));
    5050
    5151                }
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/UpdateElementsDiagnosticVert.cpp

    r4017 r4025  
    1313#include "../ModelProcessorx.h"
    1414
    15 void    UpdateElementsDiagnosticVert(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter){
     15void    UpdateElementsDiagnosticVert(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type){
    1616
    1717        /*Intermediary*/
     
    4444                if(iomodel->my_elements[i]){
    4545                        element=(Element*)elements->GetObjectByOffset(counter);
    46                         element->Update(i,iomodel,analysis_counter); //we need i to index into elements.
     46                        element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements.
    4747                        counter++;
    4848                }
    4949        }
     50        cleanup_and_return:
    5051
    5152        /*Free data: */
  • issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateNodesMelting.cpp

    r4005 r4025  
    4646                       
    4747                        /*Add node to nodes dataset: */
    48                         nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel));
     48                        nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel,MeltingAnalysisEnum));
    4949
    5050                }
  • issm/trunk/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp

    r4017 r4025  
    1313#include "../ModelProcessorx.h"
    1414
    15 void    UpdateElementsMelting(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter){
     15void    UpdateElementsMelting(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type){
    1616
    1717        /*Intermediary*/
     
    3939        IoModelFetchData(&iomodel->rheology_n,NULL,NULL,iomodel_handle,"rheology_n");
    4040        IoModelFetchData(&iomodel->accumulation_rate,NULL,NULL,iomodel_handle,"accumulation_rate");
    41         IoModelFetchData(&iomodel->melting_ratex,NULL,NULL,iomodel_handle,"melting_rate");
     41        IoModelFetchData(&iomodel->melting_rate,NULL,NULL,iomodel_handle,"melting_rate");
    4242        IoModelFetchData(&iomodel->pressure,NULL,NULL,iomodel_handle,"pressure");
    4343        IoModelFetchData(&iomodel->upperelements,NULL,NULL,iomodel_handle,"upperelements");
     
    4949                if(iomodel->my_elements[i]){
    5050                        element=(Element*)elements->GetObjectByOffset(counter);
    51                         element->Update(i,iomodel,analysis_counter); //we need i to index into elements.
     51                        element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements.
    5252                        counter++;
    5353                }
    5454        }
    5555
     56        cleanup_and_return:
    5657        /*Free data: */
    5758        xfree((void**)&iomodel->elements);
  • issm/trunk/src/c/modules/ModelProcessorx/ModelProcessorx.h

    r4009 r4025  
    1616void  CreateDataSets(DataSet** pelements,DataSet** pnodes,DataSet** pvertices, DataSet** pmaterials, DataSet** pconstraints, DataSet** ploads,Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_type,int nummodels,int analysis_counter);
    1717void  CreateElementsVerticesAndMaterials(DataSet** pelements,DataSet** pvertices,DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle,int nummodels);
    18 void  CreateParameters(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle);
    19 void  CreateParametersControl(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle);
    20 void  CreateParametersQmu(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle);
     18void  CreateParameters(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_type);
     19void  CreateParametersControl(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_type);
     20void  CreateParametersQmu(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_type);
    2121
    2222/*Creation of fem datasets: specialised drivers: */
     
    2626void    CreateConstraintsDiagnosticHoriz(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
    2727void  CreateLoadsDiagnosticHoriz(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
    28 void    UpdateElementsDiagnosticHoriz(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
     28void    UpdateElementsDiagnosticHoriz(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type);
    2929
    3030/*diagnostic vertical*/
    3131void    CreateNodesDiagnosticVert(DataSet** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
    3232void    CreateConstraintsDiagnosticVert(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
    33 void  CreateLoadsDiagnosticVert(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
    34 void    UpdateElements(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
     33void    CreateLoadsDiagnosticVert(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
     34void    UpdateElementsDiagnosticVert(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type);
    3535
    3636/*diagnostic hutter*/
    3737void    CreateNodesDiagnosticHutter(DataSet** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
    3838void    CreateConstraintsDiagnosticHutter(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
    39 void  CreateLoadsDiagnosticHutter(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
    40 void    UpdateElements(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
     39void    CreateLoadsDiagnosticHutter(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
     40void    UpdateElementsDiagnosticHutter(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type);
    4141
    4242/*diagnostic stokes*/
    4343void    CreateNodesDiagnosticStokes(DataSet** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
    4444void    CreateConstraintsDiagnosticStokes(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
    45 void  CreateLoadsDiagnosticStokes(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
    46 void    UpdateElements(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
     45void    CreateLoadsDiagnosticStokes(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
     46void    UpdateElementsDiagnosticStokes(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type);
    4747
    4848/*slope compute*/
    4949void    CreateNodesSlopeCompute(DataSet** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
    5050void    CreateConstraintsSlopeCompute(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
    51 void  CreateLoadsSlopeCompute(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
    52 void    UpdateElements(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
     51void    CreateLoadsSlopeCompute(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
     52void    UpdateElementsSlopeCompute(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type);
    5353
    5454/*thermal:*/
    5555void    CreateNodesThermal(DataSet** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
    5656void    CreateConstraintsThermal(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
    57 void  CreateLoadsThermal(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
    58 void    UpdateElements(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
     57void    CreateLoadsThermal(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
     58void    UpdateElementsThermal(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type);
    5959
    6060/*melting:*/
    6161void    CreateNodesMelting(DataSet** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
    6262void    CreateConstraintsMelting(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
    63 void  CreateLoadsMelting(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
    64 void    UpdateElements(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
     63void    CreateLoadsMelting(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
     64void    UpdateElementsMelting(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type);
    6565
    6666/*prognostic:*/
    6767void    CreateNodesPrognostic(DataSet** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
    6868void    CreateConstraintsPrognostic(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
    69 void  CreateLoadsPrognostic(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
    70 void    UpdateElements(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
     69void    CreateLoadsPrognostic(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
     70void    UpdateElementsPrognostic(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type);
    7171
    7272/*prognostic2:*/
    7373void    CreateNodesPrognostic2(DataSet** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
    7474void    CreateConstraintsPrognostic2(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
    75 void  CreateLoadsPrognostic2(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
    76 void    UpdateElements(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
     75void    CreateLoadsPrognostic2(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
     76void    UpdateElementsPrognostic2(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type);
    7777
    7878/*balancedthickness:*/
    7979void    CreateNodesBalancedthickness(DataSet** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
    8080void    CreateConstraintsBalancedthickness(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
    81 void  CreateLoadsBalancedthickness(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
    82 void    UpdateElements(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
     81void    CreateLoadsBalancedthickness(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
     82void    UpdateElementsBalancedthickness(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type);
    8383
    8484void    CreateNodesBalancedthickness2(DataSet** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
    8585void    CreateConstraintsBalancedthickness2(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
    86 void  CreateLoadsBalancedthickness2(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
    87 void    UpdateElements(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
     86void    CreateLoadsBalancedthickness2(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
     87void    UpdateElementsBalancedthickness2(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type);
    8888
    8989/*balancedvelocities:*/
    9090void    CreateNodesBalancedvelocities(DataSet** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
    9191void    CreateConstraintsBalancedvelocities(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
    92 void  CreateLoadsBalancedvelocities(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
    93 void    UpdateElements(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);
     92void    CreateLoadsBalancedvelocities(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
     93void    UpdateElementsBalancedvelocities(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type);
    9494
    9595/*partitioning: */
     
    103103/*Diverse: */
    104104void  SortDataSets(DataSet** pelements,DataSet** pnodes,DataSet** pvertices, DataSet** ploads, DataSet** pmaterials, DataSet** pconstraints, Parameters** pparameters);
    105 void  UpdateCounter(IoModel* iomodel,DataSet** pnodes,DataSet** ploads, DataSet** pconstraints);
     105void  UpdateCounters(IoModel* iomodel,DataSet** pnodes,DataSet** ploads, DataSet** pconstraints);
    106106
    107107#endif
  • issm/trunk/src/c/modules/ModelProcessorx/NodesPartitioning.cpp

    r3984 r4025  
    1818#include "../ModelProcessorx/ModelProcessorx.h"
    1919
    20 void  DiscontinuousGalerkinNodesPartitioning(bool* pmy_nodes,bool* my_elements, bool* my_vertices, bool* my_bordervertices, IoModel* iomodel, ConstDataHandle iomodel_handle);
     20void  DiscontinuousGalerkinNodesPartitioning(bool** pmy_nodes,bool* my_elements, bool* my_vertices, bool* my_bordervertices, IoModel* iomodel, ConstDataHandle iomodel_handle);
    2121void  ContinuousGalerkinNodesPartitioning(bool** pmy_nodes,bool* my_elements, bool* my_vertices, bool* my_bordervertices, IoModel* iomodel, ConstDataHandle iomodel_handle);
    2222
     
    2727
    2828        /*Now, depending on whether we are running galerkin discontinous or continuous elements, carry out a different partition of the nodes: */
    29         if(continuous==true){
     29        if(continuous==true)
    3030                ContinuousGalerkinNodesPartitioning(pmy_nodes,my_elements, my_vertices, my_bordervertices, iomodel, iomodel_handle);
    3131        else
     
    4848
    4949
    50 void  DiscontinuousGalerkinNodesPartitioning(bool* pmy_nodes,bool* my_elements, bool* my_vertices, bool* my_bordervertices, IoModel* iomodel, ConstDataHandle iomodel_handle){
     50void  DiscontinuousGalerkinNodesPartitioning(bool** pmy_nodes,bool* my_elements, bool* my_vertices, bool* my_bordervertices, IoModel* iomodel, ConstDataHandle iomodel_handle){
    5151
    5252        /*each element has it own nodes (as many as vertices) + additional nodes from neighbouring elements for each edge. This yields to a very different partition for
  • issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp

    r4005 r4025  
    4646
    4747                        /*Add node to nodes dataset: */
    48                         nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel));
     48                        nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel,PrognosticAnalysisEnum));
    4949
    5050                }
  • issm/trunk/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp

    r4017 r4025  
    1313#include "../ModelProcessorx.h"
    1414
    15 void    UpdateElementsPrognostic(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter){
     15void    UpdateElementsPrognostic(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type){
    1616
    1717        /*Intermediary*/
     
    4646                if(iomodel->my_elements[i]){
    4747                        element=(Element*)elements->GetObjectByOffset(counter);
    48                         element->Update(i,iomodel,analysis_counter); //we need i to index into elements.
     48                        element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements.
    4949                        counter++;
    5050                }
  • issm/trunk/src/c/modules/ModelProcessorx/Prognostic2/CreateNodesPrognostic2.cpp

    r4005 r4025  
    1616
    1717        /*Intermediary*/
    18         int i;
     18        int i,j;
    1919        int vertex_index;
    2020        int node_index;
     
    5959
    6060                                /*Add node to nodes dataset: */
    61                                 nodes->AddObject(new Node(iomodel->nodecounter+node_index+1,vertex_index,node_index,iomodel));
     61                                nodes->AddObject(new Node(iomodel->nodecounter+node_index+1,vertex_index,node_index,iomodel,Prognostic2AnalysisEnum));
    6262
    6363                        }
  • issm/trunk/src/c/modules/ModelProcessorx/Prognostic2/UpdateElementsPrognostic2.cpp

    r4017 r4025  
    1313#include "../ModelProcessorx.h"
    1414
    15 void    UpdateElementsPrognostic2(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter){
     15void    UpdateElementsPrognostic2(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type){
    1616
    1717        /*Intermediary*/
     
    4141                if(iomodel->my_elements[i]){
    4242                        element=(Element*)elements->GetObjectByOffset(counter);
    43                         element->Update(i,iomodel,analysis_counter); //we need i to index into elements.
     43                        element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements.
    4444                        counter++;
    4545                }
  • issm/trunk/src/c/modules/ModelProcessorx/Qmu/CreateParametersQmu.cpp

    r3913 r4025  
    1313#include "../ModelProcessorx.h"
    1414
    15 void CreateParametersQmu(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle){
     15void CreateParametersQmu(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_type){
    1616       
    1717        int i,j,k;
     
    126126
    127127                        /*Partition elements and vertices and nodes: */
    128                         Partitioning(&iomodel->my_elements, &iomodel->my_vertices, &iomodel->my_nodes, &iomodel->my_bordervertices, iomodel, iomodel_handle);
     128                        ElementsAndVerticesPartitioning(&iomodel->my_elements,&iomodel->my_vertices, &iomodel->my_bordervertices, iomodel,iomodel_handle);
    129129
    130130                        dpart=(double*)xmalloc(iomodel->numberofvertices*sizeof(double));
  • issm/trunk/src/c/modules/ModelProcessorx/SlopeCompute/UpdateElementsSlopeCompute.cpp

    r4017 r4025  
    1313#include "../ModelProcessorx.h"
    1414
    15 void    UpdateElementsSlopeCompute(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter){
     15void    UpdateElementsSlopeCompute(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type){
    1616
    1717        /*Intermediary*/
     
    3737                if(iomodel->my_elements[i]){
    3838                        element=(Element*)elements->GetObjectByOffset(counter);
    39                         element->Update(i,iomodel,analysis_counter); //we need i to index into elements.
     39                        element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements.
    4040                        counter++;
    4141                }
  • issm/trunk/src/c/modules/ModelProcessorx/SortDataSets.cpp

    r4002 r4025  
    1818void SortDataSets(DataSet** pelements,DataSet** pnodes,DataSet** pvertices, DataSet** ploads, DataSet** pmaterials, DataSet** pconstraints, Parameters** pparameters){
    1919
     20        DataSet* elements=NULL;
     21        DataSet* nodes=NULL;
     22        DataSet* vertices=NULL;
     23        DataSet* loads=NULL;
     24        DataSet* materials=NULL;
     25        DataSet* constraints=NULL;
     26        Parameters* parameters=NULL;
     27
     28        /*Recover pointers: */
     29        elements=*pelements;
     30        nodes=*pnodes;
     31        vertices=*pvertices;
     32        loads=*ploads;
     33        materials=*pmaterials;
     34        constraints=*pconstraints;
     35        parameters=*pparameters;
     36
    2037        /*All our datasets are already ordered by ids. Set presort flag so that later on, when sorting is requested on these
    2138         * datasets, it will not be redone: */
    2239
    23         if(*pelements)*pelements->Presort();
    24         if(*pnodes)*pnodes->Presort();
    25         if(*pvertices)*pvertices->Presort();
    26         if(*pmaterials)*pmaterials->Presort();
    27         if(*ploads)*ploads->Presort();
    28         if(*pconstraints)*pconstraints->Presort();
    29         if(*pparameters)*pparameters->Presort();
     40        if(elements)elements->Presort();
     41        if(nodes)nodes->Presort();
     42        if(vertices)vertices->Presort();
     43        if(loads)loads->Presort();
     44        if(materials)materials->Presort();
     45        if(constraints)constraints->Presort();
     46        if(parameters)parameters->Presort();
    3047
    3148}
  • issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp

    r4005 r4025  
    4646                       
    4747                        /*Add node to nodes dataset: */
    48                         nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel));
     48                        nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel,ThermalAnalysisEnum));
    4949
    5050                }
  • issm/trunk/src/c/modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp

    r4017 r4025  
    1313#include "../ModelProcessorx.h"
    1414
    15 void    UpdateElementsThermal(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter){
     15void    UpdateElementsThermal(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type){
    1616
    1717        /*Intermediary*/
     
    5050                if(iomodel->my_elements[i]){
    5151                        element=(Element*)elements->GetObjectByOffset(counter);
    52                         element->Update(i,iomodel,analysis_counter); //we need i to index into elements.
     52                        element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements.
    5353                        counter++;
    5454                }
    5555        }
     56
     57        cleanup_and_return:
    5658
    5759        /*Free data: */
     
    6769        xfree((void**)&iomodel->elementonsurface);
    6870        xfree((void**)&iomodel->elementonwater);
    69         xfree((void**)&iomodel->elementons_type);
     71        xfree((void**)&iomodel->elements_type);
    7072        xfree((void**)&iomodel->rheology_B);
    7173        xfree((void**)&iomodel->rheology_n);
  • issm/trunk/src/c/modules/ModelProcessorx/UpdateCounters.cpp

    r4002 r4025  
    1515#include "./ModelProcessorx.h"
    1616
    17 void    UpdateCounter(IoModel* iomodel,DataSet** pnodes,DataSet** ploads, DataSet** pconstraints){
     17void    UpdateCounters(IoModel* iomodel,DataSet** pnodes,DataSet** ploads, DataSet** pconstraints){
    1818
    1919        DataSet* nodes=NULL;
     
    2424        nodes=*pnodes;
    2525        loads=*ploads;
    26         cosntraints=*pconstraints;
     26        constraints=*pconstraints;
    2727
    2828
  • issm/trunk/src/c/objects/Elements/Beam.cpp

    r4021 r4025  
    2929        delete inputs;
    3030        this->parameters=NULL;
     31}
     32/*}}}*/
     33/*FUNCTION void Beam::Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type);{{{1*/
     34void Beam::Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type){
     35        ISSMERROR(" not supported yet!");
    3136}
    3237/*}}}*/
  • issm/trunk/src/c/objects/Elements/Beam.h

    r4021 r4025  
    4040                Beam();
    4141                ~Beam();
     42                void   Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type);
    4243                /*}}}*/
    4344                /*object management: {{{1*/
  • issm/trunk/src/c/objects/Elements/Element.h

    r4004 r4025  
    4949                virtual void   PatchSize(int* pnumrows, int* pnumvertices,int* pnumnodes,int enum_type)=0;
    5050                virtual void   PatchFill(int* pcount, double* patches,int numcols,int max_vertices,int enum_type)=0;
     51                virtual void   Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type)=0;
    5152
    5253                /*Implementation: */
  • issm/trunk/src/c/objects/Elements/Penta.h

    r4021 r4025  
    4343                Penta();
    4444                Penta(int penta_id,int i, IoModel* iomodel,int nummodels);
    45                 void Update(int index,IoModel* iomodel,int analysis_counter,int analysis_type);
     45                void  Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type);
    4646                ~Penta();
    4747                /*}}}*/
  • issm/trunk/src/c/objects/Elements/Sing.cpp

    r4021 r4025  
    2929        delete inputs;
    3030        this->parameters=NULL;
     31}
     32/*}}}*/
     33/*FUNCTION void Sing::Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type);{{{1*/
     34void Sing::Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type){
     35        ISSMERROR(" not supported yet!");
    3136}
    3237/*}}}*/
  • issm/trunk/src/c/objects/Elements/Sing.h

    r4021 r4025  
    4040                Sing();
    4141                ~Sing();
     42                void   Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type);
    4243                /*}}}*/
    4344                /*object management: {{{1*/
Note: See TracChangeset for help on using the changeset viewer.