Changeset 4967
- Timestamp:
- Jan 23, 2008, 4:24:11 PM (17 years ago)
- Location:
- anuga_core/source/anuga/advection
- Files:
-
- 2 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
anuga_core/source/anuga/advection/advection.py
r4964 r4967 110 110 def compute_fluxes(self): 111 111 112 try: 113 self.compute_fluxes_ext() 114 except: 115 self.compute_fluxes_python() 112 113 self.compute_fluxes_ext() 114 ## try: 115 ## self.compute_fluxes_ext() 116 ## except: 117 ## self.compute_fluxes_python() 116 118 117 119 … … 230 232 from anuga.config import max_timestep 231 233 232 import weave233 from weave import converters234 235 234 N = len(self) 236 235 237 238 timestep = zeros( 1, Float); 239 timestep[0] = float(max_timestep) #FIXME: Get rid of this 236 timestep = max_timestep 240 237 241 238 #Shortcuts … … 260 257 261 258 from advection_ext import compute_fluxes 259 260 261 print 'N = ',N 262 print 'timestep = ',timestep 263 print 'huge_timestep = ',huge_timestep 262 264 263 compute_fluxes(stage_edge,stage_bdry,stage_update, 264 neighbours,neighbour_edges,normals, 265 areas,radii,edgelengths, 266 tri_full_flag, 267 huge_timestep,timestep,v) 265 timestep = compute_fluxes(stage_edge,stage_bdry,stage_update, 266 neighbours,neighbour_edges,normals, 267 areas,radii,edgelengths, 268 tri_full_flag, 269 huge_timestep,max_timestep,v,N) 270 271 print 'timestep out2 =',timestep 268 272 269 273 self.timestep = timestep -
anuga_core/source/anuga/advection/advection_ext.c
r4964 r4967 1 1 #include "math.h" 2 #include "stdio.h" 2 3 3 voidcompute_fluxes(double* stage_edge,4 5 4 double compute_fluxes(double* stage_edge, 5 double* stage_bdry, 6 double* stage_update, 6 7 int* neighbours, 7 8 8 int* neighbour_edges, 9 double* normals, 9 10 double* areas, 10 11 12 int*tri_full_flag,13 double huge_timestep,14 double timestep,15 16 11 double* radii, 12 double* edgelengths, 13 int* tri_full_flag, 14 double huge_timestep, 15 double max_timestep, 16 double* v, 17 int N){ 17 18 //Loop 18 19 … … 23 24 double max_speed; 24 25 double optimal_timestep; 25 int I,M,K; 26 int k,i,j,n,m; 27 26 double timestep; 27 int I,M,K; 28 int k,i,j,n,m; 29 30 timestep = max_timestep; 31 32 printf("N = %i\n",N); 33 printf("timestep = %g\n",timestep); 34 printf("huge_timestep = %g\n",huge_timestep); 35 28 36 29 37 for (k=0; k<N; k++){ … … 82 90 83 91 } 92 93 printf("timestep out = %g\n",timestep); 94 95 return timestep; 84 96 } 85 97 -
anuga_core/source/anuga/advection/advection_ext.pyf
r4964 r4967 3 3 python module advection_ext 4 4 interface 5 subroutine compute_fluxes(stage_edge,stage_bdry,stage_update,neighbours,neighbour_edges,normals,areas,radii,edgelengths,tri_full_flag,huge_timestep,timestep,v,n)5 double precision function compute_fluxes(stage_edge,stage_bdry,stage_update,neighbours,neighbour_edges,normals,areas,radii,edgelengths,tri_full_flag,huge_timestep,max_timestep,v,n) 6 6 intent(c) compute_fluxes 7 7 intent(c) 8 8 9 double precision dimension( 3,n) ::stage_edge10 double precision dimension( 3,n) ::stage_bdry,11 double precision dimension( n) ::stage_update,12 integer dimension(n) :: neighbours,13 integer dimension( n) ::neighbour_edges,14 double precision dimension( 6,n) ::normals15 double precision dimension(n) :: areas16 double precision dimension( n) ::radii17 double precision dimension( 3,n) ::edgelengths18 integer dimension( n) ::tri_full_flag19 double precision ::huge_timestep20 double precision ::timestep9 double precision dimension(*) :: stage_edge 10 double precision dimension(*) :: stage_bdry, 11 double precision dimension(*) :: stage_update, 12 integer dimension(*) :: neighbours, 13 integer dimension(*) :: neighbour_edges, 14 double precision dimension(*) :: normals 15 double precision dimension(*) :: areas 16 double precision dimension(*) :: radii 17 double precision dimension(*) :: edgelengths 18 integer dimension(*) :: tri_full_flag 19 double precision :: huge_timestep 20 double precision :: max_timestep 21 21 double precision dimension(2) :: v 22 integer optional,check(shape(stage_edge,1)==n),depend(stage_edge) :: n=shape(stage_edge,0)22 integer :: n 23 23 24 end subroutinecompute_fluxes24 end function compute_fluxes 25 25 end interface 26 26 end python module … … 28 28 29 29 30 31 void compute_fluxes(double* stage_edge,32 double* stage_bdry,33 double* stage_update,34 int* neighbours,35 int* neighbour_edges,36 double* normals,37 double* areas,38 double* radii,39 double* edgelengths,40 int* tri_full_flag,41 double huge_timestep,42 double timestep,43 double* v,44 int N){
Note: See TracChangeset
for help on using the changeset viewer.