/[escript]/trunk/esys2/finley/src/finleyC/Assemble_interpolate.c
ViewVC logotype

Diff of /trunk/esys2/finley/src/finleyC/Assemble_interpolate.c

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

revision 123 by jgs, Fri Jul 8 04:08:13 2005 UTC revision 150 by jgs, Thu Sep 15 03:44:45 2005 UTC
# Line 1  Line 1 
1  /* $Id$ */  /*
2     ******************************************************************************
3     *                                                                            *
4     *       COPYRIGHT  ACcESS 2003,2004,2005 -  All Rights Reserved              *
5     *                                                                            *
6     * This software is the property of ACcESS. No part of this code              *
7     * may be copied in any form or by any means without the expressed written    *
8     * consent of ACcESS.  Copying, use or modification of this software          *
9     * by any unauthorised person is illegal unless that person has a software    *
10     * license agreement with ACcESS.                                             *
11     *                                                                            *
12     ******************************************************************************
13    */
14    
15  /**************************************************************/  /**************************************************************/
16    
# Line 6  Line 18 
18    
19  /**************************************************************/  /**************************************************************/
20    
21  /*   Copyrights by ACcESS Australia, 2003,2004 */  /*  Author: gross@access.edu.au */
22  /*   author: gross@access.edu.au */  /*  Version: $Id$ */
 /*   Version: $Id$ */  
23    
24  /**************************************************************/  /**************************************************************/
25    
 #include "Common.h"  
 #include "escript/Data/DataC.h"  
 #include "Finley.h"  
26  #include "Assemble.h"  #include "Assemble.h"
 #include "NodeFile.h"  
 #include "ElementFile.h"  
27  #include "Util.h"  #include "Util.h"
28  #ifdef _OPENMP  #ifdef _OPENMP
29  #include <omp.h>  #include <omp.h>
# Line 42  void Finley_Assemble_interpolate(Finley_ Line 48  void Finley_Assemble_interpolate(Finley_
48    dim_t numQuad=elements->ReferenceElement->numQuadNodes;    dim_t numQuad=elements->ReferenceElement->numQuadNodes;
49    index_t id[NN];    index_t id[NN];
50    for (i=0;i<NN;i++) id[i]=i;    for (i=0;i<NN;i++) id[i]=i;
51      Finley_resetError();
52    
53    /* set some parameter */    /* set some parameter */
54    
# Line 67  void Finley_Assemble_interpolate(Finley_ Line 74  void Finley_Assemble_interpolate(Finley_
74         S=elements->LinearReferenceElement->S;         S=elements->LinearReferenceElement->S;
75         numNodes=nodes->reducedNumDegreesOfFreedom;         numNodes=nodes->reducedNumDegreesOfFreedom;
76     } else {     } else {
77         Finley_ErrorCode=TYPE_ERROR;         Finley_setError(TYPE_ERROR,"__FILE__: Cannot interpolate data");
        sprintf(Finley_ErrorMsg,"Cannot interpolate data");  
78    }    }
79    
80    if (getFunctionSpaceType(interpolated_data)==FINLEY_CONTACT_ELEMENTS_2) {    if (getFunctionSpaceType(interpolated_data)==FINLEY_CONTACT_ELEMENTS_2) {
# Line 80  void Finley_Assemble_interpolate(Finley_ Line 86  void Finley_Assemble_interpolate(Finley_
86    /* check the dimensions of interpolated_data and data */    /* check the dimensions of interpolated_data and data */
87    
88    if (! numSamplesEqual(interpolated_data,numQuad,elements->numElements)) {    if (! numSamplesEqual(interpolated_data,numQuad,elements->numElements)) {
89         Finley_ErrorCode=TYPE_ERROR;         Finley_setError(TYPE_ERROR,"__FILE__: illegal number of samples of output Data object");
        sprintf(Finley_ErrorMsg,"illegal number of samples of output Data object");  
90    } else if (! numSamplesEqual(data,1,numNodes)) {    } else if (! numSamplesEqual(data,1,numNodes)) {
91         Finley_ErrorCode=TYPE_ERROR;         Finley_setError(TYPE_ERROR,"__FILE__: illegal number of samples of input Data object");
        sprintf(Finley_ErrorMsg,"illegal number of samples of input Data object");  
92    } else if (numComps!=getDataPointSize(interpolated_data)) {    } else if (numComps!=getDataPointSize(interpolated_data)) {
93         Finley_ErrorCode=TYPE_ERROR;         Finley_setError(TYPE_ERROR,"__FILE__: number of components of input and interpolated Data do not match.");
        sprintf(Finley_ErrorMsg,"number of components of input and interpolated Data do not match.");  
94    }  else if (!isExpanded(interpolated_data)) {    }  else if (!isExpanded(interpolated_data)) {
95         Finley_ErrorCode=TYPE_ERROR;         Finley_setError(TYPE_ERROR,"__FILE__: expanded Data object is expected for output data.");
        sprintf(Finley_ErrorMsg,"expanded Data object is expected for output data.");  
96    }    }
97    
98    /* now we can start */    /* now we can start */
99    
100    if (Finley_ErrorCode==NO_ERROR) {    if (Finley_noError()) {
101         #pragma omp parallel private(local_data)         #pragma omp parallel private(local_data)
102         {         {
103            local_data=NULL;            local_data=NULL;
# Line 148  void Finley_Assemble_interpolate(Finley_ Line 150  void Finley_Assemble_interpolate(Finley_
150  }  }
151  /*  /*
152   * $Log$   * $Log$
153     * Revision 1.6  2005/09/15 03:44:21  jgs
154     * Merge of development branch dev-02 back to main trunk on 2005-09-15
155     *
156     * Revision 1.5.2.1  2005/09/07 06:26:18  gross
157     * the solver from finley are put into the standalone package paso now
158     *
159   * Revision 1.5  2005/07/08 04:07:48  jgs   * Revision 1.5  2005/07/08 04:07:48  jgs
160   * Merge of development branch back to main trunk on 2005-07-08   * Merge of development branch back to main trunk on 2005-07-08
161   *   *

Legend:
Removed from v.123  
changed lines
  Added in v.150

  ViewVC Help
Powered by ViewVC 1.1.26