diff --git a/Solver/TESTCASES/Advection3D.lua b/Solver/TESTCASES/Advection3D.lua
index 149f7fbc4b39d8402f4fcdef0f89c2436d189be9..e7513854a4fb695ccb379cd5b9abccfa4c4dfd5b 100644
--- a/Solver/TESTCASES/Advection3D.lua
+++ b/Solver/TESTCASES/Advection3D.lua
@@ -1,9 +1,22 @@
+
 model = GModel  ()
 model:load ('box.geo')
 model:load ('box.msh')
 dg = dgSystemOfEquations (model)
 dg:setOrder(1)
 
+-- initial condition
+function initial_condition( xyz , f )
+  for i=0,xyz:size1()-1 do
+    x = xyz:get(i,0)
+    y = xyz:get(i,1)
+    z = xyz:get(i,2)
+    --f:set (i, 0, math.exp(-100*((x-0.5)^2)))
+    --f:set (i, 0, x )
+    f:set (i, 0, math.sqrt((x-0.3)*(x-0.3)+(y-0.3)*(y-0.3)+z*z)-0.2)	
+    --f:set(i, 0, math.exp((x-.3)*(x-.3)+(y-.3)*(y-.3)+z*z)-.2))
+  end
+end
 
 -- conservation law
 -- advection speed
@@ -11,41 +24,27 @@ v=fullMatrix(3,1);
 v:set(0,0,0.15)
 v:set(1,0,0)
 v:set(2,0,0)
--- diffusivity
-nu=fullMatrix(1,1);
-nu:set(0,0,0.001)
 
---law = ConservationLawAdvection(functionConstant(v):getName(),functionConstant(nu):getName())
---law = ConservationLawAdvection('',functionConstant(nu):getName())
 law = dgConservationLawAdvection(functionConstant(v):getName(),'')
-
 dg:setConservationLaw(law)
 
 -- boundary condition
 outside=fullMatrix(1,1)
-outside:set(0,0,1)
-bndcondition=law:newOutsideValueBoundary(functionConstant(outside):getName())
---[[law:addBoundaryCondition('Left',bndcondition)
-law:addBoundaryCondition('Right',bndcondition)
---]]
+outside:set(0,0,0.15)
+--freestreem=law:newOutsideValueBoundary(functionConstant(outside):getName())
+freestream=law:newOutsideValueBoundary(functionLua(1,'initial_condition',{'XYZ'}):getName())
 
-dg:setup()
+law:addBoundaryCondition('wall',law:new0FluxBoundary())
+law:addBoundaryCondition('inlet',freestream)
+law:addBoundaryCondition('outlet',law:newSymmetryBoundary())
+law:addBoundaryCondition('symmetry',law:newSymmetryBoundary())
 
--- initial condition
-function initial_condition( xyz , f )
-  for i=0,xyz:size1()-1 do
-    x = xyz:get(i,0)
-    --y = xyz:get(i,1)
-    --z = xyz:get(i,2)
-    --f:set (i, 0, math.exp(-100*((x-0.5)^2)))
-    f:set (i, 0, x )
-  end
-end
--- dg:L2Projection(functionLua(1,'initial_condition',{'XYZ'}):getName())
+dg:setup()
 
-law:addBoundaryCondition('boundary',law:new0FluxBoundary())
+dg:L2Projection(functionLua(1,'initial_condition',{'XYZ'}):getName())
+dg:exportSolution('output/Adv3D-00000')
 
-dg:exportSolution('output/Adv3D_00000')
+print'***exporting init solution ***'
 
 -- main loop
 n = 5