/[escript]/trunk/paso/src/SolverFCT.h
ViewVC logotype

Diff of /trunk/paso/src/SolverFCT.h

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

revision 1406 by gross, Fri Jan 25 04:31:18 2008 UTC revision 1407 by gross, Mon Feb 4 06:45:48 2008 UTC
# Line 19  Line 19 
19  typedef struct Paso_FCTransportProblem {  typedef struct Paso_FCTransportProblem {
20    
21      double theta;      double theta;
     double dt;  
22      double dt_max;      double dt_max;
23      bool_t valid_matrices;      bool_t valid_matrices;
24    
25        Paso_SystemMatrix * transport_matrix;
26        Paso_SystemMatrix * mass_matrix;
27    
28      double* u;      double* u;
29        double u_min;
30    
31      Paso_SystemMatrix * transport_matrix;      /* x */
32      Paso_SystemMatrix * flux_matrix;      index_t *main_iptr;
33        Paso_SystemMatrix * iteration_matrix;
34        double* main_diagonal_low_order_transport_matrix;
35      double* lumped_mass_matrix;      double* lumped_mass_matrix;
     double* row_sum_flux_matrix;  
     double* transport_matrix_diagonal;  
     double* r_p;  
     double* r_n;  
36    
     index_t *main_iptr;  
       
37      Paso_MPIInfo *mpi_info;      Paso_MPIInfo *mpi_info;
38      dim_t reference_counter;      dim_t reference_counter;
39    
40  } Paso_FCTransportProblem;  } Paso_FCTransportProblem;
41    
 void Paso_FCTransportProblem_free(Paso_FCTransportProblem* in);  
42  Paso_FCTransportProblem* Paso_FCTransportProblem_getReference(Paso_FCTransportProblem* in);  Paso_FCTransportProblem* Paso_FCTransportProblem_getReference(Paso_FCTransportProblem* in);
43    Paso_FCTransportProblem* Paso_FCTransportProblem_alloc(double theta, Paso_SystemMatrixPattern *pattern, int block_size);
44    double Paso_FCTransportProblem_getSafeTimeStepSize(Paso_FCTransportProblem* in);
45    void Paso_FCTransportProblem_setLowOrderOperator(Paso_FCTransportProblem * fc);
46  Paso_SystemMatrix* Paso_FCTransportProblem_borrowTransportMatrix(Paso_FCTransportProblem* in);  Paso_SystemMatrix* Paso_FCTransportProblem_borrowTransportMatrix(Paso_FCTransportProblem* in);
47  Paso_SystemMatrix* Paso_FCTransportProblem_borrowFluxMatrix(Paso_FCTransportProblem* in);  Paso_SystemMatrix* Paso_FCTransportProblem_borrowMassMatrix(Paso_FCTransportProblem* in);
48  double* Paso_FCTransportProblem_borrowLumpedMassMatrix(Paso_FCTransportProblem* in);  double* Paso_FCTransportProblem_borrowLumpedMassMatrix(Paso_FCTransportProblem* in);
49  dim_t Paso_FCTransportProblem_getTotalNumRows(Paso_FCTransportProblem* in);  dim_t Paso_FCTransportProblem_getTotalNumRows(Paso_FCTransportProblem* in);
50  Paso_FCTransportProblem* Paso_FCTransportProblem_alloc(double theta, double dt_max, Paso_SystemMatrixPattern *pattern, int block_size);  void Paso_FCTransportProblem_free(Paso_FCTransportProblem* in);
 void Paso_FCTransportProblem_setAntiDiffusiveFlux(Paso_FCTransportProblem * fc, double * u, double *u_remote, double* fa);  
 void Paso_FCTransportProblem_addAdvectivePart(Paso_FCTransportProblem * fc, double alpha);  
51  void Paso_SolverFCT_solve(Paso_FCTransportProblem* fctp, double* u, double dt, double* source, Paso_Options* options);  void Paso_SolverFCT_solve(Paso_FCTransportProblem* fctp, double* u, double dt, double* source, Paso_Options* options);
52  void Paso_FCTransportProblem_checkinSolution(Paso_FCTransportProblem* in, double* u) ;  void Paso_FCTransportProblem_checkinSolution(Paso_FCTransportProblem* in, double* u);
53  void Paso_FCTransportProblem_setFlux(Paso_FCTransportProblem * fc, double * u, double* fa);  void Paso_FCTransportProblem_applyPreAntiDiffusionCorrection(Paso_SystemMatrix *f,const double* u);
54    void Paso_SolverFCT_setMuPaLuPbQ(double* out,const double* M, const  double* u,const  double a, Paso_SystemMatrix *L, const  double b,const double* Q);
55    void Paso_SolverFCT_setQs(const double* u,double* QN, double* QP, Paso_SystemMatrix *L);
56    void Paso_FCTransportProblem_updateAntiDiffusionFlux(const Paso_FCTransportProblem * fc, Paso_SystemMatrix *flux_matrix,const double a, const double b, const double* u);
57    void Paso_FCTransportProblem_setRs(const Paso_SystemMatrix *f,const double* lumped_mass_matrix,const double* QN,const double* QP,double* RN,double* RP);
58    void Paso_FCTransportProblem_addCorrectedFluxes(double* f,Paso_SystemMatrix *flux_matrix,const double* RN,const double* RP);
59    
60  #endif /* #ifndef INC_SOLVERFCT */  #endif /* #ifndef INC_SOLVERFCT */

Legend:
Removed from v.1406  
changed lines
  Added in v.1407

  ViewVC Help
Powered by ViewVC 1.1.26