Diffpack SE - Documentation

Welcome to DiffpackSE!




The DiffpackSE (Smart Environment) is made for solving three partial differential equations (PDE) using the Diffpack libraries. It is made for customers with little or no knowledge of Diffpack and C++ programming.

The appearance of the graphical user interface (GUI) is designed to build an intuitive and fast work-flow to solve custom problems.

This version of DiffpackSE can solve the Poisson-, Heat- and Wave-Equation with boundary conditions of Dirichlet, Neumann and Robin type.

For further information of the use of Diffpack and programming with Diffpack, see[1].



For use in any web-browser, enabled JavaScript is required. Also for a correct presentation of the mathematical formulation of the PDEs a MathML support of the web-browser is required.

We recommend for best results and full experience to download and install Mozilla Firefox.

In some cases the "line-thickness" argument is dropped in WebGL. Follow the steps you find here to solve that problem.



On top of the page is a tool-bar, over which the Diffpack use and the functionality of the GUI is controlled.

Reload the page with default settings.

Show a sub-window in which all settings for the Diffpack solver can be set. These are the known settings from the SaveSimRes, LinEqAdmFE and FEM menus (see [1]).

View the generated Diffpack input file in a separate window.

View the generated XML file as input for the Codegen in a separate window.

View the generated C++ source file which will be compiled with Diffpack.

View the generated C++ header file.

Save the generated input file for Diffpack on your local file system.

Save the generated XML file for the Codegen on your local file system.

Save generated source code for Diffpack. This includes the generated CPP and H file, the current grid you are using, the generated input file, a standard "main.cpp" file and for Diffpack compiling required "Makefile" and two "cmake" files.

Save generated results after running the Diffpack compiler. This includes the executed application, the grid file, the input file, a "menutree" file and by running the application seven generated "SIMULATION" files.

Run the Codegen. This will generate the "main.cpp" and the CPP and H file for compiling with Diffpack to solve your problem.

Solve the problem. This will always run the Codegen and, depending on the status of your work, compile the Diffpack code and/or run the generated application with the Diffpack input file.

Terminate the current executing of the Codegen or the Diffpack compiling.

Hide or show all dialogs except the 3D window to jump to a specific dialog or have a overview over all dialogs.

View the version and copyright information.

View this documentation.

Below the tool-bar is a status-bar, which shows the current state of the GUI. It displays if it's busy, an error occurred or if it's ready.



The different dialogs fulfill specific functions. They are sorted by the main function: on the left hand side are the dialogs for the output and on the right hand side for the input. Every dialog except the 3D view can be closed for getting a compact view over all dialogs.

3D View

Shows the working grid and the generated solution. This dialog is not closable but with the left button you can save a screenshot of the 3D view and with the right you can maximize/minimize the dialog.
By left clicking and holding you can rotate the 3D object in every direction. By right clicking and holding you can pull it around. With the mouse wheel you can zoom in or out.
The buttons below are for reseting the view or controlling the time.


Shows more than just the information of the status-bar. All output of called executables and scripts are shown here. Also it gives detailed information if an error occurs. With the little "x" in the left top corner you can clear the log for not loosing the overview.


Choose your equation here. You can solve the Poisson-, Heat- and Wave-Equation.

Discrete Weak Formulation

By switching the equation, the regarding discrete weak formulation will be shown here. This input is only important for the numerical calculation of the solution and must be known. For further information about how to get the weak formulation see [1].

Geometry Definition

Choose here your geometry on which you want to work. You can generate a new grid with a preprocessor command, load your own grid file from your local file system or choose a preset grid. The last option is just for demonstration use.
By confirming your choose with a click on "OK" or "LOAD", the grid will be shown in the 3D view.

Boundary Conditions

Choose here the type of boundary condition for each boundary indicator (see [1]). You can choose between Dirichlet, Neumann and Robin boundary condition. If you choose Robin condition, the value is set by default and the occurring parameter are generated and deleted automatically if you change this condition again.
You can use any mathematical function and parameters in the input. The color at the left boarder will help you identifying the boundary in the 3D view.


By default here is at least one parameter defined, caused by the definition of the equation. You can add a new parameter by clicking on the green plus sign in the left top corner. Delete an existing parameter by clicking the "x" left in the parameter row. For each parameter, except the "time parameter", you can choose if it's a function or a constant. If it's a function you can use any mathematical function or other parameters.
If you want to use the coordinate "x", make sure to identify the direction by using i.e. "x(1)".
The "time parameter" will be generated automatically if the equation requires it. In this case you can set the start and end time and the time step.

