Ignore:
Timestamp:
04/02/10 15:06:53 (15 years ago)
Author:
Mathieu Morlighem
Message:

fixed DG in parallel

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/objects/Numericalflux.cpp

    r3371 r3378  
    1717#include "./objects.h"
    1818
     19extern int my_rank;
     20
    1921/*Object constructors and destructor*/
    2022/*FUNCTION Numericalflux::Numericalflux(){{{1*/
     
    2426/*}}}*/
    2527/*FUNCTION Numericalflux::Numericalflux(char numericalflux_type[NUMERICALFLUXSTRING],int numericalflux_fill...){{{1*/
    26 Numericalflux::Numericalflux(int numericalflux_id,char numericalflux_type[NUMERICALFLUXSTRING], int numericalflux_node_ids[MAX_NUMERICALFLUX_NODES],int numericalflux_element_ids[MAX_NUMERICALFLUX_ELEMS]){
     28Numericalflux::Numericalflux(int numericalflux_id,char numericalflux_type[NUMERICALFLUXSTRING], int numericalflux_node_ids[MAX_NUMERICALFLUX_NODES],int numericalflux_element_id){
    2729
    2830        int i;
     
    3032        strcpy(type,numericalflux_type);
    3133        id=numericalflux_id;
    32        
    33         for(i=0;i<MAX_NUMERICALFLUX_ELEMS;i++){
    34                 element_ids[i]=numericalflux_element_ids[i];
    35                 element_offsets[i]=UNDEF;
    36                 elements[i]=NULL;
    37         }
     34
     35        element_id=numericalflux_element_id;
     36        element_offset=UNDEF;
     37        element=NULL;
    3838
    3939        for(i=0;i<MAX_NUMERICALFLUX_NODES;i++){
     
    7373        memcpy(&id,marshalled_dataset,sizeof(id));marshalled_dataset+=sizeof(id);
    7474
    75         memcpy(&element_ids,marshalled_dataset,sizeof(element_ids));marshalled_dataset+=sizeof(element_ids);
    76         memcpy(&element_offsets,marshalled_dataset,sizeof(element_offsets));marshalled_dataset+=sizeof(element_offsets);
    77         for(i=0;i<MAX_NUMERICALFLUX_ELEMS;i++)elements[i]=NULL;
     75        memcpy(&element_id,marshalled_dataset,sizeof(element_id));marshalled_dataset+=sizeof(element_id);
     76        memcpy(&element_offset,marshalled_dataset,sizeof(element_offset));marshalled_dataset+=sizeof(element_offset);
     77        element=NULL;
    7878       
    7979        memcpy(&node_ids,marshalled_dataset,sizeof(node_ids));marshalled_dataset+=sizeof(node_ids);
     
    105105        memcpy(marshalled_dataset,&id,sizeof(id));marshalled_dataset+=sizeof(id);
    106106       
    107         memcpy(marshalled_dataset,&element_ids,sizeof(element_ids));marshalled_dataset+=sizeof(element_ids);
    108         memcpy(marshalled_dataset,&element_offsets,sizeof(element_offsets));marshalled_dataset+=sizeof(element_offsets);
     107        memcpy(marshalled_dataset,&element_id,sizeof(element_id));marshalled_dataset+=sizeof(element_id);
     108        memcpy(marshalled_dataset,&element_offset,sizeof(element_offset));marshalled_dataset+=sizeof(element_offset);
    109109
    110110        memcpy(marshalled_dataset,&node_ids,sizeof(node_ids));marshalled_dataset+=sizeof(node_ids);
     
    120120        return sizeof(type)+
    121121                sizeof(id)+
    122                 sizeof(element_ids)+
    123                 sizeof(element_offsets)+
     122                sizeof(element_id)+
     123                sizeof(element_offset)+
    124124                sizeof(node_ids)+
    125125                sizeof(node_offsets)+
     
    142142        if (strcmp(type,"internal")==0){
    143143                ResolvePointers((Object**)nodes,node_ids,node_offsets,4,nodesin);
    144                 ResolvePointers((Object**)elements,element_ids,element_offsets,2,elementsin);
    145144        }
    146145        else if (strcmp(type,"boundary")==0){
    147146                ResolvePointers((Object**)nodes,node_ids,node_offsets,2,nodesin);
    148                 ResolvePointers((Object**)elements,element_ids,element_offsets,1,elementsin);
    149147        }
    150148        else ISSMERROR("type not supported yet");
     149        ResolvePointers((Object**)&element,&element_id,&element_offset,1,elementsin);
    151150
    152151}
     
    176175        printf("   id: %i\n",id);
    177176       
     177        printf("   element_id=%i\n",element_id);
     178        printf("   element_offset=%i\n",element_offset);
     179        if(element)element->Echo();
    178180        if (strcmp(type,"internal")==0){
    179                 printf("   element_ids=[%i,%i]\n",element_ids[0],element_ids[1]);
    180                 printf("   element_offsets=[%i,%i]\n",element_offsets[0],element_offsets[1]);
    181                 for(i=0;i<2;i++){
    182                         if(elements[i])elements[i]->Echo();
    183                 }
    184181                printf("   node_ids=[%i,%i,%i,%i]\n",node_ids[0],node_ids[1],node_ids[2],node_ids[3]);
    185182                printf("   node_offsets=[%i,%i,%i,%i]\n",node_offsets[0],node_offsets[1],node_offsets[2],node_offsets[3]);
     
    189186        }
    190187        else{
    191                 printf("   element_ids=[%i,%i]\n",element_ids[0],element_ids[1]);
    192                 printf("   element_offsets=[%i,%i]\n",element_offsets[0],element_offsets[1]);
    193                 for(i=0;i<1;i++){
    194                         if(elements[i])elements[i]->Echo();
    195                 }
    196188                printf("   node_ids=[%i,%i,%i,%i]\n",node_ids[0],node_ids[1],node_ids[2],node_ids[3]);
    197189                printf("   node_offsets=[%i,%i,%i,%i]\n",node_offsets[0],node_offsets[1],node_offsets[2],node_offsets[3]);
     
    215207        printf("   id: %i\n",id);
    216208
     209        printf("   element_id=%i\n",element_id);
     210        printf("   element_offset=%i]\n",element_offset);
     211
    217212        if (strcmp(type,"internal")==0){
    218                 printf("   element_ids=[%i,%i]\n",element_ids[0],element_ids[1]);
    219                 printf("   element_offsets=[%i,%i]\n",element_offsets[0],element_offsets[1]);
    220213                printf("   node_ids=[%i,%i,%i,%i]\n",node_ids[0],node_ids[1],node_ids[2],node_ids[3]);
    221214                printf("   node_offsets=[%i,%i,%i,%i]\n",node_offsets[0],node_offsets[1],node_offsets[2],node_offsets[3]);
    222215        }
    223216        else{
    224                 printf("   element_ids=%i\n",element_ids[0]);
    225                 printf("   element_offsets=%i\n",element_offsets[0]);
    226217                printf("   node_ids=[%i,%i]\n",node_ids[0],node_ids[1]);
    227218                printf("   node_offsets=[%i,%i]\n",node_offsets[0],node_offsets[1]);
Note: See TracChangeset for help on using the changeset viewer.