Changeset 3438


Ignore:
Timestamp:
04/07/10 16:56:45 (15 years ago)
Author:
seroussi
Message:

aded CreateLoads stokes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateLoadsDiagnosticStokes.cpp

    r3332 r3438  
    1313void    CreateLoadsDiagnosticStokes(DataSet** ploads, IoModel* iomodel,ConstDataHandle iomodel_handle){
    1414
    15         int i,j,counter;
    16         int element;
    1715
    18         extern int my_rank;
    19         extern int num_procs;
    20        
    2116        DataSet*    loads    = NULL;
    2217        Icefront*   icefront = NULL;
     
    2419
    2520        int segment_width;
    26         int i1,i2,i3,i4;
    27         int i0,range;
    28         int grid1,grid2;
    29 
    30         /*icefront intermediary data: */
    31         char icefront_type[ICEFRONTSTRING];
    32         int  icefront_fill;
    33         int  icefront_element_type;
    34         int  icefront_sid;
    35         int icefront_eid;
    36         int icefront_mparid;
    37         int     icefront_node_ids[MAX_ICEFRONT_GRIDS];
    38         double icefront_h[MAX_ICEFRONT_GRIDS];
    39         double  icefront_b[MAX_ICEFRONT_GRIDS];
     21        int element;
    4022
    4123        /*pengrid intermediary data: */
     
    7557                element=(int)(*(iomodel->pressureload+segment_width*i+segment_width-2)-1); //element is in the penultimate column (grid1 grid2 ... elem fill)
    7658
    77                 #ifdef _PARALLEL_
    78                 if (iomodel->epart[element]!=my_rank){
    79                         /*This load does not belong to this cluster node, as it references an element
    80                          *that does not belong to this node's partition. Drop this 'i':*/
    81                         continue;
    82                 }
    83                 #endif
     59                /*Now, if this element is not in the partition, pass: */
     60                if(!iomodel->my_elements[i])continue;
    8461       
    8562                /*Do not create ice front if it is not a Stokes element*/
     
    8865                }
    8966
    90                 icefront_mparid=iomodel->numberofelements+1; //matlab indexing
    91                 icefront_sid=count+1; //matlab indexing
    92                 icefront_fill=(int)*(iomodel->pressureload+segment_width*i+segment_width-1);
    93                 icefront_eid=(int) *(iomodel->pressureload+segment_width*i+segment_width-2); //matlab indexing
    94                 icefront_element_type=PentaEnum();
    95 
    96                 i1=(int)*(iomodel->pressureload+segment_width*i+0);
    97                 i2=(int)*(iomodel->pressureload+segment_width*i+1);
    98                 i3=(int)*(iomodel->pressureload+segment_width*i+2);
    99                 i4=(int)*(iomodel->pressureload+segment_width*i+3);
    100        
    101                 icefront_node_ids[0]=i1;
    102                 icefront_node_ids[1]=i2;
    103                 icefront_node_ids[2]=i3;
    104                 icefront_node_ids[3]=i4;
    105        
    106                 icefront_h[0]=iomodel->thickness[i1-1];
    107                 icefront_h[1]=iomodel->thickness[i2-1];
    108                 icefront_h[2]=iomodel->thickness[i3-1];
    109                 icefront_h[3]=iomodel->thickness[i4-1];
    110 
    111                 icefront_b[0]=iomodel->bed[i1-1];
    112                 icefront_b[1]=iomodel->bed[i2-1];
    113                 icefront_b[2]=iomodel->bed[i3-1];
    114                 icefront_b[3]=iomodel->bed[i4-1];
    115        
    116                 icefront = new Icefront(icefront_type,icefront_fill,icefront_sid,icefront_mparid,icefront_eid,icefront_element_type,icefront_node_ids,icefront_h,icefront_b);
    117                
    118                 loads->AddObject(icefront);
    119                 count++;
     67                /*Create and  add load: */
     68                loads->AddObject(new Icefront(i,iomodel));
    12069
    12170        }
Note: See TracChangeset for help on using the changeset viewer.