Initial Condition

Input your initial condition at time dependent problems. This dialog is only shown in case of Heat- and Wave-Equation. As in the boundaries and the parameters before, you can use any mathematical function or parameter you want. Also in case of Wave-Equation additional information required for the solving are displayed.



Working with DiffpackSE is really simple, just follow this few steps:


Frequently Asked Questions

Display Errors
"I can't see the time-control."

The time-control is only shown if time depending problems are solved.

"I can't see a dialog for the input of the boundary conditions."

This dialog will appear by loading your grid.

"My generated solution is not correct displayed."

Compile again, generate a new grid or reload the page with default settings. This will occurre if WebGL makes mistakes loading your grid or results.

"I have solved the Wave-Equation without any errors. Nevertheless my solution is just one constant color. What is wrong?"

Your grid doesn't fit to your time step. Choose a smaller time step, to see results. Your input for the wave equation makes it instable, so at the first time step the range is just too small to see any results.

"My solution is just white."

Your solution is constant, so the min and max value are identical. That's the reason why your result is just white.

"I have set different Dirichlet boundary conditions. But the corners seem to have the wrong condition."

That is no error. Ever corner has two conditions to fulfill, but can only have one value. So the last boundary condition is chosen and the boundary values seem to be wrong.

"I cannot see the boundary colors after generating a grid."

This is a Firefox specific problem. Type in your address field "about:config", confirm you will be careful and search for the entry "webgl.prefer-native-gl". Set this entry to true and you will see the boundary colors.
If you don't see a color gradient now, then you don't have an other WebGL renderer installed.

Missing Updates
"I have entered new values, but my results are the same as before."

Confirm your new values by clicking anywhere on the page or by pressing enter. After that you can check your new values by viewing the XML or Diffpack input file.

"I have solved a new problem, but I'm still seeing the old results."

Clear your browser cache or adjust your settings for the Internet Explorer.

Compiling Errors
"The Diffpack compiler terminates with error code 2."

Make sure your server user has all rights to use and execute the different shell files and executables. Especially the "simres2json" and "grid2json" executable. Also make sure you have the right path in the two shell scripts in "/work" to your Diffpack installation. Also make sure you have a "Downloads" folder with the same rights.

"The compiling has not finished, but I see no results and the status-bar says 'ready'."

Rerun the Diffpack compiler. Under some circumstances it can happen, that the compiler has not come to an end before updating the status-bar.

Other Questions
"I don't understand which data I will lose if I leave the page."

The GUI will recognize if you have calculated source code or results. If you have forgotten to save these ZIP files, the page will remind you at leaving.

"Clicks on any element on the page have no effect."

You are playing the simulation. This will occurre in repeated work for your browser, so your action will be ignored while he's busy. Repeat your action or stop the animation.

"It seems that the result of my 2D problem changes when I switch the z-axis view."

That's not true. It seems so because of the warp of the 2D result in 3D.

"I can't load my grid, the error message says something about 'wrong boundary indicators'. What's wrong?"

Probably you have used the boundary indicator names to define the boundary on each node. But Diffpack needs the boundary indicator index for each node and not the name. Change that and your grid will be accepted.


Known Errors

Microsoft Internet Explorer

If you are using Internet Explorer, you have to get along without several basic features, because IE is not supporting present-day standards. Those features are:

If you want to use all these features, please download and install Mozilla Firefox.

Also IE is often using old data from the browser cache. Clear your cache before running a new calculation!


Opera has problems to load new grids or results. Clear your cache or reload the page.

Also the color of some elements in the result can change. That's a problem of Operas WebGL.

In the 3D window you have to click twice for dragging the object around.

Google Chrome

Chrome has no MathML support and can not display a color gradient.

Mozilla Firefox

Firefox has sometimes problems with the WebGL renderer. To fix this, please follow the steps here.



For further information about programming with Diffpack see following literature:

[1] Computational Partial Differential Equations, Numerical Methods and Diffpack Programming, Langtangen, Hans P., 2nd ed., 2003, XXVI, 855 p., ISBN 978-3-540-43416-0

© inuTech GmbH