Home / 170801
Name Modified Size InfoDownloads / Week
Parent folder
single 2018-03-19
layers 2018-03-19
gaussquad 2018-03-19
README 2018-03-20 2.7 kB
zbes.c 2018-03-19 4.0 kB
zbes.h 2018-03-19 2.5 kB
zgesv.h 2018-03-19 1.4 kB
zgmres.c 2018-03-19 10.3 kB
zgmres.h 2018-03-19 1.5 kB
telles.c 2018-03-19 4.1 kB
telles.h 2018-03-19 1.4 kB
timer.c 2018-03-19 1.4 kB
timer.h 2018-03-19 1.2 kB
pisohelm2d.c 2018-03-19 70.1 kB
pisohelm2d.h 2018-03-19 5.6 kB
shapeopt.c 2018-03-19 51.1 kB
shapeopt.h 2018-03-19 4.7 kB
openboundary.h 2018-03-19 1.2 kB
opts.h 2018-03-19 5.0 kB
periodicgreen.c 2018-03-19 40.7 kB
periodicgreen.h 2018-03-19 13.7 kB
mathmacros.h 2018-03-19 2.2 kB
openboundary.c 2018-03-19 1.2 kB
main.c 2018-03-19 5.4 kB
Makefile 2018-03-19 2.0 kB
intde2.c 2018-03-19 22.1 kB
intde2.h 2018-03-19 1.5 kB
internalpoint.c 2018-03-19 3.8 kB
internalpoint.h 2018-03-19 1.8 kB
gaussquad.c 2018-03-19 1.2 kB
gaussquad.h 2018-03-19 1.2 kB
gaussexpxx.c 2018-03-19 3.8 kB
gaussexpxx.h 2018-03-19 1.1 kB
gausslog.c 2018-03-19 9.8 kB
gausslog.h 2018-03-19 1.1 kB
gaussone.c 2018-03-19 36.3 kB
gaussone.h 2018-03-19 1.2 kB
envs.h 2018-03-19 1.2 kB
dgels.h 2018-03-19 1.2 kB
dgesv.h 2018-03-19 1.1 kB
double2.c 2018-03-19 1.5 kB
double2.h 2018-03-19 1.3 kB
elapsed.c 2018-03-19 1.6 kB
elapsed.h 2018-03-19 920 Bytes
dcomplex.h 2018-03-19 825 Bytes
debugmacros.h 2018-03-19 1.8 kB
bessel.c 2018-03-19 3.2 kB
bessel.h 2018-03-19 1.8 kB
bspline.c 2018-03-19 4.3 kB
bspline.h 2018-03-19 1.4 kB
clampedcurve.c 2018-03-19 20.8 kB
clampedcurve.h 2018-03-19 7.9 kB
Totals: 52 Items   369.1 kB 0
 ___      _               ___           _   
|_ _|__ _| |__  ___ _ __ / __| ___ _ __| |_ 
 | |/ _` | '_ \/ -_) '  \\__ \/ _ \ '_ \  _|
|___\__, |_.__/\___|_|_|_|___/\___/ .__/\__|
    |___/                         |_|       

Minimal document of IgbemSopt

A framework of shape optimization based on the IGBEM for
singly-periodic layered media.

===========================
Summary
===========================

This is an implementation of shape optimisation solver based on the
isogeometric boundary element method (IGBEM). The theoretical
background is described in a paper entitled with "A framework of shape
optimisation based on the isogeometric boundary element method toward
designing thin-silicon phtovoltaic devices" submitted to the journal
"Engineering with Computers".

===========================
Prerequisites
===========================

IgbemSopt requires the following libraries:

* BLAS & LAPACK
* SLATEC
* Ipopt
* GNU Scientific library (optional)

===========================
Build
===========================

To build the executable program ("a.out" by default), you have to
modify the Makefile. Especially, you have to specify the above
libraries through the variables BLAS_LIB, LAPACK_LIB, SLATEC_LIB,
IPOPT_{LIB,INCLUDE}.

If you trace the numerical example of "demonstration", which is shown
in Section 4 of the paper, you need to choose the following two
parameters:

* METHOD = LU  # not GMRES
* OPTIMIZATION = OPTIMIZATION # not DUMMY

After modifying the Makefile, you can obtain the executable file by 

% make clean
% make

===========================
Run
===========================

You have to provide the following input files:

* .dat file: Define the geometry and discretisation information.
* .cnd file: Define the parameters for the BEM and shape optimisation.
* .in file: Define the internal points where the magnetic field is
  computed by the BEM.

You can see the formats of these files in the file single/go.sh. If
you want to trace the demonstration in the paper, you do not have to
modify the single/go.sh but may run it as follows:

% cd single
% ./go.sh

Then, three input files (viz., demo.dat, demo.cnd, demo.in) are
automaticall created and the executable file runs. You can watch the
history of the Ipopt by

% tail -f demo.res

On the other hand, the log of the IGBEM can be obtained by

% tail -f demo.log

===========================
Post processing
===========================

To draw the history of the objective function, the optimal shape, and
the magnetic field, you may run the three scripts as follows:

./plot-history.sh
./plot-boundary.sh
./plot-uin.sh

where the related data are stored in "single/work" by default.

- --
Copyright (C) 2017 Toru Takahashi
Source: README, updated 2018-03-20