Nodal, Modal, or quadrature-free? This is a question.

According to my knowledge so far, Discontinuous Galerkin Method can be applied under three themes. They are nodal based, modal based, and simply quadrature-free (doesn’t matter to classify it nodal or modal, since it does not require quadrature points).

Nodal based DG method is to approximate wave field (as well as medium properties) using Lagrange polynomials. The coefficient of the polynomial basis is the values of the wavefield at the given point. Usually Gauss-Lobatto-Legendre (GLL) points are used, since they can both used as interpolation points and quadrature points. In addition, Lebesgue constant is minimum at those points, or equivalently the Vandermonde matrix determinant is maximum. In 1D GLL points are also minimum potential electrostatic points, Fekete points. In 2D and up, nodal points are not easy to seek for simplex region (excluding quadrilateral, hexahedral regions). Most of the time the extended GLL points in multi-dimension are used as interpolation points as well as quadrature points same as 1D case. Nodal based DG is challenged in handling curve-linear elements.

On the other side, modal based DG is ready to allow for curve-sided elements and non-constant medium property. In addition, the polynomial basis order P and the quadrature order Q are adaptive to local elements. However, the computation demand is higher than nodal based DG.

I think (by Aug 23 2010), quadrature free DG is somewhere between nodal and modal based DG by restricting in straight-sided elements. Here are my reasons: (1) medium values within an element can be approximated by polynomial bases, so it allows for heterogeneous models. (2) based on this approximation,  the numerical integral can thus be evaluated exactly beforehand and stored for later computation. It is equivalent to the numerical integrals in nodal and modal based DG. (3) the computation demands is not as high as modal DG, of course after scarifying the flexibility of curve-sided elements. But the local adaptivity can be implemented by choosing different degree of material polynomial order.

So now how important to have curve-sided elements in all modeling problems? Unclear so case by case. But tt is always good to double check the improvement after using curve-sided elements.

How many balls I am handling

I was recently asked how many projects I am dealing with. Well, good question. First response, A lot! Second thought, not really. I am interested in a lot of projects and solving some ambitious seismic problems. For example, high performance travel time tomography based on fast sweeping method and adjoint-state technology is now reaching a plateau: joint reflection and transmission tomography was implemented for 2D and 3D and has been test on a field 2D data sets. How can this be further improved? Idea 1, extend it to triangles so that complex topography can be handled more accurately. Idea 2, incorporate it into gOcad as a script on triangulated surfaces or volumes, so that geoscientists  do not need to export their geomodels just to perform tomography. Both ideas are ambitious and not practical to my current schedule.

For further improvement, what about “tomography beyond travel time”? That requires to solve wave equations. I chose Discontinuous Galerkin Method (DGM).  So here comes my idea 3: waveform tomography based on adjoint-state technology and DGM. The potential of DGM to seismic wave equation has been show cased by Dumbser (2007). Further improvement can be made to DGM to allow for curved-sided element and element-wise heterogeneous medium. That means one has to use some quadrature rule for the integration, etc.

The above ideas are mostly for personal interests. To alongside with some research portfolio, AVO analysis and pre-stack seismic data inversion on 2D seismic data from Gas hydrate bearing sediment seems more practical, less risky, and turning around time is short. Therefore this is THE project I am handling. I just need to start it.

In short, how many projects I am handling? One, but 3 interesting, risky and ambitious ideas. These are all the eggs in my basket. Are you a risk mitigation expert? How can I do it better. I own you beer and so much more…:)

by Junwei on via train

Open Junweblog on Via Train

Isn’t that cool to run your own blog site and your own person website on your own PC? To experts, it may be a piece of cake. To me,  it is not. In case I forgot how I got here. I record what I did in my first blog.

Step 1
: know your settings. This is for running WordPress on Window XP 64 bit. Install 64bit versions of Apache, PHP and MySQL on Windows 64bit. Check this link for details. Here is a copy.

“Install 64bit versions of Apache, PHP and MySQL on Windows 64bit
Friday, 12 September 2008

Currently no official 64bit versions of Apache and PHP exists for Microsoft Windows. Only MySQL supports officialy 64bit Windows. If you have a 64bit version of Windows (2003/XP/Vista) and want to keep your system pure 64bit here is the solution! In this guide I will show you how to install and set up Apache 2.2 x64 web server, PHP 5.2 x64 and MySQL 5.0/5.1 x64 on Windows 2003/XP/Vista 64bit using unofficial binaries. Althought this setup has been tested successfully on Windows Vista 64bit Home Premium, I am not responsible for any damages may occur to your computer by this guide. Proceed at your own risk.
Download needed software

Download unofficial binaries for Apache x64 from
Current version (November 2008):

Download PHP x64 from
Current version (September 2008): 5.2.5

Download latest official MySQL 64bit binaries for Windows:
Install Apache 64bit

