/[escript]/trunk/finley/src/Mesh_hex8.c
ViewVC logotype

Diff of /trunk/finley/src/Mesh_hex8.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2881 by jfenwick, Thu Jan 28 02:03:15 2010 UTC revision 3259 by jfenwick, Mon Oct 11 01:48:14 2010 UTC
# Line 40  Finley_Mesh* Finley_RectangularMesh_Hex8 Line 40  Finley_Mesh* Finley_RectangularMesh_Hex8
40    index_t node0, myRank, e_offset2, e_offset1, e_offset0=0, offset1=0, offset2=0, offset0=0, global_i0, global_i1, global_i2;    index_t node0, myRank, e_offset2, e_offset1, e_offset0=0, offset1=0, offset2=0, offset0=0, global_i0, global_i1, global_i2;
41    Finley_ReferenceElementSet *refPoints=NULL, *refContactElements=NULL, *refFaceElements=NULL, *refElements=NULL;    Finley_ReferenceElementSet *refPoints=NULL, *refContactElements=NULL, *refFaceElements=NULL, *refElements=NULL;
42    Finley_Mesh* out;    Finley_Mesh* out;
43    Paso_MPIInfo *mpi_info = NULL;    Esys_MPIInfo *mpi_info = NULL;
44    char name[50];    char name[50];
45    #ifdef Finley_TRACE    #ifdef Finley_TRACE
46    double time0=Finley_timer();    double time0=Finley_timer();
47    #endif    #endif
48    
49    /* get MPI information */    /* get MPI information */
50    mpi_info = Paso_MPIInfo_alloc( MPI_COMM_WORLD );    mpi_info = Esys_MPIInfo_alloc( MPI_COMM_WORLD );
51    if (! Finley_noError()) {    if (! Finley_noError()) {
52          return NULL;          return NULL;
53    }    }
# Line 66  Finley_Mesh* Finley_RectangularMesh_Hex8 Line 66  Finley_Mesh* Finley_RectangularMesh_Hex8
66    sprintf(name,"Rectangular %d x %d x %d mesh",N0,N1,N2);    sprintf(name,"Rectangular %d x %d x %d mesh",N0,N1,N2);
67    out=Finley_Mesh_alloc(name,DIM, mpi_info);    out=Finley_Mesh_alloc(name,DIM, mpi_info);
68    if (! Finley_noError()) {    if (! Finley_noError()) {
69        Paso_MPIInfo_free( mpi_info );        Esys_MPIInfo_free( mpi_info );
70        return NULL;        return NULL;
71    }    }
72    refElements= Finley_ReferenceElementSet_alloc(Hex8,order,reduced_order);    refElements= Finley_ReferenceElementSet_alloc(Finley_Hex8,order,reduced_order);
73    if (useElementsOnFace) {    if (useElementsOnFace) {
74          refFaceElements=Finley_ReferenceElementSet_alloc(Hex8Face, order, reduced_order);          refFaceElements=Finley_ReferenceElementSet_alloc(Finley_Hex8Face, order, reduced_order);
75          refContactElements=Finley_ReferenceElementSet_alloc(Hex8Face_Contact, order, reduced_order);          refContactElements=Finley_ReferenceElementSet_alloc(Finley_Hex8Face_Contact, order, reduced_order);
76    } else {    } else {
77          refFaceElements=Finley_ReferenceElementSet_alloc(Rec4, order, reduced_order);          refFaceElements=Finley_ReferenceElementSet_alloc(Finley_Rec4, order, reduced_order);
78          refContactElements=Finley_ReferenceElementSet_alloc(Rec4_Contact, order, reduced_order);          refContactElements=Finley_ReferenceElementSet_alloc(Finley_Rec4_Contact, order, reduced_order);
79    }    }
80    refPoints=Finley_ReferenceElementSet_alloc(Point1, order, reduced_order);    refPoints=Finley_ReferenceElementSet_alloc(Finley_Point1, order, reduced_order);
81        
82    
83    if ( Finley_noError()) {    if ( Finley_noError()) {
# Line 96  Finley_Mesh* Finley_RectangularMesh_Hex8 Line 96  Finley_Mesh* Finley_RectangularMesh_Hex8
96            e_offset0=0;            e_offset0=0;
97            local_NE1=NE1;            local_NE1=NE1;
98            e_offset1=0;            e_offset1=0;
99            Paso_MPIInfo_Split(mpi_info,NE2,&local_NE2,&e_offset2);            Esys_MPIInfo_Split(mpi_info,NE2,&local_NE2,&e_offset2);
100        } else if (N1==MAX3(N0,N1,N2)) {        } else if (N1==MAX3(N0,N1,N2)) {
101            Nstride0=N2;            Nstride0=N2;
102            Nstride1=N0*N2;            Nstride1=N0*N2;
103            Nstride2=1;            Nstride2=1;
104            local_NE0=NE0;            local_NE0=NE0;
105          e_offset0=0;          e_offset0=0;
106          Paso_MPIInfo_Split(mpi_info,NE1,&local_NE1,&e_offset1);          Esys_MPIInfo_Split(mpi_info,NE1,&local_NE1,&e_offset1);
107          local_NE2=NE2;          local_NE2=NE2;
108          e_offset2=0;          e_offset2=0;
109        } else {        } else {
110            Nstride0=N1*N2;            Nstride0=N1*N2;
111            Nstride1=1;            Nstride1=1;
112            Nstride2=N1;            Nstride2=N1;
113            Paso_MPIInfo_Split(mpi_info,NE0,&local_NE0,&e_offset0);            Esys_MPIInfo_Split(mpi_info,NE0,&local_NE0,&e_offset0);
114            local_NE1=NE1;            local_NE1=NE1;
115            e_offset1=0;            e_offset1=0;
116            local_NE2=NE2;            local_NE2=NE2;
# Line 441  Finley_Mesh* Finley_RectangularMesh_Hex8 Line 441  Finley_Mesh* Finley_RectangularMesh_Hex8
441    Finley_ReferenceElementSet_dealloc(refContactElements);    Finley_ReferenceElementSet_dealloc(refContactElements);
442    Finley_ReferenceElementSet_dealloc(refFaceElements);    Finley_ReferenceElementSet_dealloc(refFaceElements);
443    Finley_ReferenceElementSet_dealloc(refElements);    Finley_ReferenceElementSet_dealloc(refElements);
444    Paso_MPIInfo_free( mpi_info );      Esys_MPIInfo_free( mpi_info );  
445    
446    return out;    return out;
447  }  }

Legend:
Removed from v.2881  
changed lines
  Added in v.3259

  ViewVC Help
Powered by ViewVC 1.1.26