Difference between revisions of "FreeFem++/Example"
From ScientificComputing
(One intermediate revision by the same user not shown) | |||
Line 17: | Line 17: | ||
<math>C = {(x, y)| x = \cos(t)\,, y = \sin(t), 0 \le t \le 2\Pi}</math> | <math>C = {(x, y)| x = \cos(t)\,, y = \sin(t), 0 \le t \le 2\Pi}</math> | ||
− | [leonhard@euler06 ~]$ ls -ltr test.edp | + | [leonhard@euler06 ~]$ '''ls -ltr test.edp''' |
− | -rw-r--r-- 1 | + | -rw-r--r-- 1 leonhard T0000 283 Dec 6 12:56 test.edp |
− | [leonhard@euler06 ~]$ cat test.edp | + | [leonhard@euler06 ~]$ '''cat test.edp''' |
border C(t=0,2*pi){x=cos(t); y=sin(t);} | border C(t=0,2*pi){x=cos(t); y=sin(t);} | ||
mesh Th = buildmesh (C(50)); | mesh Th = buildmesh (C(50)); | ||
Line 27: | Line 27: | ||
real cpu=clock(); | real cpu=clock(); | ||
solve Poisson(u,v,solver=LU) = int2d(Th)(dx(u)*dx(v) + dy(u)*dy(v)) - int2d(Th)( f*v) + on(C,u=0) ; | solve Poisson(u,v,solver=LU) = int2d(Th)(dx(u)*dx(v) + dy(u)*dy(v)) - int2d(Th)( f*v) + on(C,u=0) ; | ||
− | |||
cout << " CPU time = " << clock()-cpu << endl; | cout << " CPU time = " << clock()-cpu << endl; | ||
+ | [leonhard@euler06 ~]$ '''module load new gcc/4.8.2 hdf5/1.8.12 open_mpi/1.6.5 fftw/3.3.3 openblas/0.2.8_seq gsl/1.16 scalapack/2.0.2 freefem/3.34''' | ||
+ | [leonhard@euler06 ~]$ '''bsub -n 1 -W 1:00 -R "rusage[mem=2048]" "FreeFem++ test.edp"''' | ||
+ | Generic job. | ||
+ | Job <33651159> is submitted to queue <normal.4h>. | ||
+ | [leonhard@euler06 ~]$ '''bjobs''' | ||
+ | JOBID USER STAT QUEUE FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME | ||
+ | 33651159 leonhard PEND normal.4h euler06 * test.edp Dec 6 13:17 | ||
+ | [leonhard@euler06 ~]$ '''bjobs''' | ||
+ | JOBID USER STAT QUEUE FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME | ||
+ | 33651159 leonhard RUN normal.4h euler06 e3011 * test.edp Dec 6 13:17 | ||
+ | [leonhard@euler06 ~]$ '''bjobs''' | ||
+ | No unfinished job found | ||
+ | [leonhard@euler06 ~]$ grep -A1 Solve lsf.o33651159 | ||
+ | -- Solve : | ||
+ | min -0.0103244 max 0.0102905 | ||
+ | [leonhard@euler06 ~]$ | ||
+ | |||
+ | You can find the resource usage summary in the LSF log file. |
Latest revision as of 14:03, 6 December 2016
As an example for using FreeFem++, we are going to solve a Poisson equation. For a given function , find a function
satisfying
Here is the boundary of the bounded open set
The following is a FreeFem++ program which computes when
and
is the
unit disk. The boundary
is
[leonhard@euler06 ~]$ ls -ltr test.edp -rw-r--r-- 1 leonhard T0000 283 Dec 6 12:56 test.edp [leonhard@euler06 ~]$ cat test.edp border C(t=0,2*pi){x=cos(t); y=sin(t);} mesh Th = buildmesh (C(50)); fespace Vh(Th,P1); Vh u,v; func f= x*y; real cpu=clock(); solve Poisson(u,v,solver=LU) = int2d(Th)(dx(u)*dx(v) + dy(u)*dy(v)) - int2d(Th)( f*v) + on(C,u=0) ; cout << " CPU time = " << clock()-cpu << endl; [leonhard@euler06 ~]$ module load new gcc/4.8.2 hdf5/1.8.12 open_mpi/1.6.5 fftw/3.3.3 openblas/0.2.8_seq gsl/1.16 scalapack/2.0.2 freefem/3.34 [leonhard@euler06 ~]$ bsub -n 1 -W 1:00 -R "rusage[mem=2048]" "FreeFem++ test.edp" Generic job. Job <33651159> is submitted to queue <normal.4h>. [leonhard@euler06 ~]$ bjobs JOBID USER STAT QUEUE FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME 33651159 leonhard PEND normal.4h euler06 * test.edp Dec 6 13:17 [leonhard@euler06 ~]$ bjobs JOBID USER STAT QUEUE FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME 33651159 leonhard RUN normal.4h euler06 e3011 * test.edp Dec 6 13:17 [leonhard@euler06 ~]$ bjobs No unfinished job found [leonhard@euler06 ~]$ grep -A1 Solve lsf.o33651159 -- Solve : min -0.0103244 max 0.0102905 [leonhard@euler06 ~]$
You can find the resource usage summary in the LSF log file.