Create a folder inside your C drive and named it something like apache64. Unzip the contents of the Apache zip package you previously downloaded to folder: C:/apache64.
Edit Apache configuration file C:/apache64/conf/httpd.conf and change paths to match your system.

ServerRoot “C:/apache64”
ServerName localhost:80
DocumentRoot “C:/apache64/htdocs”
<Directory “C:/apache64/htdocs”>
DirectoryIndex index.html index.htm index.php
ScriptAlias /cgi-bin/ “C:/apache64/cgi-bin/”

If you want to set up virtual hosts uncomment (remove the “#” symbol) the line bellow and edit the hosts.conf file respectively. Setting up virtual hosts on Windows.
#Include conf/extra/httpd-vhosts.conf

Uncomment the following line to load extension mod_rewite needed by Elxis SEO PRO. Also uncomment any other lines you wish to load the corresponding Apache extensions.
LoadModule rewrite_module modules/

Open the Windows command prompt (Start -> Run/Search -> cmd) and navigate to folder C:/apache64 (CD C:apache64). Execute the following commands:

binhttpd.exe -k install
binhttpd.exe -k start

Your Apache should work. Open bin folder and double click the ApacheMonitor.exe file. An icon will be displayed in your Windows taskbar. From there you can start/stop/restart Apache easily. We set the Document root to C:/apache64/htdocs, so this is the folder where you should put your web files (Elxis CMS for example). Open your browser and go to to ensure Apache runs.
Install PHP 64bit

Create a folder inside your C drive and named it “php”. Unzip the contents of the PHP zip package you previously downloaded and copy the contents of the “php-5.2.5 (x64)” (or what ever version you downloaded) to folder: C:/php. We will install PHP as an Apache module. Open your Apache configuration file (C:/apache64/conf/httpd.conf) to tell apache to load the PHP module. Under the existing LoadModule directives add the following:
LoadModule php5_module “C:/php/php5apache2_2.dll”
AddType application/x-httpd-php .php

Also add these lines to tell Apache where PHP is located:
# configure the path to php.ini
PHPIniDir “C:/php”

Copy the following files to your Widnows system folder (C:/Windows/system32):

Copy php.ini-dist to the same folder and rename it as php.ini. Open this file to edit PHP configuration parameters.
extension_dir = “C:/php/ext/”
allow_url_fopen = Off
Load at least the following PHP extesnions by removing the “#” symbol in front of each line:
extension=php_oci8.dll (if you have Oracle database installed)
extension=php_pgsql.dll (if you have postgre database installed)

Set sendmail from e-mail address:
sendmail_from =

Some settings for MySQL:
mysql.default_port = 3306
mysql.default_host = localhost

Set the session save path to a writable (by anyone) folder in your computer. You can set this to any existing path you wish (For example C:/tmp).
session.save_path = “C:/tmp”

Restart Apache to test if your PHP is working properly.
Install MySQL 64bit

This is the easiest part of the overall procedure as we have downloaded an official 64bit msi package from MySQL. Just double click it to run the installer. Install MySQL as a service.

Nikos Timiopoulos reported us on February 14, 2009, that he had problems get connected to phpmyadmin. The solution for him was to copy libmysql.dll in C:/Windows/ directory. An alternative, and much more reccommended solution, is to use MySQL GUI tools (Query browser and Administrator).

Unless I forgotten something 🙂 your system is ready. You have a pure 64bit WAMP system, congratulations! You can now copy Elxis at C:/apache64/htdocs and run the Elxis installation wizard. If you wish to set up virtual hosts follow this guide: Setting up virtual hosts on Windows.

Written by Ioannis Sannos (datahell),
September 12, 2008″

Step 2:
download wordpress.

Step 3: Observe your PHP installation error: “Your PHP installation appears to be missing the MySQL extension which is required by WordPress.”. Check this link to fix it. Here is a copy.

“Your PHP installation appears to be missing the MySQL extension which is required by WordPress

by Cliff 8. January 2009

I was recently setting up WordPress to run locally on my development machine and when I tried to browse to the WordPress homepage locally, I recieved the error:

Your PHP installation appears to be missing the MySQL extension which is required by WordPress.

My configuration:
Windowx XP
Apache 2.2
MySQL 5.1

To correct this issue, I did the following:

1. In the Php.ini file (on my machine this is located at C:Windows):
Set extension_dir = “C:/Program Files/php-5.2.8/ext” (where php is installed on my machine)
2. uncommented (remove 😉
3. Copied libmysql.dll from php dir to system32 (C:WINDOWSsystem32 on my machine)

Hope that helps anyone with a similar issue.

Step 4: Enjoy using wordpress on your own PC.

–Junwei, 3:55pm, Aug 6
Install 64bit versions of Apache, PHP and MySQL on Windows 64bit