# Contents of /trunk/paso/src/SolverFCT_solve.c

Revision 1363 - (show annotations)
Mon Dec 17 03:42:03 2007 UTC (11 years, 7 months ago) by gross
File MIME type: text/plain
File size: 1783 byte(s)
```initialization for FCT solver added.
```
 1 /* \$Id:\$ */ 2 3 /******************************************************* 4 * 5 * Copyright 2007 by University of Queensland 6 * 7 * http://esscc.uq.edu.au 8 * Primary Business: Queensland, Australia 9 * Licensed under the Open Software License version 3.0 10 * http://www.opensource.org/licenses/osl-3.0.php 11 * 12 *******************************************************/ 13 14 /**************************************************************/ 15 16 /* Paso: Flux correction transport solver 17 * 18 * solves Mu_t=Du+Ku+q 19 * 20 * where is D is diffusive (not checked) 21 * - D is symmetric 22 * - row sums are equal to zero. 23 * and K is the advective part. 24 * 25 * u(0) >= 0 26 * 27 * intially fctp->transport_matrix defines the diffusive part 28 * but the matrix is updated by the adevctive part + artificial diffusion 29 * 30 */ 31 /**************************************************************/ 32 33 /* Author: l.gross@uq.edu.au */ 34 35 /**************************************************************/ 36 37 #include "Paso.h" 38 #include "Solver.h" 39 #include "SolverFCT.h" 40 #include "escript/blocktimer.h" 41 42 /***********************************************************************************/ 43 44 45 void Paso_SolverFCT_solve(Paso_FCTransportProblem* fctp, double* u, double dt, Paso_Options* options,Paso_Performance* pp) { 46 47 if (dt<=0.) { 48 Paso_setError(TYPE_ERROR,"Paso_SolverFCT_solve: dt must be positive."); 49 } 50 if (! fctp->valid_matrices) { 51 52 /* extract the row sum of the advective part */ 53 Paso_SystemMatrix_rowSum(fctp->flux_matrix,fctp->row_sum_flux_matrix); 54 55 /* add the advective part + artificial diffusion to the diffusive part */ 56 Paso_FCTransportProblem_addAdvectivePart(fctp,1.); 57 58 if (Paso_noError()) fctp->valid_matrices=TRUE; 59 } 60 61 }

 ViewVC Help Powered by ViewVC 1.1.26