From 0c9c8e5801a28e66f6836e7919d8a2a16755d832 Mon Sep 17 00:00:00 2001 From: Emilie Marchandise <emilie.marchandise@uclouvain.be> Date: Fri, 25 Dec 2009 09:53:37 +0000 Subject: [PATCH] --- Solver/TESTCASES/Advection3D.lua | 49 ++++++++++++++++---------------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/Solver/TESTCASES/Advection3D.lua b/Solver/TESTCASES/Advection3D.lua index 149f7fbc4b..e7513854a4 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 -- GitLab