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