This solves a range of problems using the spectral/hp discretisation and is a good starting point for using the library. A number of example session files are included in the solvers/ADRSolver/Examples directory.
To run the solver provide an XML session file defining the problem to solve:
./ADRSolver <session>.xml
A range of solvers are already implemented in the framework:
| Helmholtz | |
| Laplace | |
| MonodomainAlievPanfilov | Phenomological model of canine cardiac electrophysiology. |
| MonodomainFitzHughNagumo | Phenomological model of nerve cell electrophysiology. |
| Poisson | |
| SteadyAdvectionDiffusion | |
| SteadyAdvectionDiffusionReaction | |
| SteadyDiffusion | Alias for Poisson |
| SteadyDiffusionReaction | Alias for Helmholtz |
| UnsteadyAdvection | Unsteady Advection equation. |
| UnsteadyAdvectionDiffusion | |
| UnsteadyDiffusion | |
| UnsteadyInviscidBurger |
As an example, consider the advection equation
on a 2D domain with mixed time-dependent boundary conditions. A corresponding session file is given in solvers/ADRSolver/Examples/Advection.xml. The file consists of three sections:
A number of components of the <CONDITIONS> section are of importance here. First, we set the <PARAMETERS> for our time integration by setting the FinTime, NumSteps and TimeStep values.
<P> FinTime = 0.75 </P>
<P> NumSteps = 500 </P>
<P> TimeStep = FinTime/NumSteps </P>
The frequency of checkpoint files and status updates can be controlled through a further two parameters:
<P> IO_CheckSteps = NumSteps </P>
<P> IO_InfoSteps = 1000 </P>
The final two parameters indicate the advection velocity. Although these are not directly used by the solver, they are embedded in the boundary conditions defined later.
<P> advx = 1 </P>
<P> advy = 1 </P>
The <SOLVERINFO> section allows us to specify the solver, the type of projection (continuous or discontinuous) and the time integration scheme to use.
<SOLVERINFO>
<I PROPERTY="EQTYPE" VALUE="UnsteadyAdvection"/>
<I PROPERTY="Projection" VALUE="Continuous"/>
<I PROPERTY="TimeIntegrationMethod" VALUE="ClassicalRungeKutta4"/>
</SOLVERINFO>
For the advection equation we must specify the advection velocity for the solver. This is done in the <USERDEFINEDEQNS> subsection:
<USERDEFINEDEQNS>
<F LHS="Vx" VALUE="1" />
<F LHS="Vy" VALUE="1" />
</USERDEFINEDEQNS>
Details on how to implement a new module can be found in ADRSolver Framework.
1.7.1