!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Solve for an analytical solution of the dating equation ! ! dA/dt + u.grad(A) = 1 ! ! In 1D + steady ! ! u dA/dx = 1 => solution of the form A = ln(K v) with u = v/v' ! ! ! ! v = L^2 + x^2 => u = (L^2 + x^2)/(2x) and A = ln((L^2+x^2)/(L^2+1)) ! ! Exx = 1/2*(1-(L/x)^2) ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Check Keywords Warn Header Mesh DB "." "mesh" End $L = 100.0 $ function Aana(x) \ import L {\ _Aana = ln((L^2+x^2)/(L^2+1.0)) ;\ } $ function Exx(x) \ import L {\ _Exx = 0.5*(1.0-(L/x)^2) ;\ } $ function ux(x) \ import L {\ _ux = (L^2+x^2)/(2.0*x) ;\ } !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Simulation Coordinate System = Cartesian 2D Simulation Type = Steady State Steady State Max Iterations = 1 Steady State Min Iterations = 1 Output Intervals = 10 Post File = "age.vtu" max output level = 4 End !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Body 1 Equation = 1 Material = 1 Body Force = 1 Initial Condition = 1 End Body Force 1 DGAge Source = Real 1.0 End !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Material 1 ! minimum age is zero but should not be needed DGAge Lower Limit = Real 0.0 !Reaction rate is equal to -tr(Eij) for compressible fluid DGAge Gamma = Variable Coordinate 1 Real MATC "-Exx(tx)" End !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Initial Condition 1 DGAge = REal 0.0 Age = Real 0.0 Porous 1 = Variable Coordinate 1 Real MATC "ux(tx)" Porous 2 = Real 0.0 Porous 3 = Real 0.0 AgeAna = Variable Coordinate 1 Real MATC "Aana(tx)" Exx = Variable Coordinate 1 Real MATC "Exx(tx)" End !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Solver 1 Exec solver = Never Equation = String "PorousFlow" Procedure = "ElmerIceSolvers" "PorousSolver" Variable = "Porous" Variable DOFs = 3 Exported Variable 1 = AgeAna Exported Variable 1 DOFs = 1 Exported Variable 2 = Exx Exported Variable 2 DOFs = 1 Optimize Bandwidth = False ! Use p elements Stablization Method = String pBubbles Linear System Solver = "Direct" Nonlinear System Convergence Tolerance = 1.0E-05 Nonlinear System Max Iterations = 50 End Solver 2 Equation = "AdvReact" Exec Solver = "After Timestep" Procedure = File "AdvectionReaction" "AdvectionReactionSolver" ! this is the DG variable, which is not part of the output Variable = -nooutput "DGAge" ! this tells that the solver is run on DG mesh Discontinuous Galerkin = Logical True ! the solver can account for upper and lower limits of the variable ! imposed by formulation of an variational inequality (VI) ! next line switches the VI to be accounted for Limit Solution = Logical True Linear System Solver = Direct ! Variational inequality makes it a non-linear problem Nonlinear System Max Iterations = 40 Nonlinear System Min Iterations = 20 Nonlinear System Convergence Tolerance = 1.0e-06 ! This is the variable that is used to interpolate ! the DG solution to the regular FEM mesh in order ! to get a correct output Exported Variable 1 = Age Exported Variable 1 DOFS = 1 End !Solver 3 ! Exec Solver = After All ! Procedure = File "SaveData" "SaveLine" ! Filename = "results.dat" ! File Append = Logical False !End Solver 3 Exec Solver = After All Equation = SaveScalars Procedure = File "SaveData" "SaveScalars" Filename = "results.dat" Variable 1 = String "Time" Variable 2 = String "Age" Operator 2 = String "max" Variable 3 = String "Age" Operator 3 = String "min" !Variable for comparison !Variable 2 = String "AgeAna" !Operator 2 = String "max" !Variable 3 = String "AgeAna" !Operator 3 = String "min" End !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Equation 1 Active Solvers(3) = Integer 1 2 3 Flow Solution Name = String "Porous" Convection = Computed End !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Boundary Condition 1 Target Boundaries = 4 DGAge = Real 0.0 End Boundary Condition 2 Target Boundaries = 1 Save Line = Logical True End Solver 2 :: Reference Norm = Real 0.34220875 Solver 2 :: Reference Norm Tolerance = Real 1E-06