~vcs-imports/escript-finley/trunk

« back to all changes in this revision

Viewing changes to paso/src/Transport.c

  • Committer: jfenwick
  • Date: 2010-10-11 01:48:14 UTC
  • Revision ID: svn-v4:77569008-7704-0410-b7a0-a92fef0b09fd:trunk:3259
Merging dudley and scons updates from branches

Show diffs side-by-side

added added

removed removed

Lines of Context:
38
38
           Paso_SystemMatrix_free(in->transport_matrix);
39
39
           Paso_SystemMatrix_free(in->mass_matrix);
40
40
           Paso_SystemMatrix_free(in->iteration_matrix);
41
 
           Paso_MPIInfo_free(in->mpi_info);
 
41
           Esys_MPIInfo_free(in->mpi_info);
42
42
           Paso_Coupler_free(in->u_coupler);
43
43
           MEMFREE(in->constraint_weights);
44
44
           MEMFREE(in->reactive_matrix);
80
80
     dim_t n,i;
81
81
 
82
82
     out=MEMALLOC(1,Paso_TransportProblem);
83
 
     if (Paso_checkPtr(out)) return NULL;
 
83
     if (Esys_checkPtr(out)) return NULL;
84
84
     out->reference_counter=0;
85
85
     out->useBackwardEuler=useBackwardEuler;
86
86
     out->dt_max=LARGE_POSITIVE_FLOAT;
98
98
     out->mass_matrix=Paso_SystemMatrix_alloc(matrix_type,pattern,block_size,block_size,FALSE);
99
99
     out->iteration_matrix=NULL;
100
100
     out->constraint_weights=NULL;
101
 
     out->mpi_info=Paso_MPIInfo_getReference(pattern->mpi_info);
 
101
     out->mpi_info=Esys_MPIInfo_getReference(pattern->mpi_info);
102
102
 
103
103
     out->lumped_mass_matrix=NULL;
104
104
     out->main_diagonal_low_order_transport_matrix=NULL;
105
105
     out->reactive_matrix=NULL;
106
106
     out->main_diagonal_mass_matrix=NULL;
107
107
 
108
 
     if (Paso_noError()) {
 
108
     if (Esys_noError()) {
109
109
         n=Paso_SystemMatrix_getTotalNumRows(out->transport_matrix);
110
110
         transport_pattern=out->transport_matrix->pattern;
111
111
         out->constraint_weights=MEMALLOC(n,double);
115
115
         out->main_diagonal_low_order_transport_matrix=MEMALLOC(n,double);
116
116
         out->u_coupler=Paso_Coupler_alloc(Paso_TransportProblem_borrowConnector(out),block_size);
117
117
 
118
 
         if ( ! (Paso_checkPtr(out->constraint_weights) || 
119
 
                 Paso_checkPtr(out->reactive_matrix) || Paso_checkPtr(out->main_diagonal_mass_matrix) || 
120
 
                 Paso_checkPtr(out->lumped_mass_matrix) || Paso_checkPtr(out->main_diagonal_low_order_transport_matrix)) && Paso_noError()  ) 
 
118
         if ( ! (Esys_checkPtr(out->constraint_weights) || 
 
119
                 Esys_checkPtr(out->reactive_matrix) || Esys_checkPtr(out->main_diagonal_mass_matrix) || 
 
120
                 Esys_checkPtr(out->lumped_mass_matrix) || Esys_checkPtr(out->main_diagonal_low_order_transport_matrix)) && Esys_noError()  ) 
121
121
         {
122
122
                 #pragma omp parallel for schedule(static) private(i)
123
123
                 for (i = 0; i < n; ++i) {
126
126
                 }
127
127
         }
128
128
  }
129
 
  if (Paso_noError()) {
 
129
  if (Esys_noError()) {
130
130
     out->reference_counter=1;
131
131
     return out;
132
132
  } else {
153
153
   return in->transport_matrix->pattern->col_connector;
154
154
}
155
155
 
156
 
index_t Paso_TransportProblem_getTypeId(const index_t solver,const index_t preconditioner, const index_t package,const  bool_t symmetry, Paso_MPIInfo *mpi_info) 
 
156
index_t Paso_TransportProblem_getTypeId(const index_t solver,const index_t preconditioner, const index_t package,const  bool_t symmetry, Esys_MPIInfo *mpi_info) 
157
157
{
158
158
   return MATRIX_FORMAT_DEFAULT + MATRIX_FORMAT_BLK1;
159
159
}
168
168
   const index_t* main_iptr=Paso_SparseMatrix_borrowMainDiagonalPointer(fctp->mass_matrix->mainBlock);
169
169
   
170
170
   if ( fctp->valid_matrices ) {
171
 
      Paso_setError(VALUE_ERROR, "Paso_TransportProblem_insertConstraint: you must not insert a constraint is a valid system.");
 
171
      Esys_setError(VALUE_ERROR, "Paso_TransportProblem_insertConstraint: you must not insert a constraint is a valid system.");
172
172
      return;
173
173
   }
174
174
   if (factor<=0) {
175
 
      Paso_setError(VALUE_ERROR, "Paso_TransportProblem_insertConstraint: constraint_factor needs to be positive.");
 
175
      Esys_setError(VALUE_ERROR, "Paso_TransportProblem_insertConstraint: constraint_factor needs to be positive.");
176
176
      return;
177
177
   }
178
178