Changeset 4145


Ignore:
Timestamp:
06/23/10 08:22:37 (15 years ago)
Author:
Eric.Larour
Message:

New routines to count number of nodes and number of vertices

Location:
issm/trunk/src/c/DataSet
Files:
2 edited

Legend:

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

    r4091 r4145  
    888888
    889889        return count;
     890}
     891/*}}}*/
     892/*FUNCTION DataSet::NumberOfNodes{{{1*/
     893void DataSet::NumberOfNodes(int* pnumberofnodes){
     894
     895        vector<Object*>::iterator object;
     896        int max_sid=0;
     897        int sid;
     898        int node_max_sid;
     899
     900        for ( object=objects.begin() ; object < objects.end(); object++ ){
     901
     902                if((*object)->Enum()==NodeEnum){
     903
     904                        Node* node=(Node*)(*object);
     905                        sid=node->Sid();
     906                        if (sid>max_sid)max_sid=sid;
     907                }
     908        }
     909
     910        #ifdef _PARALLEL_
     911        MPI_Reduce (&max_sid,&node_max_sid,1,MPI_INT,MPI_MAX,0,MPI_COMM_WORLD );
     912        MPI_Bcast(&node_max_sid,1,MPI_INT,0,MPI_COMM_WORLD);
     913        max_sid=node_max_sid;
     914        #endif
     915
     916        /*Assign output pointers:*/
     917        *pnumberofnodes=max_sid;
     918}
     919/*}}}*/
     920/*FUNCTION DataSet::NumberOfVertices{{{1*/
     921void DataSet::NumberOfVertices(int* pnumberofvertices){
     922
     923        vector<Object*>::iterator object;
     924        int max_sid=0;
     925        int sid;
     926        int vertex_max_sid;
     927
     928        for ( object=objects.begin() ; object < objects.end(); object++ ){
     929
     930                if((*object)->Enum()==VertexEnum){
     931
     932                        Vertex* vertex=(Vertex*)(*object);
     933                        sid=vertex->Sid();
     934                        if (sid>max_sid)max_sid=sid;
     935                }
     936        }
     937
     938        #ifdef _PARALLEL_
     939        MPI_Reduce (&max_sid,&vertex_max_sid,1,MPI_INT,MPI_MAX,0,MPI_COMM_WORLD );
     940        MPI_Bcast(&vertex_max_sid,1,MPI_INT,0,MPI_COMM_WORLD);
     941        max_sid=vertex_max_sid;
     942        #endif
     943
     944        /*Assign output pointers:*/
     945        *pnumberofvertices=max_sid;
    890946}
    891947/*}}}*/
  • issm/trunk/src/c/DataSet/DataSet.h

    r4091 r4145  
    5858                int   NumberOfDofs(int analysis_type);
    5959                int   NumberOfRgbs(int analysis_type);
     60                int   NumberOfVertices(int* pnumberofvertices);
     61                int   NumberOfNodes(int* pnumberofnodes);
    6062                void  SetupSpcs(DataSet* nodes,Vec yg,int analysis_type);
    6163                void  SetupMpcs(Mat Rmg,DataSet* nodes,int analysis_type);
    6264                void  FlagNodeSets(Vec pv_g, Vec pv_m, Vec pv_n, Vec pv_f, Vec pv_s,int analysis_type);
    6365                void  clear();
    64                 void Configure(DataSet* elements,DataSet* loads, DataSet* nodes, DataSet* vertices, DataSet* materials,Parameters* parameters);
     66                void  Configure(DataSet* elements,DataSet* loads, DataSet* nodes, DataSet* vertices, DataSet* materials,Parameters* parameters);
    6567                Object* GetObjectByOffset(int offset);
    6668                Object* GetObjectById(int* poffset,int eid);
Note: See TracChangeset for help on using the changeset viewer.