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

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

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

revision 616 by elspeth, Wed Mar 22 02:46:56 2006 UTC revision 751 by bcumming, Mon Jun 26 01:46:34 2006 UTC
# Line 70  void Assemble_getAssembleParameters(Finl Line 70  void Assemble_getAssembleParameters(Finl
70    parm->referenceElement_col=elements->ReferenceElement;    parm->referenceElement_col=elements->ReferenceElement;
71    /* get the information for the labeling of the degrees of freedom */    /* get the information for the labeling of the degrees of freedom */
72    if (S!=NULL) {    if (S!=NULL) {
73    #ifndef PASO_MPI
74        if (S->num_rows*S->row_block_size==parm->numEqu*nodes->numDegreesOfFreedom) {        if (S->num_rows*S->row_block_size==parm->numEqu*nodes->numDegreesOfFreedom) {
75    #else
76          if (S->num_rows*S->row_block_size==parm->numEqu*nodes->degreeOfFreedomDistribution->numLocal) {
77               parm->degreeOfFreedomUpperBound = nodes->degreeOfFreedomDistribution->numLocal;
78    #endif
79             parm->label_row=nodes->degreeOfFreedom;             parm->label_row=nodes->degreeOfFreedom;
80             parm->row_node=&(parm->id[0]);             parm->row_node=&(parm->id[0]);
81             parm->referenceElement_row=elements->ReferenceElement;             parm->referenceElement_row=elements->ReferenceElement;
82        } else if (S->num_rows*S->row_block_size==parm->numEqu*nodes->reducedNumDegreesOfFreedom) {        }
83    #ifndef PASO_MPI
84          else if (S->num_rows*S->row_block_size==parm->numEqu*nodes->reducedNumDegreesOfFreedom) {
85    #else
86          else if (S->num_rows*S->row_block_size==parm->numEqu*nodes->reducedDegreeOfFreedomDistribution->numLocal) {
87               parm->degreeOfFreedomUpperBound = nodes->reducedDegreeOfFreedomDistribution->numLocal;
88    #endif
89             parm->label_row=nodes->reducedDegreeOfFreedom;             parm->label_row=nodes->reducedDegreeOfFreedom;
90             parm->row_node=parm->referenceElement->Type->linearNodes;             parm->row_node=parm->referenceElement->Type->linearNodes;
91             parm->referenceElement_row=elements->LinearReferenceElement;             parm->referenceElement_row=elements->LinearReferenceElement;
# Line 82  void Assemble_getAssembleParameters(Finl Line 93  void Assemble_getAssembleParameters(Finl
93             Finley_setError(TYPE_ERROR,"__FILE__: number of rows in matrix does not match the number of degrees of freedom in mesh");             Finley_setError(TYPE_ERROR,"__FILE__: number of rows in matrix does not match the number of degrees of freedom in mesh");
94             return;             return;
95        }        }
96    #ifndef PASO_MPI      
97        if (S->num_cols*S->col_block_size==parm->numComp*nodes->numDegreesOfFreedom) {        if (S->num_cols*S->col_block_size==parm->numComp*nodes->numDegreesOfFreedom) {
98    #else
99          if (S->num_cols*S->col_block_size==parm->numComp*nodes->degreeOfFreedomDistribution->numLocal) {
100               parm->degreeOfFreedomUpperBound = nodes->degreeOfFreedomDistribution->numLocal;
101    #endif
102             parm->label_col=nodes->degreeOfFreedom;             parm->label_col=nodes->degreeOfFreedom;
103             parm->col_node=&(parm->id[0]);             parm->col_node=&(parm->id[0]);
104             parm->referenceElement_col=elements->ReferenceElement;             parm->referenceElement_col=elements->ReferenceElement;
105        } else if (S->num_cols*S->col_block_size==parm->numComp*nodes->reducedNumDegreesOfFreedom) {        }
106    #ifndef PASO_MPI
107          else if (S->num_cols*S->col_block_size==parm->numComp*nodes->reducedNumDegreesOfFreedom) {
108    #else
109          else if (S->num_cols*S->col_block_size==parm->numComp*nodes->reducedDegreeOfFreedomDistribution->numLocal) {
110               parm->degreeOfFreedomUpperBound = nodes->reducedDegreeOfFreedomDistribution->numLocal;
111    #endif
112             parm->label_col=nodes->reducedDegreeOfFreedom;             parm->label_col=nodes->reducedDegreeOfFreedom;
113             parm->col_node=parm->referenceElement->Type->linearNodes;             parm->col_node=parm->referenceElement->Type->linearNodes;
114             parm->referenceElement_col=elements->LinearReferenceElement;             parm->referenceElement_col=elements->LinearReferenceElement;
# Line 96  void Assemble_getAssembleParameters(Finl Line 118  void Assemble_getAssembleParameters(Finl
118        }        }
119    }    }
120    if (!isEmpty(F)) {    if (!isEmpty(F)) {
121    #ifndef PASO_MPI
122        if (numSamplesEqual(F,1,nodes->numDegreesOfFreedom)) {        if (numSamplesEqual(F,1,nodes->numDegreesOfFreedom)) {
123    #else
124          if (numSamplesEqual(F,1,nodes->degreeOfFreedomDistribution->numLocal)) {
125               parm->degreeOfFreedomUpperBound = nodes->degreeOfFreedomDistribution->numLocal;
126    #endif
127             parm->row_node=&(parm->id[0]);             parm->row_node=&(parm->id[0]);
128             parm->label_row=nodes->degreeOfFreedom;             parm->label_row=nodes->degreeOfFreedom;
129             parm->referenceElement_row=elements->ReferenceElement;             parm->referenceElement_row=elements->ReferenceElement;
130        } else if (numSamplesEqual(F,1,nodes->reducedNumDegreesOfFreedom)) {        }
131    #ifndef PASO_MPI
132          else if (numSamplesEqual(F,1,nodes->reducedNumDegreesOfFreedom)) {
133    #else
134          else if (numSamplesEqual(F,1,nodes->reducedDegreeOfFreedomDistribution->numLocal)) {
135               parm->degreeOfFreedomUpperBound = nodes->reducedDegreeOfFreedomDistribution->numLocal;
136    #endif
137             parm->label_row=nodes->reducedDegreeOfFreedom;             parm->label_row=nodes->reducedDegreeOfFreedom;
138             parm->row_node=parm->referenceElement->Type->linearNodes;             parm->row_node=parm->referenceElement->Type->linearNodes;
139             parm->referenceElement_row=elements->LinearReferenceElement;             parm->referenceElement_row=elements->LinearReferenceElement;
# Line 115  void Assemble_getAssembleParameters(Finl Line 148  void Assemble_getAssembleParameters(Finl
148        }        }
149    }    }
150    if (parm->referenceElement_row!=parm->referenceElement_col) {    if (parm->referenceElement_row!=parm->referenceElement_col) {
151        Finley_setError(TYPE_ERROR,"__FILE__: assemblage cannot handel different shape functions for rows and columns (yet).");        Finley_setError(TYPE_ERROR,"__FILE__: assemblage cannot handle different shape functions for rows and columns (yet).");
152        return;        return;
153    }    }
154    parm->NN_row=parm->referenceElement_row->Type->numNodes;    parm->NN_row=parm->referenceElement_row->Type->numNodes;

Legend:
Removed from v.616  
changed lines
  Added in v.751

  ViewVC Help
Powered by ViewVC 1.1.26