Changeset 4919


Ignore:
Timestamp:
08/02/10 09:44:05 (15 years ago)
Author:
Mathieu Morlighem
Message:

bordervertices not needed anymore

Location:
issm/trunk/src/c
Files:
18 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/modules/ModelProcessorx/Balancedthickness/CreateNodesBalancedthickness.cpp

    r4765 r4919  
    3333        /*Continuous Galerkin partition of nodes: */
    3434        if(iomodel->prognostic_DG) continuous_galerkin=false;
    35         NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements, iomodel->my_vertices, iomodel->my_bordervertices, iomodel, iomodel_handle,continuous_galerkin);
     35        NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel,iomodel_handle,continuous_galerkin);
    3636
    3737        /*Check in 3d*/
  • issm/trunk/src/c/modules/ModelProcessorx/Balancedvelocities/CreateNodesBalancedvelocities.cpp

    r4236 r4919  
    2929
    3030        /*Continuous Galerkin partition of nodes: */
    31         NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements, iomodel->my_vertices, iomodel->my_bordervertices, iomodel, iomodel_handle,continuous_galerkin);
     31        NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel,iomodel_handle,continuous_galerkin);
    3232
    3333        /*First fetch data: */
  • issm/trunk/src/c/modules/ModelProcessorx/BedSlope/CreateNodesBedSlope.cpp

    r4300 r4919  
    2929       
    3030        /*Continuous Galerkin partition of nodes: */
    31         NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements, iomodel->my_vertices, iomodel->my_bordervertices, iomodel, iomodel_handle,continuous_galerkin);
     31        NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel,iomodel_handle,continuous_galerkin);
    3232       
    3333        /*First fetch data: */
  • issm/trunk/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp

    r4295 r4919  
    3232       
    3333        /*First, partition elements and vertices. Nodes will partitioned on a per analysis_type basis. If partitining already done, ignore: */
    34         ElementsAndVerticesPartitioning(&iomodel->my_elements, &iomodel->my_vertices, &iomodel->my_bordervertices, iomodel, iomodel_handle);
     34        ElementsAndVerticesPartitioning(&iomodel->my_elements,&iomodel->my_vertices,iomodel,iomodel_handle);
    3535       
    3636        /*Fetch data needed: */
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp

    r4387 r4919  
    3232
    3333        /*Continuous Galerkin partition of nodes: */
    34         NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements, iomodel->my_vertices, iomodel->my_bordervertices, iomodel, iomodel_handle,continuous_galerkin);
     34        NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel,iomodel_handle,continuous_galerkin);
    3535
    3636        /*Create nodes: */
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp

    r4236 r4919  
    3232
    3333        /*Continuous Galerkin partition of nodes: */
    34         NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements, iomodel->my_vertices, iomodel->my_bordervertices, iomodel, iomodel_handle,continuous_galerkin);
     34        NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel,iomodel_handle,continuous_galerkin);
    3535
    3636        /*First fetch data: */
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticStokes/CreateNodesDiagnosticStokes.cpp

    r4236 r4919  
    3333
    3434        /*Continuous Galerkin partition of nodes: */
    35         NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements, iomodel->my_vertices, iomodel->my_bordervertices, iomodel, iomodel_handle,continuous_galerkin);
     35        NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel,iomodel_handle,continuous_galerkin);
    3636
    3737        /*First fetch data: */
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateNodesDiagnosticVert.cpp

    r4236 r4919  
    3232
    3333        /*Continuous Galerkin partition of nodes: */
    34         NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements, iomodel->my_vertices, iomodel->my_bordervertices, iomodel, iomodel_handle,continuous_galerkin);
     34        NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel,iomodel_handle,continuous_galerkin);
    3535       
    3636        /*First fetch data: */
  • issm/trunk/src/c/modules/ModelProcessorx/ElementsAndVerticesPartitioning.cpp

    r4888 r4919  
    1818#include "../ModelProcessorx/ModelProcessorx.h"
    1919
    20 void  ElementsAndVerticesPartitioning(bool** pmy_elements, bool** pmy_vertices, bool** pmy_bordervertices, IoModel* iomodel, ConstDataHandle iomodel_handle){
     20void  ElementsAndVerticesPartitioning(bool** pmy_elements, bool** pmy_vertices, IoModel* iomodel, ConstDataHandle iomodel_handle){
    2121
    2222        int i;
     
    2828        bool* my_elements=NULL;
    2929        bool* my_vertices=NULL;
    30         bool* my_bordervertices=NULL;
    3130
    3231        /*intermediary: */
     
    3433        int* npart=NULL; //node partitioning.
    3534        int  elements_width; //number of columns in elements (2d->3, 3d->6)
    36         Vec  bordervertices=NULL;
    37         double* serial_bordervertices=NULL;
    3835        int  el1,el2;
    3936
     
    121118        xfree((void**)&iomodel->penalties);
    122119
    123         #ifdef _PARALLEL_
    124                 /*From the element partitioning, we can determine which vertices are on the inside of this cpu's
    125                  *element partition, and which are on its border with other vertices:*/
    126                 bordervertices=NewVec(iomodel->numberofvertices);
    127 
    128                 for (i=0;i<iomodel->numberofvertices;i++){
    129                         if(my_vertices[i])VecSetValue(bordervertices,i,1,ADD_VALUES);
    130                 }
    131                 VecAssemblyBegin(bordervertices);
    132                 VecAssemblyEnd(bordervertices);
    133 
    134                 VecToMPISerial(&serial_bordervertices,bordervertices);
    135 
    136                 /*now go through serial_bordervertices, and booleanize it: */
    137                 my_bordervertices=(bool*)xcalloc(iomodel->numberofvertices,sizeof(bool));
    138                 for(i=0;i<iomodel->numberofvertices;i++){
    139                         if(serial_bordervertices[i]>1)my_bordervertices[i]=1;
    140                 }
    141         #else
    142                 /*No border vertices: */
    143                 my_bordervertices=(bool*)xcalloc(iomodel->numberofvertices,sizeof(bool));
    144         #endif
    145 
    146120        /*Free ressources:*/
    147121        xfree((void**)&npart);
    148122        xfree((void**)&epart);
    149         xfree((void**)&serial_bordervertices);
    150         VecFree(&bordervertices);
    151123
    152124        /*Assign output pointers:*/
    153125        *pmy_elements=my_elements;
    154126        *pmy_vertices=my_vertices;
    155         *pmy_bordervertices=my_bordervertices;
    156127}
    157128
  • issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateNodesMelting.cpp

    r4236 r4919  
    2929
    3030        /*Continuous Galerkin partition of nodes: */
    31         NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements, iomodel->my_vertices, iomodel->my_bordervertices, iomodel, iomodel_handle,continuous_galerkin);
     31        NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel,iomodel_handle,continuous_galerkin);
    3232
    3333        /*First fetch data: */
  • issm/trunk/src/c/modules/ModelProcessorx/ModelProcessorx.h

    r4765 r4919  
    9191
    9292/*partitioning: */
    93 void  ElementsAndVerticesPartitioning(bool** pmy_elements, bool** pmy_vertices, bool** pmy_bordervertices, IoModel* iomodel, ConstDataHandle iomodel_handle);
    94 void  NodesPartitioning(bool** pmy_nodes,bool* my_elements, bool* my_vertices, bool* my_bordervertices, IoModel* iomodel, ConstDataHandle iomodel_handle,bool continuous);
     93void  ElementsAndVerticesPartitioning(bool** pmy_elements, bool** pmy_vertices, IoModel* iomodel, ConstDataHandle iomodel_handle);
     94void  NodesPartitioning(bool** pmy_nodes,bool* my_elements, bool* my_vertices, IoModel* iomodel, ConstDataHandle iomodel_handle,bool continuous);
    9595
    9696/*Connectivity*/
  • issm/trunk/src/c/modules/ModelProcessorx/NodesPartitioning.cpp

    r4025 r4919  
    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);
    21 void  ContinuousGalerkinNodesPartitioning(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, IoModel* iomodel, ConstDataHandle iomodel_handle);
     21void  ContinuousGalerkinNodesPartitioning(bool** pmy_nodes,bool* my_elements, bool* my_vertices, IoModel* iomodel, ConstDataHandle iomodel_handle);
    2222
    23 void  NodesPartitioning(bool** pmy_nodes,bool* my_elements, bool* my_vertices, bool* my_bordervertices, IoModel* iomodel, ConstDataHandle iomodel_handle,bool continuous){
     23void  NodesPartitioning(bool** pmy_nodes,bool* my_elements, bool* my_vertices, IoModel* iomodel, ConstDataHandle iomodel_handle,bool continuous){
    2424       
    2525        /*First thing, this is a new partition for a new analysis_type, therefore, to avoid a leak, erase the nodes partition that might come through pmy_nodes: */
     
    2828        /*Now, depending on whether we are running galerkin discontinous or continuous elements, carry out a different partition of the nodes: */
    2929        if(continuous==true)
    30                 ContinuousGalerkinNodesPartitioning(pmy_nodes,my_elements, my_vertices, my_bordervertices, iomodel, iomodel_handle);
     30                ContinuousGalerkinNodesPartitioning(pmy_nodes,my_elements, my_vertices, iomodel, iomodel_handle);
    3131        else
    32                 DiscontinuousGalerkinNodesPartitioning(pmy_nodes,my_elements, my_vertices, my_bordervertices, iomodel, iomodel_handle);
     32                DiscontinuousGalerkinNodesPartitioning(pmy_nodes,my_elements, my_vertices, iomodel, iomodel_handle);
    3333}
    3434
    35 void  ContinuousGalerkinNodesPartitioning(bool** pmy_nodes,bool* my_elements, bool* my_vertices, bool* my_bordervertices, IoModel* iomodel, ConstDataHandle iomodel_handle){
     35void  ContinuousGalerkinNodesPartitioning(bool** pmy_nodes,bool* my_elements, bool* my_vertices, IoModel* iomodel, ConstDataHandle iomodel_handle){
    3636
    3737        /*as many nodes as there are vertices */
     
    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, 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

    r4739 r4919  
    3333        /*Create partition of nodes: */
    3434        if(iomodel->prognostic_DG) continuous_galerkin=false;
    35         NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements, iomodel->my_vertices, iomodel->my_bordervertices, iomodel, iomodel_handle,continuous_galerkin);
     35        NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel,iomodel_handle,continuous_galerkin);
    3636
    3737        /*Check in 3d*/
  • issm/trunk/src/c/modules/ModelProcessorx/Qmu/CreateParametersQmu.cpp

    r4862 r4919  
    138138
    139139                        /*Partition elements and vertices and nodes: */
    140                         ElementsAndVerticesPartitioning(&iomodel->my_elements,&iomodel->my_vertices, &iomodel->my_bordervertices, iomodel,iomodel_handle);
     140                        ElementsAndVerticesPartitioning(&iomodel->my_elements,&iomodel->my_vertices,iomodel,iomodel_handle);
    141141
    142142                        dpart=(double*)xmalloc(iomodel->numberofvertices*sizeof(double));
  • issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/CreateNodesSurfaceSlope.cpp

    r4301 r4919  
    2929       
    3030        /*Continuous Galerkin partition of nodes: */
    31         NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements, iomodel->my_vertices, iomodel->my_bordervertices, iomodel, iomodel_handle,continuous_galerkin);
     31        NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel,iomodel_handle,continuous_galerkin);
    3232       
    3333        /*First fetch data: */
  • issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp

    r4236 r4919  
    2929
    3030        /*Continuous Galerkin partition of nodes: */
    31         NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements, iomodel->my_vertices, iomodel->my_bordervertices, iomodel, iomodel_handle,continuous_galerkin);
     31        NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel,iomodel_handle,continuous_galerkin);
    3232
    3333        /*Create nodes and vertices: */
  • issm/trunk/src/c/objects/IoModel.cpp

    r4854 r4919  
    9797        xfree((void**)&this->repository);
    9898        xfree((void**)&this->name);
    99        
    10099        xfree((void**)&this->riftinfo);
    101        
    102100        xfree((void**)&this->penalties);
    103         xfree((void**)&this->penaltypartitioning);
    104        
    105101        xfree((void**)&this->control_type);
    106102        xfree((void**)&this->control_parameter);
     
    110106        xfree((void**)&this->my_vertices);
    111107        xfree((void**)&this->my_nodes);
    112         xfree((void**)&this->my_bordervertices);
    113         xfree((void**)&this->penaltypartitioning);
    114108        xfree((void**)&this->singlenodetoelementconnectivity);
    115109        xfree((void**)&this->numbernodetoelementconnectivity);
     
    380374        this->my_vertices=NULL;
    381375        this->my_nodes=NULL;
    382         this->my_bordervertices=NULL;
    383         this->penaltypartitioning=NULL;
    384376        this->singlenodetoelementconnectivity=NULL;
    385377        this->numbernodetoelementconnectivity=NULL;
  • issm/trunk/src/c/objects/IoModel.h

    r4854 r4919  
    186186                bool*   my_vertices;
    187187                bool*   my_nodes;
    188                 bool*   my_bordervertices;
    189                 int*    penaltypartitioning;
    190188                int*    singlenodetoelementconnectivity;
    191189                int*    numbernodetoelementconnectivity;
Note: See TracChangeset for help on using the changeset viewer.