This is the femlisp Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sat Mar 15 06:08:55 2025 GMT+0.
femlisp/function
femlisp/mesh
femlisp/problem
femlisp/iteration
femlisp/discretization
femlisp/special-iteration
femlisp/graphic
femlisp/plot
femlisp/strategy
femlisp/applications
femlisp/applications/domains
femlisp/applications/demos
femlisp/applications/cdr
femlisp/applications/elasticity
femlisp/applications/navier-stokes
femlisp/applications/articles
femlisp/applications/books
femlisp/applications/courses
femlisp/applications/talks
femlisp-basic/config
femlisp-basic/basic
femlisp-parallel/parallel
femlisp-matlisp/alien
femlisp-matlisp/matlisp
femlisp-dictionary/dictionary
femlisp/femlisp.asd
femlisp-basic/femlisp-basic.asd
femlisp-parallel/femlisp-parallel.asd
femlisp-matlisp/femlisp-matlisp.asd
femlisp-dictionary/femlisp-dictionary.asd
femlisp/function/function-defp.lisp
femlisp/function/function.lisp
femlisp/function/polynom.lisp
femlisp/function/spline.lisp
femlisp/mesh/mesh-defp.lisp
femlisp/mesh/cell.lisp
femlisp/mesh/skeleton.lisp
femlisp/mesh/identify.lisp
femlisp/mesh/refine.lisp
femlisp/mesh/vertex.lisp
femlisp/mesh/simplex.lisp
femlisp/mesh/product-cell.lisp
femlisp/mesh/skeleton-build.lisp
femlisp/mesh/anisotropic.lisp
femlisp/mesh/rcb.lisp
femlisp/mesh/domain.lisp
femlisp/mesh/mesh.lisp
femlisp/mesh/meshgen.lisp
femlisp/mesh/blending.lisp
femlisp/mesh/triangulate.lisp
femlisp/mesh/triangle.lisp
femlisp/mesh/tetgen.lisp
femlisp/mesh/extend.lisp
femlisp/problem/problem-defp.lisp
femlisp/problem/problem.lisp
femlisp/problem/pde-problem.lisp
femlisp/problem/time.lisp
femlisp/problem/evp.lisp
femlisp/problem/pdef.lisp
femlisp/problem/ellsys.lisp
femlisp/problem/cdr.lisp
femlisp/problem/elasticity.lisp
femlisp/problem/navier-stokes.lisp
femlisp/iteration/iteration-defp.lisp
femlisp/iteration/iterate.lisp
femlisp/iteration/linit.lisp
femlisp/iteration/blockit.lisp
femlisp/iteration/krylow.lisp
femlisp/iteration/solve.lisp
femlisp/iteration/linsolve.lisp
femlisp/iteration/nlsolve.lisp
femlisp/iteration/evpsolve.lisp
femlisp/iteration/multigrid-defp.lisp
femlisp/iteration/multigrid.lisp
femlisp/iteration/amg.lisp
femlisp/iteration/selection-amg.lisp
femlisp/iteration/aggregation-amg.lisp
femlisp/iteration/stueben.lisp
femlisp/discretization/discretization-defp.lisp
femlisp/discretization/discretization.lisp
femlisp/discretization/quadrature.lisp
femlisp/discretization/fe.lisp
femlisp/discretization/ansatz-space.lisp
femlisp/discretization/lagrange.lisp
femlisp/discretization/fetransfer.lisp
femlisp/discretization/sparseas.lisp
femlisp/discretization/sparseif.lisp
femlisp/discretization/feeval.lisp
femlisp/discretization/constraints.lisp
femlisp/discretization/assembly-heap.lisp
femlisp/discretization/fedisc.lisp
femlisp/discretization/system-fe.lisp
femlisp/discretization/ellsys-fe.lisp
femlisp/discretization/elasticity-fe.lisp
femlisp/discretization/navier-stokes-fe.lisp
femlisp/special-iteration/geomg-defp.lisp
femlisp/special-iteration/geoblock.lisp
femlisp/special-iteration/vanka.lisp
femlisp/special-iteration/geomg.lisp
femlisp/graphic/graphics-defp.lisp
femlisp/graphic/graphics.lisp
femlisp/graphic/dx.lisp
femlisp/graphic/vtk.lisp
femlisp/graphic/gnuplot.lisp
femlisp/plot/plot-defp.lisp
femlisp/plot/plot.lisp
femlisp/plot/plot-dx.lisp
femlisp/plot/meshplot.lisp
femlisp/plot/feplot.lisp
femlisp/plot/coeffplot.lisp
femlisp/plot/function-plot.lisp
femlisp/plot/asaplot.lisp
femlisp/plot/plot-gnuplot.lisp
femlisp/plot/plot-vtk.lisp
femlisp/strategy/strategy-defp.lisp
femlisp/strategy/strategy.lisp
femlisp/strategy/strategy-utilities.lisp
femlisp/strategy/error-estimator.lisp
femlisp/strategy/error-indicator.lisp
femlisp/strategy/fe-approximation.lisp
femlisp/strategy/fe-interpolation.lisp
femlisp/strategy/fe-stationary.lisp
femlisp/strategy/fe-evp.lisp
femlisp/strategy/rothe.lisp
femlisp/strategy/rothe-ellsys.lisp
femlisp/strategy/gps.lisp
femlisp/applications/domains/domains-defp.lisp
femlisp/applications/domains/circle-ring-domain.lisp
femlisp/applications/domains/bl-cell.lisp
femlisp/applications/domains/hole-domain.lisp
femlisp/applications/domains/inlay-domain.lisp
femlisp/applications/application-defp.lisp
femlisp/applications/app-utils.lisp
femlisp/applications/demos/application-demos.lisp
femlisp/applications/demos/discretization-demos.lisp
femlisp/applications/demos/multigrid-demos.lisp
femlisp/applications/demos/refinement-demos.lisp
femlisp/applications/demos/problem-demos.lisp
femlisp/applications/cdr/tools.lisp
femlisp/applications/cdr/model-problem.lisp
femlisp/applications/cdr/unstructured.lisp
femlisp/applications/cdr/locref.lisp
femlisp/applications/cdr/hom-cdr.lisp
femlisp/applications/cdr/bl-cdr.lisp
femlisp/applications/cdr/mg-cdr.lisp
femlisp/applications/cdr/amg-cdr.lisp
femlisp/applications/cdr/bratu.lisp
femlisp/applications/cdr/evp-cdr.lisp
femlisp/applications/cdr/heat.lisp
femlisp/applications/cdr/sturm.lisp
femlisp/applications/elasticity/model-problem.lisp
femlisp/applications/elasticity/elahom.lisp
femlisp/applications/elasticity/elahom-performance.lisp
femlisp/applications/navier-stokes/flowapp-defp.lisp
femlisp/applications/navier-stokes/boundary-force.lisp
femlisp/applications/navier-stokes/demo-ns.lisp
femlisp/applications/navier-stokes/driven-cavity.lisp
femlisp/applications/navier-stokes/hom-ns.lisp
femlisp/applications/articles/schaefer-turek-1996.lisp
femlisp/applications/articles/heuveline-rannacher-2003.lisp
femlisp/applications/articles/heisig-neuss-2017.lisp
femlisp/applications/talks/effcoeff.lisp
femlisp/applications/regression-tests.lisp
femlisp/finalize.lisp
femlisp-basic/config/setup.lisp
femlisp-basic/config/femlisp-config.lisp
femlisp-basic/basic/debug.lisp
femlisp-basic/basic/tests.lisp
femlisp-basic/basic/patches.lisp
femlisp-basic/basic/macros.lisp
femlisp-basic/basic/port.lisp
femlisp-basic/basic/utilities-defp.lisp
femlisp-basic/basic/utilities.lisp
femlisp-basic/basic/amop.lisp
femlisp-basic/basic/mflop.lisp
femlisp-basic/basic/general.lisp
femlisp-basic/basic/demo.lisp
femlisp-parallel/parallel/parallel-defp.lisp
femlisp-parallel/parallel/parallel.lisp
femlisp-parallel/parallel/mutex.lisp
femlisp-parallel/parallel/parallel-adaptions.lisp
femlisp-parallel/parallel/multiprocessing.lisp
femlisp-matlisp/alien/alien.lisp
femlisp-matlisp/alien/alienc.lisp
femlisp-matlisp/alien/lapack.lisp
femlisp-matlisp/alien/superlu.lisp
femlisp-matlisp/alien/umfpack.lisp
femlisp-matlisp/matlisp/matlisp-defp.lisp
femlisp-matlisp/matlisp/ctypes.lisp
femlisp-matlisp/matlisp/vector.lisp
femlisp-matlisp/matlisp/vector-methods.lisp
femlisp-matlisp/matlisp/blas-basic.lisp
femlisp-matlisp/matlisp/store-vector.lisp
femlisp-matlisp/matlisp/matrix.lisp
femlisp-matlisp/matlisp/matrix-methods.lisp
femlisp-matlisp/matlisp/number-blas.lisp
femlisp-matlisp/matlisp/array-blas.lisp
femlisp-matlisp/matlisp/standard-matrix.lisp
femlisp-matlisp/matlisp/standard-matrix-blas.lisp
femlisp-matlisp/matlisp/standard-matrix-lr.lisp
femlisp-matlisp/matlisp/compat.lisp
femlisp-matlisp/matlisp/call-matlisp.lisp
femlisp-matlisp/matlisp/tensor.lisp
femlisp-matlisp/matlisp/sparse-tensor.lisp
femlisp-matlisp/matlisp/compressed.lisp
femlisp-matlisp/matlisp/ggev.lisp
femlisp-matlisp/matlisp/hegv.lisp
femlisp-matlisp/matlisp/sparse-vector.lisp
femlisp-matlisp/matlisp/sparse-matrix.lisp
femlisp-matlisp/matlisp/sparselu.lisp
femlisp-dictionary/dictionary/dictionary-defp.lisp
femlisp-dictionary/dictionary/relations.lisp
femlisp-dictionary/dictionary/dictionary.lisp
femlisp-dictionary/dictionary/pool.lisp
femlisp-dictionary/dictionary/parallel-heap.lisp
fl.domains
fl.dictionary
fl.flow-application
fl.navier-stokes
fl.graphic
fl.demo
fl.amop
fl.cdr
fl.elasticity-fe
fl.multigrid
fl.iteration
fl.mesh
fl.utilities
fl.geomg
fl.konwihr
fl.problem
fl.macros
fl.strategy
fl.navier-stokes-fe
fl.parallel
fl.schaefer-turek
fl.lapack
fl.application
fl.debug
fl.elasticity
fl.alien
fl.function
fl.tests
fl.matlisp
fl.ellsys-fe
fl.plot
net.scipolis.relations
fl.alienc
fl.start
fl.discretization
fl.port
fl.ellsys
fl.patches
The main system appears first, followed by any subsystem dependency.
femlisp
Femlisp is a solver for partial differential equations using the Finite Element Method
Nicolas Neuss
Modified BSD
femlisp-basic
(system).
femlisp-parallel
(system).
femlisp-matlisp
(system).
femlisp-dictionary
(system).
infix
(system).
flexi-streams
(system).
cl-ppcre
(system).
function
(module).
mesh
(module).
problem
(module).
iteration
(module).
discretization
(module).
special-iteration
(module).
graphic
(module).
plot
(module).
strategy
(module).
applications
(module).
finalize.lisp
(file).
femlisp-basic
Basic infrastructure routines for Femlisp
Nicolas Neuss
Modified BSD
sb-posix
(system).
sb-introspect
(system).
closer-mop
(system).
fiveam
(system).
femlisp-parallel
Thread-parallel interface used by Femlisp
Nicolas Neuss
Modified BSD
femlisp-basic
(system).
bordeaux-threads
(system).
lparallel
(system).
cl-ppcre
(system).
cl-cpu-affinity
(system).
parallel
(module).
femlisp-matlisp
Nicolas Neuss
Modified BSD
femlisp-basic
(system).
femlisp-parallel
(system).
femlisp-dictionary
(system).
femlisp-dictionary
Some special dictionaries used by Femlisp
Nicolas Neuss
Modified BSD
femlisp-basic
(system).
femlisp-parallel
(system).
trees
(system).
dictionary
(module).
Modules are listed depth-first from the system components tree.
femlisp/function
femlisp/mesh
femlisp/problem
femlisp/iteration
femlisp/discretization
femlisp/special-iteration
femlisp/graphic
femlisp/plot
femlisp/strategy
femlisp/applications
femlisp/applications/domains
femlisp/applications/demos
femlisp/applications/cdr
femlisp/applications/elasticity
femlisp/applications/navier-stokes
femlisp/applications/articles
femlisp/applications/books
femlisp/applications/courses
femlisp/applications/talks
femlisp-basic/config
femlisp-basic/basic
femlisp-parallel/parallel
femlisp-matlisp/alien
femlisp-matlisp/matlisp
femlisp-dictionary/dictionary
femlisp/function
femlisp
(system).
function-defp.lisp
(file).
function.lisp
(file).
polynom.lisp
(file).
spline.lisp
(file).
femlisp/mesh
function
(module).
femlisp
(system).
mesh-defp.lisp
(file).
cell.lisp
(file).
skeleton.lisp
(file).
identify.lisp
(file).
refine.lisp
(file).
vertex.lisp
(file).
simplex.lisp
(file).
product-cell.lisp
(file).
skeleton-build.lisp
(file).
anisotropic.lisp
(file).
rcb.lisp
(file).
domain.lisp
(file).
mesh.lisp
(file).
meshgen.lisp
(file).
blending.lisp
(file).
triangulate.lisp
(file).
triangle.lisp
(file).
tetgen.lisp
(file).
extend.lisp
(file).
femlisp/problem
mesh
(module).
femlisp
(system).
problem-defp.lisp
(file).
problem.lisp
(file).
pde-problem.lisp
(file).
time.lisp
(file).
evp.lisp
(file).
pdef.lisp
(file).
ellsys.lisp
(file).
cdr.lisp
(file).
elasticity.lisp
(file).
navier-stokes.lisp
(file).
femlisp/iteration
femlisp
(system).
iteration-defp.lisp
(file).
iterate.lisp
(file).
linit.lisp
(file).
blockit.lisp
(file).
krylow.lisp
(file).
solve.lisp
(file).
linsolve.lisp
(file).
nlsolve.lisp
(file).
evpsolve.lisp
(file).
multigrid-defp.lisp
(file).
multigrid.lisp
(file).
amg.lisp
(file).
selection-amg.lisp
(file).
aggregation-amg.lisp
(file).
stueben.lisp
(file).
femlisp/discretization
femlisp
(system).
discretization-defp.lisp
(file).
discretization.lisp
(file).
quadrature.lisp
(file).
fe.lisp
(file).
ansatz-space.lisp
(file).
lagrange.lisp
(file).
fetransfer.lisp
(file).
sparseas.lisp
(file).
sparseif.lisp
(file).
feeval.lisp
(file).
constraints.lisp
(file).
assembly-heap.lisp
(file).
fedisc.lisp
(file).
system-fe.lisp
(file).
ellsys-fe.lisp
(file).
elasticity-fe.lisp
(file).
navier-stokes-fe.lisp
(file).
femlisp/special-iteration
mesh
(module).
problem
(module).
discretization
(module).
iteration
(module).
femlisp
(system).
geomg-defp.lisp
(file).
geoblock.lisp
(file).
vanka.lisp
(file).
geomg.lisp
(file).
femlisp/graphic
femlisp
(system).
graphics-defp.lisp
(file).
graphics.lisp
(file).
dx.lisp
(file).
vtk.lisp
(file).
gnuplot.lisp
(file).
femlisp/plot
graphic
(module).
mesh
(module).
problem
(module).
discretization
(module).
femlisp
(system).
plot-defp.lisp
(file).
plot.lisp
(file).
plot-dx.lisp
(file).
meshplot.lisp
(file).
feplot.lisp
(file).
coeffplot.lisp
(file).
function-plot.lisp
(file).
asaplot.lisp
(file).
plot-gnuplot.lisp
(file).
plot-vtk.lisp
(file).
femlisp/strategy
mesh
(module).
problem
(module).
discretization
(module).
iteration
(module).
special-iteration
(module).
plot
(module).
femlisp
(system).
strategy-defp.lisp
(file).
strategy.lisp
(file).
strategy-utilities.lisp
(file).
error-estimator.lisp
(file).
error-indicator.lisp
(file).
fe-approximation.lisp
(file).
fe-interpolation.lisp
(file).
fe-stationary.lisp
(file).
fe-evp.lisp
(file).
rothe.lisp
(file).
rothe-ellsys.lisp
(file).
gps.lisp
(file).
femlisp/applications
femlisp
(system).
domains
(module).
application-defp.lisp
(file).
app-utils.lisp
(file).
demos
(module).
cdr
(module).
elasticity
(module).
navier-stokes
(module).
articles
(module).
books
(module).
courses
(module).
talks
(module).
regression-tests.lisp
(file).
femlisp/applications/domains
applications
(module).
domains-defp.lisp
(file).
circle-ring-domain.lisp
(file).
bl-cell.lisp
(file).
hole-domain.lisp
(file).
inlay-domain.lisp
(file).
femlisp/applications/demos
app-utils.lisp
(file).
domains
(module).
applications
(module).
application-demos.lisp
(file).
discretization-demos.lisp
(file).
multigrid-demos.lisp
(file).
refinement-demos.lisp
(file).
problem-demos.lisp
(file).
femlisp/applications/cdr
applications
(module).
tools.lisp
(file).
model-problem.lisp
(file).
unstructured.lisp
(file).
locref.lisp
(file).
hom-cdr.lisp
(file).
bl-cdr.lisp
(file).
mg-cdr.lisp
(file).
amg-cdr.lisp
(file).
bratu.lisp
(file).
evp-cdr.lisp
(file).
heat.lisp
(file).
sturm.lisp
(file).
femlisp/applications/elasticity
applications
(module).
model-problem.lisp
(file).
elahom.lisp
(file).
elahom-performance.lisp
(file).
femlisp/applications/articles
demos
(module).
domains
(module).
cdr
(module).
elasticity
(module).
applications
(module).
schaefer-turek-1996.lisp
(file).
heuveline-rannacher-2003.lisp
(file).
heisig-neuss-2017.lisp
(file).
femlisp/applications/books
demos
(module).
domains
(module).
cdr
(module).
elasticity
(module).
applications
(module).
femlisp/applications/courses
demos
(module).
domains
(module).
cdr
(module).
elasticity
(module).
applications
(module).
femlisp/applications/talks
demos
(module).
domains
(module).
cdr
(module).
elasticity
(module).
applications
(module).
effcoeff.lisp
(file).
femlisp-basic/config
femlisp-basic
(system).
setup.lisp
(file).
femlisp-config.lisp
(file).
femlisp-basic/basic
config
(module).
femlisp-basic
(system).
debug.lisp
(file).
tests.lisp
(file).
patches.lisp
(file).
macros.lisp
(file).
port.lisp
(file).
utilities-defp.lisp
(file).
utilities.lisp
(file).
amop.lisp
(file).
mflop.lisp
(file).
general.lisp
(file).
demo.lisp
(file).
femlisp-parallel/parallel
femlisp-parallel
(system).
parallel-defp.lisp
(file).
parallel.lisp
(file).
mutex.lisp
(file).
parallel-adaptions.lisp
(file).
multiprocessing.lisp
(file).
femlisp-matlisp/alien
femlisp-matlisp
(system).
alien.lisp
(file).
alienc.lisp
(file).
lapack.lisp
(file).
superlu.lisp
(file).
umfpack.lisp
(file).
femlisp-matlisp/matlisp
alien
(module).
femlisp-matlisp
(system).
matlisp-defp.lisp
(file).
ctypes.lisp
(file).
vector.lisp
(file).
vector-methods.lisp
(file).
blas-basic.lisp
(file).
store-vector.lisp
(file).
matrix.lisp
(file).
matrix-methods.lisp
(file).
number-blas.lisp
(file).
array-blas.lisp
(file).
standard-matrix.lisp
(file).
standard-matrix-blas.lisp
(file).
standard-matrix-lr.lisp
(file).
compat.lisp
(file).
call-matlisp.lisp
(file).
tensor.lisp
(file).
sparse-tensor.lisp
(file).
compressed.lisp
(file).
ggev.lisp
(file).
hegv.lisp
(file).
sparse-vector.lisp
(file).
sparse-matrix.lisp
(file).
sparselu.lisp
(file).
femlisp-dictionary/dictionary
femlisp-dictionary
(system).
dictionary-defp.lisp
(file).
relations.lisp
(file).
dictionary.lisp
(file).
pool.lisp
(file).
parallel-heap.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
femlisp/femlisp.asd
femlisp-basic/femlisp-basic.asd
femlisp-parallel/femlisp-parallel.asd
femlisp-matlisp/femlisp-matlisp.asd
femlisp-dictionary/femlisp-dictionary.asd
femlisp/function/function-defp.lisp
femlisp/function/function.lisp
femlisp/function/polynom.lisp
femlisp/function/spline.lisp
femlisp/mesh/mesh-defp.lisp
femlisp/mesh/cell.lisp
femlisp/mesh/skeleton.lisp
femlisp/mesh/identify.lisp
femlisp/mesh/refine.lisp
femlisp/mesh/vertex.lisp
femlisp/mesh/simplex.lisp
femlisp/mesh/product-cell.lisp
femlisp/mesh/skeleton-build.lisp
femlisp/mesh/anisotropic.lisp
femlisp/mesh/rcb.lisp
femlisp/mesh/domain.lisp
femlisp/mesh/mesh.lisp
femlisp/mesh/meshgen.lisp
femlisp/mesh/blending.lisp
femlisp/mesh/triangulate.lisp
femlisp/mesh/triangle.lisp
femlisp/mesh/tetgen.lisp
femlisp/mesh/extend.lisp
femlisp/problem/problem-defp.lisp
femlisp/problem/problem.lisp
femlisp/problem/pde-problem.lisp
femlisp/problem/time.lisp
femlisp/problem/evp.lisp
femlisp/problem/pdef.lisp
femlisp/problem/ellsys.lisp
femlisp/problem/cdr.lisp
femlisp/problem/elasticity.lisp
femlisp/problem/navier-stokes.lisp
femlisp/iteration/iteration-defp.lisp
femlisp/iteration/iterate.lisp
femlisp/iteration/linit.lisp
femlisp/iteration/blockit.lisp
femlisp/iteration/krylow.lisp
femlisp/iteration/solve.lisp
femlisp/iteration/linsolve.lisp
femlisp/iteration/nlsolve.lisp
femlisp/iteration/evpsolve.lisp
femlisp/iteration/multigrid-defp.lisp
femlisp/iteration/multigrid.lisp
femlisp/iteration/amg.lisp
femlisp/iteration/selection-amg.lisp
femlisp/iteration/aggregation-amg.lisp
femlisp/iteration/stueben.lisp
femlisp/discretization/discretization-defp.lisp
femlisp/discretization/discretization.lisp
femlisp/discretization/quadrature.lisp
femlisp/discretization/fe.lisp
femlisp/discretization/ansatz-space.lisp
femlisp/discretization/lagrange.lisp
femlisp/discretization/fetransfer.lisp
femlisp/discretization/sparseas.lisp
femlisp/discretization/sparseif.lisp
femlisp/discretization/feeval.lisp
femlisp/discretization/constraints.lisp
femlisp/discretization/assembly-heap.lisp
femlisp/discretization/fedisc.lisp
femlisp/discretization/system-fe.lisp
femlisp/discretization/ellsys-fe.lisp
femlisp/discretization/elasticity-fe.lisp
femlisp/discretization/navier-stokes-fe.lisp
femlisp/special-iteration/geomg-defp.lisp
femlisp/special-iteration/geoblock.lisp
femlisp/special-iteration/vanka.lisp
femlisp/special-iteration/geomg.lisp
femlisp/graphic/graphics-defp.lisp
femlisp/graphic/graphics.lisp
femlisp/graphic/dx.lisp
femlisp/graphic/vtk.lisp
femlisp/graphic/gnuplot.lisp
femlisp/plot/plot-defp.lisp
femlisp/plot/plot.lisp
femlisp/plot/plot-dx.lisp
femlisp/plot/meshplot.lisp
femlisp/plot/feplot.lisp
femlisp/plot/coeffplot.lisp
femlisp/plot/function-plot.lisp
femlisp/plot/asaplot.lisp
femlisp/plot/plot-gnuplot.lisp
femlisp/plot/plot-vtk.lisp
femlisp/strategy/strategy-defp.lisp
femlisp/strategy/strategy.lisp
femlisp/strategy/strategy-utilities.lisp
femlisp/strategy/error-estimator.lisp
femlisp/strategy/error-indicator.lisp
femlisp/strategy/fe-approximation.lisp
femlisp/strategy/fe-interpolation.lisp
femlisp/strategy/fe-stationary.lisp
femlisp/strategy/fe-evp.lisp
femlisp/strategy/rothe.lisp
femlisp/strategy/rothe-ellsys.lisp
femlisp/strategy/gps.lisp
femlisp/applications/domains/domains-defp.lisp
femlisp/applications/domains/circle-ring-domain.lisp
femlisp/applications/domains/bl-cell.lisp
femlisp/applications/domains/hole-domain.lisp
femlisp/applications/domains/inlay-domain.lisp
femlisp/applications/application-defp.lisp
femlisp/applications/app-utils.lisp
femlisp/applications/demos/application-demos.lisp
femlisp/applications/demos/discretization-demos.lisp
femlisp/applications/demos/multigrid-demos.lisp
femlisp/applications/demos/refinement-demos.lisp
femlisp/applications/demos/problem-demos.lisp
femlisp/applications/cdr/tools.lisp
femlisp/applications/cdr/model-problem.lisp
femlisp/applications/cdr/unstructured.lisp
femlisp/applications/cdr/locref.lisp
femlisp/applications/cdr/hom-cdr.lisp
femlisp/applications/cdr/bl-cdr.lisp
femlisp/applications/cdr/mg-cdr.lisp
femlisp/applications/cdr/amg-cdr.lisp
femlisp/applications/cdr/bratu.lisp
femlisp/applications/cdr/evp-cdr.lisp
femlisp/applications/cdr/heat.lisp
femlisp/applications/cdr/sturm.lisp
femlisp/applications/elasticity/model-problem.lisp
femlisp/applications/elasticity/elahom.lisp
femlisp/applications/elasticity/elahom-performance.lisp
femlisp/applications/navier-stokes/flowapp-defp.lisp
femlisp/applications/navier-stokes/boundary-force.lisp
femlisp/applications/navier-stokes/demo-ns.lisp
femlisp/applications/navier-stokes/driven-cavity.lisp
femlisp/applications/navier-stokes/hom-ns.lisp
femlisp/applications/articles/schaefer-turek-1996.lisp
femlisp/applications/articles/heuveline-rannacher-2003.lisp
femlisp/applications/articles/heisig-neuss-2017.lisp
femlisp/applications/talks/effcoeff.lisp
femlisp/applications/regression-tests.lisp
femlisp/finalize.lisp
femlisp-basic/config/setup.lisp
femlisp-basic/config/femlisp-config.lisp
femlisp-basic/basic/debug.lisp
femlisp-basic/basic/tests.lisp
femlisp-basic/basic/patches.lisp
femlisp-basic/basic/macros.lisp
femlisp-basic/basic/port.lisp
femlisp-basic/basic/utilities-defp.lisp
femlisp-basic/basic/utilities.lisp
femlisp-basic/basic/amop.lisp
femlisp-basic/basic/mflop.lisp
femlisp-basic/basic/general.lisp
femlisp-basic/basic/demo.lisp
femlisp-parallel/parallel/parallel-defp.lisp
femlisp-parallel/parallel/parallel.lisp
femlisp-parallel/parallel/mutex.lisp
femlisp-parallel/parallel/parallel-adaptions.lisp
femlisp-parallel/parallel/multiprocessing.lisp
femlisp-matlisp/alien/alien.lisp
femlisp-matlisp/alien/alienc.lisp
femlisp-matlisp/alien/lapack.lisp
femlisp-matlisp/alien/superlu.lisp
femlisp-matlisp/alien/umfpack.lisp
femlisp-matlisp/matlisp/matlisp-defp.lisp
femlisp-matlisp/matlisp/ctypes.lisp
femlisp-matlisp/matlisp/vector.lisp
femlisp-matlisp/matlisp/vector-methods.lisp
femlisp-matlisp/matlisp/blas-basic.lisp
femlisp-matlisp/matlisp/store-vector.lisp
femlisp-matlisp/matlisp/matrix.lisp
femlisp-matlisp/matlisp/matrix-methods.lisp
femlisp-matlisp/matlisp/number-blas.lisp
femlisp-matlisp/matlisp/array-blas.lisp
femlisp-matlisp/matlisp/standard-matrix.lisp
femlisp-matlisp/matlisp/standard-matrix-blas.lisp
femlisp-matlisp/matlisp/standard-matrix-lr.lisp
femlisp-matlisp/matlisp/compat.lisp
femlisp-matlisp/matlisp/call-matlisp.lisp
femlisp-matlisp/matlisp/tensor.lisp
femlisp-matlisp/matlisp/sparse-tensor.lisp
femlisp-matlisp/matlisp/compressed.lisp
femlisp-matlisp/matlisp/ggev.lisp
femlisp-matlisp/matlisp/hegv.lisp
femlisp-matlisp/matlisp/sparse-vector.lisp
femlisp-matlisp/matlisp/sparse-matrix.lisp
femlisp-matlisp/matlisp/sparselu.lisp
femlisp-dictionary/dictionary/dictionary-defp.lisp
femlisp-dictionary/dictionary/relations.lisp
femlisp-dictionary/dictionary/dictionary.lisp
femlisp-dictionary/dictionary/pool.lisp
femlisp-dictionary/dictionary/parallel-heap.lisp
femlisp-parallel/femlisp-parallel.asd
femlisp-parallel
(system).
femlisp-matlisp/femlisp-matlisp.asd
femlisp-matlisp
(system).
femlisp-dictionary/femlisp-dictionary.asd
femlisp-dictionary
(system).
femlisp/function/function.lisp
function-defp.lisp
(file).
function
(module).
<constant-function>
(class).
<function>
(class).
<linear-function>
(class).
<special-function>
(class).
circle-function
(function).
compose-2
(method).
compose-2
(method).
compose-2
(method).
differentiable-p
(generic function).
domain-dimension
(reader method).
ellipse-matrix
(function).
evaluate
(method).
evaluate
(method).
evaluate
(method).
evaluate
(method).
evaluate-gradient
(generic function).
gradient
(reader method).
homotopy
(function).
image-dimension
(reader method).
initialize-instance
(method).
initialize-instance
(method).
interval-method
(function).
langevin
(function).
langevinx
(function).
multiple-evaluate
(generic function).
multiple-evaluate-gradient
(generic function).
numerical-complex-derivative
(function).
numerical-derivative
(function).
numerical-gradient
(function).
project-to-ellipsoid
(function).
project-to-sphere
(function).
sparse-function
(macro).
sparse-real-derivative
(function).
special-1d-function
(function).
transform-function
(function).
xn-distortion-function
(function).
*langevin-taylor-29*
(special variable).
<linearly-transformed-function>
(class).
domain-a
(reader method).
domain-b
(reader method).
evaluate-k-jet
(generic function).
evaluator
(reader method).
image-a
(reader method).
image-b
(reader method).
intermediate-coordinates
(function).
jet
(reader method).
original
(reader method).
smoothness
(generic function).
test-function
(function).
test-gradient
(function).
value
(reader method).
zero-k-jet
(function).
femlisp/function/polynom.lisp
function.lisp
(file).
function
(module).
axpy!
(method).
coefficients
(reader method).
copy
(method).
degree
(generic function).
differentiate
(generic function).
eliminate-small-coefficients
(function).
evaluate
(method).
evaluate
(method).
evaluate
(method).
evaluate-gradient
(method).
factors
(generic function).
gradient
(reader method).
integrate-simple-polynomial
(function).
lagrange-polynomials
(function).
m+
(method).
m+!
(method).
make-polynomial
(function).
maximal-partial-degree
(generic function).
n-variate-monomials-of-degree
(function).
partial-degree
(generic function).
poly*
(generic function).
poly-expt
(generic function).
poly-exterior-product
(function).
polynomial
(class).
print-object
(method).
scal!
(method).
shift-polynomial
(generic function).
split-into-monomials
(function).
total-degree
(generic function).
unit?
(generic function).
variance
(generic function).
zero
(generic function).
zero?
(generic function).
*print-polynomial-variance*
(special variable).
check-and-calculate-depth-of
(function).
evaluate-exterior-polynomial-product
(function).
evaluate-k-jet
(method).
exponents->monomial-list
(function).
k-jet
(generic function).
k-variate-zero
(function).
nest
(function).
poly+
(generic function).
poly-eval
(function).
print-polynomial
(function).
simplify
(function).
test-polynom
(function).
unit
(generic function).
write-monomial
(function).
femlisp/function/spline.lisp
polynom.lisp
(file).
function
(module).
<periodic-polygon>
(class).
<polygon>
(class).
cubic-spline
(function).
differentiable-p
(method).
evaluate
(method).
evaluate-gradient
(method).
initialize-instance
(method).
apply-1d-stencil
(function).
find-segment-coordinates
(function).
m-times
(function).
nr-segments
(generic function).
points
(reader method).
solve-moment-system
(function).
spline-right-hand-side
(function).
test-spline
(function).
femlisp/mesh/cell.lisp
mesh-defp.lisp
(file).
mesh
(module).
<cell>
(class).
<mapped-cell>
(class).
<vertex>
(class).
boundary
(generic function).
cell-mapping
(generic function).
cellp
(function).
corners
(generic function).
diameter
(generic function).
dimension
(generic function).
embedded-dimension
(generic function).
factor-dimensions
(function).
factor-simplices
(function).
g2l
(generic function).
global->embedded-local
(generic function).
global->local
(generic function).
inside-cell?
(generic function).
l2dg
(generic function).
l2g
(generic function).
local->dglobal
(generic function).
local->global
(generic function).
local-coordinates-of-midpoint
(generic function).
mapped-cell-class
(function).
mapped-p
(function).
mapping
(method).
mapping
(reader method).
(setf mapping)
(writer method).
midpoint
(generic function).
multiple-local->dglobal
(generic function).
multiple-local->global
(generic function).
nr-of-sides
(function).
nr-of-subcells
(function).
nr-of-vertices
(function).
origin
(generic function).
print-object
(method).
reference-cell
(generic function).
reference-cell-p
(function).
refine-info
(function).
skeleton
(generic function).
subcells
(generic function).
vertex-p
(function).
vertex-position
(reader method).
vertex?
(function).
vertices
(generic function).
*check-well-defined-embedded-dimension*
(special variable).
*g2l-newton-steps*
(special variable).
*inside-threshold*
(special variable).
*print-cell*
(special variable).
+per-class-allocation-slot+
(constant).
<cell-with-boundary>
(class).
<distorted-cell>
(class).
<standard-cell>
(class).
barycentric-coordinates
(generic function).
barycentric-gradients
(generic function).
cell-class-information
(generic function).
(setf cell-class-information)
(generic function).
cell-class-information
(structure).
cell-class-information-p
(function).
cell-vec
(type).
check
(method).
check
(method).
ci-boundary-indices-of-subcells
(reader).
(setf ci-boundary-indices-of-subcells)
(writer).
ci-dimension
(reader).
(setf ci-dimension)
(writer).
ci-factor-simplices
(reader).
(setf ci-factor-simplices)
(writer).
ci-nr-of-sides
(reader).
(setf ci-nr-of-sides)
(writer).
ci-nr-of-subcells
(reader).
(setf ci-nr-of-subcells)
(writer).
ci-nr-of-vertices
(reader).
(setf ci-nr-of-vertices)
(writer).
ci-reference-cell
(reader).
(setf ci-reference-cell)
(writer).
ci-refine-info
(reader).
(setf ci-refine-info)
(writer).
ci-refinement-rules
(reader).
(setf ci-refinement-rules)
(writer).
coordinates-inside?
(generic function).
copy-cell
(generic function).
copy-cell-class-information
(function).
describe-all
(generic function).
g-corner-matrix
(function).
g-corners
(function).
generate-refine-info
(generic function).
generate-subcells-method
(function).
generate-subcells-method-source
(function).
initialize-cell-class
(function).
l2g-evaluator
(function).
make-cell-class-information
(function).
map-cell-vec
(function).
multiple-barycentric-coordinates
(function).
multiple-barycentric-gradients
(function).
multiple-l2dg
(generic function).
multiple-l2g
(generic function).
refinement-rules
(function).
simple-newton
(function).
subcell-access-indices
(function).
unmapped-cell-class
(function).
with-cell-class-information
(macro).
with-cell-information
(macro).
with-ci-slots
(macro).
femlisp/mesh/skeleton.lisp
cell.lisp
(file).
mesh
(module).
<skeleton>
(class).
cells-of-dim
(function).
cells-of-highest-dim
(function).
describe-object
(method).
dimension
(reader method).
(setf dimension)
(writer method).
dimension-of-part
(generic function).
doskel
(macro).
embedded-dimension
(method).
etable
(generic function).
etable-of-highest-dim
(function).
etables
(reader method).
(setf etables)
(writer method).
find-cell
(function).
find-cell-from-corners
(function).
find-cell-from-position
(generic function).
find-cells
(function).
get-cell-property
(function).
(setf get-cell-property)
(function).
identified-cells
(generic function).
initialize-instance
(method).
insert-cell!
(function).
insert-cells!
(function).
make-analog
(method).
mark-skeleton
(function).
member-of-skeleton?
(function).
nr-of-cells
(function).
skel-empty-p
(function).
skel-for-each
(function).
skel-map
(generic function).
skel-ref
(function).
(setf skel-ref)
(function).
skeleton
(method).
skeleton
(method).
skeleton-boundary
(function).
*optional-skeleton-checks*
(special variable).
*print-skeleton*
(special variable).
*print-skeleton-values*
(special variable).
cells->skeleton
(function).
check
(method).
check-for-multiples
(function).
closed?
(function).
remove-cells!
(generic function).
skeleton-substance
(function).
substance-boundary-cells
(function).
femlisp/mesh/identify.lisp
skeleton.lisp
(file).
mesh
(module).
boundary-identifications
(function).
cell-identification
(function).
(setf cell-identification)
(function).
combine-identifications
(function).
identification-p
(function).
identified-cells
(method).
identified-p
(function).
identify
(function).
identify-unit-cell-faces
(function).
iterate-identifications
(function).
key-is-subcell-p
(function).
print-object
(method).
representative
(generic function).
cells
(reader method).
check-identification
(function).
identification
(class).
femlisp/mesh/refine.lisp
identify.lisp
(file).
mesh
(module).
anisotropic-rule-p
(function).
children
(function).
(setf children)
(function).
get-refinement-rule
(function).
(setf get-refinement-rule)
(function).
inner-refcell-children
(function).
parent
(function).
(setf parent)
(function).
print-object
(method).
refcell-children
(function).
refcell-refinement-skeleton
(function).
reference-cell
(reader method).
refine
(generic function).
refined-p
(function).
refinement
(function).
refinement-rule
(function).
refinement-rule
(class).
regular-rule-p
(function).
subcell-children
(function).
*constant-refinement-type*
(special variable).
*refcell-refinement-memoize-depth*
(special variable).
*refcell-refinement-table*
(special variable).
<anisotropic-rule-mixin>
(class).
<child-info>
(structure).
<child-info>-p
(function).
add-new-refinement-rule
(function).
anisotropic-name
(function).
boundary-refinement-rules
(reader method).
child-barycentric-corners
(reader).
(setf child-barycentric-corners)
(writer).
child-boundary-paths
(reader).
(setf child-boundary-paths)
(writer).
child-info-vec
(type).
child-reference-cell
(reader).
(setf child-reference-cell)
(writer).
child-transform-a
(reader).
(setf child-transform-a)
(writer).
child-transform-b
(reader).
(setf child-transform-b)
(writer).
copy-<child-info>
(function).
do-refinement!
(generic function).
generate-refine-info
(method).
generate-refine-info
(method).
get-subcell-children
(function).
induced-refinement-of-subcell-refcells
(function).
make-<child-info>
(function).
names
(reader method).
refine-cell!
(generic function).
refine-cell-interior
(function).
refine-info->refinement-rule
(function).
refinement-info
(reader method).
rule-position
(function).
skeleton->refinement-rule
(function).
update-refinement!
(generic function).
femlisp/mesh/vertex.lisp
refine.lisp
(file).
mesh
(module).
*reference-vertex*
(special variable).
boundary
(method).
cell-mapping
(method).
g2l
(method).
global->local
(method).
global->local
(method).
initialize-instance
(method).
l2dg
(method).
l2g
(method).
local->dglobal
(method).
local-coordinates-of-midpoint
(method).
make-cell-from-corners
(function).
make-cell-from-vertices
(function).
make-vertex
(function).
vertices
(method).
<mapped-vertex>
(class).
barycentric-coordinates
(method).
barycentric-gradients
(method).
coordinates-inside?
(method).
copy-cell
(method).
generate-refine-info
(method).
femlisp/mesh/simplex.lisp
vertex.lisp
(file).
mesh
(module).
*unit-interval*
(special variable).
*unit-tetrahedron*
(special variable).
*unit-triangle*
(special variable).
<simplex>
(class).
cell-mapping
(method).
l2dg
(method).
local-coordinates-of-midpoint
(method).
make-line
(function).
make-simplex
(function).
n-simplex
(function).
simplex-class
(function).
simplex-p
(function).
vertices
(method).
barycentric-coordinates
(method).
barycentric-gradients
(method).
coordinates-inside?
(method).
create-boundary-paths
(function).
ensure-simplex
(function).
euclidean->barycentric
(function).
freudenthal-refinement
(function).
generate-refine-info
(method).
get-path-create
(function).
make-reference-simplex
(function).
simplex-corner
(function).
sub-cells-of-child
(function).
sub-cells-of-children
(function).
two-sorted-parts
(function).
femlisp/mesh/product-cell.lisp
simplex.lisp
(file).
mesh
(module).
*unit-cube*
(special variable).
*unit-quadrangle*
(special variable).
<product-cell>
(class).
cartesian-product
(generic function).
cell->cube
(function).
cube-p
(function).
ensure-simplex-product
(function).
local-coordinates-of-midpoint
(method).
n-cube
(function).
product-cell-p
(function).
vertices
(method).
*unit-prism-1-2*
(special variable).
*unit-prism-2-1*
(special variable).
barycentric-coordinates
(method).
barycentric-coordinates-factors
(function).
barycentric-gradients
(method).
cartesian-product-map
(function).
coordinates-inside?
(method).
create-boundary-paths-of-product-cell
(function).
cube-index->product-cell-index
(function).
cube-index->simplex-index
(function).
generate-refine-info
(method).
make-product-cell
(generic function).
make-reference-product-cell
(function).
product-cell-class
(function).
product-table
(function).
pseudo-vertices
(generic function).
weight-lists
(function).
weight-lists-grad-product-cell
(function).
weight-lists-grad-simplex
(function).
femlisp/mesh/skeleton-build.lisp
product-cell.lisp
(file).
identify.lisp
(file).
mesh
(module).
copy-skeleton
(function).
insert-cell-from-corners
(function).
linearly-transformed-skeleton
(function).
periodic-polygonal
(function).
refined-skeleton-copy
(function).
shift-skeleton
(function).
skel-add!
(function).
skeleton-disjoint-union
(function).
skeleton-without-cell
(function).
structured-skeleton
(function).
subskeleton
(generic function).
telescope
(function).
transformed-skeleton
(function).
synchronize-identification
(function).
transform-cell!
(generic function).
femlisp/mesh/anisotropic.lisp
product-cell.lisp
(file).
skeleton-build.lisp
(file).
mesh
(module).
anisotropic-boundary-refinement-rules
(function).
anisotropic-refinement-indicator
(function).
anisotropic-refinement-info
(function).
anisotropic-refinement-rule
(function).
anisotropic-refinement-skeleton
(function).
copy-refinement-rule
(function).
projection-matrix
(function).
femlisp/mesh/rcb.lisp
skeleton.lisp
(file).
identify.lisp
(file).
mesh
(module).
bisect
(function).
bisection-parameters
(function).
calculate-bounding-box
(function).
interface-table
(function).
rcb-ordered-cells
(function).
rcb-sort-items
(function).
recursive-bisection
(function).
femlisp/mesh/domain.lisp
skeleton-build.lisp
(file).
mesh
(module).
<domain>
(class).
box-domain
(function).
dealii-n-ball-domain
(function).
describe-object
(method).
domain-boundary
(function).
domain-characteristics
(function).
ensure-domain
(function).
find-patch
(function).
initialize-instance
(method).
l-domain
(function).
make-classifier
(function).
make-domain
(function).
n-ball-domain
(function).
n-cell-domain
(function).
n-cube-domain
(function).
n-simplex-domain
(function).
patch-classification
(function).
rotated-square-domain
(function).
simplex-product-domain
(function).
test-condition
(function).
triangle-domain
(function).
update-instance-for-different-class
(method).
classify-top-bottom-lateral
(function).
cube-without-corner
(function).
domain-substance
(function).
domain-substance-boundaries
(function).
ensure-secondary-information
(function).
n-ball-dphi
(function).
n-ball-phi
(function).
standard-classifier
(function).
femlisp/mesh/mesh.lisp
domain.lisp
(file).
mesh
(module).
<hierarchical-mesh>
(class).
<mesh>
(class).
bottom-level-cells
(function).
cells-on-level
(function).
describe-object
(method).
dimension-of-part
(method).
dissection-compare
(function).
domain
(reader method).
find-cell-from-position
(method).
for-each-cell-of-highest-dimension-on-surface
(function).
hierarchically-ordered-cells
(function).
initialize-instance
(method).
level-of-cell
(function).
make-analog
(method).
meshsize
(generic function).
nr-of-levels
(function).
nr-of-surface-cells
(function).
patch-of-cell
(function).
(setf patch-of-cell)
(function).
refine
(method).
refinement-interface
(function).
surface-cells-of-dim
(function).
surface-cells-of-highest-dim
(function).
top-level
(generic function).
top-level-cells
(function).
update-instance-for-different-class
(method).
*allow-child-patch-change*
(special variable).
*find-cell-base-level*
(special variable).
build-level-table
(function).
check
(method).
check
(method).
find-cell-on-patch-with-midpoint
(function).
flat-mesh-p
(function).
get-patch-property
(function).
(setf get-patch-property)
(function).
hierarchical-mesh-p
(function).
hierarchical-search
(function).
levels
(reader method).
(setf levels)
(writer method).
parametric
(reader method).
refine-cell!
(method).
femlisp/mesh/meshgen.lisp
mesh.lisp
(file).
mesh
(module).
compare-lexicographically
(function).
copy-mesh
(function).
make-hierarchical-mesh-from
(function).
make-hierarchical-mesh-from-domain
(generic function).
make-mesh-from
(generic function).
sort-lexicographically
(function).
special-mesh-on-box-domain
(function).
structured-mesh-on-box-domain
(function).
triangulize
(function).
uniformly-refined-hierarchical-mesh
(function).
uniformly-refined-mesh
(function).
isotropic-mesh-on-rectangle-domain
(function).
femlisp/mesh/blending.lisp
meshgen.lisp
(file).
mesh
(module).
barycentric->euclidean
(function).
blending-map
(function).
change-to-blending
(function).
curved-triangle-domain
(function).
interpolate
(function).
ip
(function).
sub-side-mapping
(function).
test-f
(function).
without-component
(function).
femlisp/mesh/triangulate.lisp
blending.lisp
(file).
mesh
(module).
<boundary-cell>
(class).
dimension
(reader method).
midpoint
(reader method).
subcells
(method).
triangulate
(function).
compute-raster
(function).
copy-cell
(method).
extend-triangulation
(generic function).
fix-identification-for-positive-dimension
(function).
holes
(reader method).
transform-cell!
(method).
femlisp/mesh/triangle.lisp
triangulate.lisp
(file).
mesh
(module).
show
(method).
*meshfile-basename*
(special variable).
*triangle-pathname*
(special variable).
call-triangle
(function).
consistent-vertex-numbering
(function).
decrease-priority
(function).
drop-empty-limits
(function).
extend-triangulation
(method).
extend-triangulation
(method).
increase-priority
(function).
map-skeleton
(function).
mesh-file
(function).
meshes-pathname
(function).
patch-boundary-mesh
(function).
patch-mesh
(function).
pq-get
(function).
(setf pq-get)
(function).
pq-insert
(function).
pq-pop
(function).
pq-remove
(function).
priority-queue
(class).
read-next-numbers-line
(function).
read-next-uncommented-line
(function).
read-numbers-from-string
(function).
read-triangle-mesh-for
(function).
refpatch-boundary-mesh
(function).
triangulate-patch
(function).
write-1d-skeleton-to-poly-file
(function).
femlisp/mesh/tetgen.lisp
triangulate.lisp
(file).
triangle.lisp
(file).
mesh
(module).
*tetgen-pathname*
(special variable).
call-tetgen
(function).
extend-triangulation
(method).
insert-simplex-in-table
(function).
read-nodes
(function).
read-tetgen-mesh
(function).
read-tetgen-mesh-for
(function).
read-tetgen-simplices
(function).
sample-domain
(function).
sample-mesh
(function).
write-2d-skeleton-to-poly-file
(function).
femlisp/mesh/extend.lisp
meshgen.lisp
(file).
mesh
(module).
cube-extender
(function).
extend
(function).
standard-extender
(function).
femlisp/problem/problem.lisp
problem-defp.lisp
(file).
problem
(module).
<lse>
(class).
<nlse>
(class).
<nonlinear-problem>
(class).
<problem>
(class).
ensure-residual
(generic function).
ensure-solution
(generic function).
initialize-instance
(method).
initialize-instance
(method).
linear-p
(generic function).
linearize
(generic function).
lse
(function).
matrix
(reader method).
nlse
(function).
rhs
(reader method).
test-problem
(function).
femlisp/problem/pde-problem.lisp
problem.lisp
(file).
problem
(module).
<coefficient>
(class).
<domain-problem>
(class).
<interpolation-problem>
(class).
<multiphysics-mixin>
(class).
<pde-problem>
(class).
add-fe-parameters-demand
(function).
assembly-type
(reader method).
coefficient-name
(reader method).
coefficients
(reader method).
coefficients-of-cell
(generic function).
coefficients-of-patch
(function).
component-length
(function).
component-position
(function).
component-symbol
(function).
components
(reader method).
components-of-cell
(generic function).
components-of-patch
(generic function).
(setf components-of-patch)
(generic function).
constant-coefficient
(function).
constraint-coefficient
(function).
constraint-p
(function).
copy-coefficient
(function).
demands
(method).
demands
(reader method).
describe-object
(method).
dimension
(reader method).
domain
(reader method).
domain-dimension
(method).
dual-problem
(generic function).
ensure-coefficient
(function).
evaluate
(method).
extraction-information
(function).
filter-applicable-coefficients
(function).
find-coefficient
(function).
find-component
(function).
fu->coefficient
(function).
function->coefficient
(function).
fx->coefficient
(function).
fxu->coefficient
(function).
get-coefficient
(function).
get-coefficients
(function).
identification-coefficient
(function).
multiplicity
(reader method).
nr-of-components
(generic function).
nr-of-components-of-patch
(function).
nr-of-components-of-problem
(generic function).
print-object
(method).
required-fe-functions
(function).
self-adjoint-p
(generic function).
shared-initialize
(method).
shared-initialize
(method).
subproblems
(reader method).
*assembly-type*
(special variable).
check-component
(function).
check-components
(function).
classify-problem
(generic function).
coeff-eval
(reader method).
component-name
(function).
compress-fe-parameters
(function).
fe-parameter-p
(function).
identification-coefficient-p
(function).
parameter-name
(function).
parameter-order
(function).
sigma-p
(function).
solution-dependent
(function).
some-components
(function).
test-pde-problem
(function).
zero-constraints
(generic function).
femlisp/problem/time.lisp
pde-problem.lisp
(file).
problem
(module).
<time-dependent-problem>
(class).
end-time
(reader method).
self-adjoint-p
(method).
start-time
(reader method).
stationary-problem-class
(function).
time-dependent-problem-class
(generic function).
test-time
(function).
femlisp/problem/evp.lisp
pde-problem.lisp
(file).
problem
(module).
<evp-mixin>
(class).
<evp>
(class).
<ls-evp>
(class).
energy
(generic function).
initialize-instance
(method).
initialize-instance
(method).
mass
(generic function).
mass-matrix
(reader method).
multiplicity
(reader method).
stiffness-matrix
(reader method).
test-evp
(function).
femlisp/problem/pdef.lisp
problem
(module).
coefficient-macros
(function).
coupling-with
(macro).
create-problem
(macro).
define-coefficient-macro
(macro).
extract-from
(function).
make-coefficients-for
(generic function).
prepare-coefficient-arguments
(function).
register-coefficient-macros
(function).
select-on-patch
(macro).
subproblem
(macro).
*coefficient-component-offsets*
(special variable).
derivative-symbol-p
(function).
extract-from-gradient
(function).
internal-component
(special variable).
internal-component-2
(special variable).
internal-components
(special variable).
internal-dimension
(special variable).
internal-domain
(special variable).
internal-length
(special variable).
internal-length-2
(special variable).
internal-multiplicity
(special variable).
internal-patch
(special variable).
internal-patch-dimension
(special variable).
internal-patch-if
(special variable).
internal-position
(special variable).
internal-position-2
(special variable).
internal-problem
(special variable).
internal-properties
(special variable).
internal-subproblem-name
(special variable).
internal-subproblem-package
(special variable).
internal-subproblems
(special variable).
internal-value
(special variable).
select-components-on-patch
(macro).
with-coefficient-macros
(macro).
femlisp/problem/ellsys.lisp
pdef.lisp
(file).
problem
(module).
<ellsys-problem>
(class).
<multiphysics-problem>
(class).
artificial-diffusion
(function).
diagonal-reaction-coefficient
(function).
ellsys-model-problem
(function).
ellsys-one-force-coefficient
(function).
initial-value-provided-p
(function).
initialize-instance
(method).
isotropic-diffusion
(function).
isotropic-diffusion-coefficient
(function).
self-adjoint-p
(method).
time-dependent-p
(function).
unit-vector-force-coefficient
(function).
a
(macro).
ai
(macro).
b
(macro).
c
(macro).
classify-problem
(method).
constraint
(macro).
define-ellsys-coefficient-macro
(macro).
f
(macro).
g
(macro).
h
(macro).
initial
(macro).
r
(macro).
sigma
(macro).
test-ellsys
(function).
femlisp/problem/cdr.lisp
ellsys.lisp
(file).
problem
(module).
<cdr-problem>
(class).
bratu-problem
(function).
cdr-model-problem
(function).
dual-problem
(method).
ensure-dirichlet-coefficient
(function).
ensure-tensor-coefficient
(function).
ensure-vector-coefficient
(function).
nr-of-components-of-problem
(method).
scalar-diffusion
(function).
scalar-reaction
(function).
scalar-source
(function).
*streamline-diffusion*
(special variable).
conservative-convection
(macro).
constraint
(macro).
convection
(macro).
derivative-source
(macro).
diffusion
(macro).
ensure-1-component-tensor
(function).
ensure-1-component-vector
(function).
initial
(macro).
reaction
(macro).
resistance
(macro).
sigma
(macro).
source
(macro).
streamline-diffusion
(macro).
test-cdr
(function).
zero-constraint
(macro).
femlisp/problem/elasticity.lisp
ellsys.lisp
(file).
problem
(module).
<elasticity-problem>
(class).
check-elasticity-tensor
(function).
elasticity-model-problem
(function).
isotropic-elasticity-tensor
(function).
isotropic-elasticity-tensor-coefficient
(function).
nr-of-components-of-problem
(method).
shared-initialize
(method).
test-elasticity
(function).
femlisp/iteration/iterate.lisp
iteration-defp.lisp
(file).
iteration
(module).
*cpu-time-observe*
(special variable).
*iteration-depth*
(special variable).
*output-depth*
(special variable).
*step-observe*
(special variable).
<iteration>
(class).
finally
(generic function).
initialize-instance
(method).
initially
(generic function).
intermediate
(generic function).
iter-format
(generic function).
iterate
(generic function).
next-step
(generic function).
terminate-p
(generic function).
*iteration-failure-behavior*
(special variable).
*iteration-name*
(special variable).
compile-termination-test
(function).
float-quantity-observe
(function).
inner-iteration
(generic function).
name
(generic function).
output-p
(generic function).
test-iterate
(function).
femlisp/iteration/linit.lisp
iteration-defp.lisp
(file).
iteration
(module).
*gauss-seidel*
(special variable).
*undamped-jacobi*
(special variable).
<gauss-seidel>
(class).
<ilu>
(class).
<iterator>
(class).
<jacobi>
(class).
<linear-iteration>
(class).
<lu>
(class).
<multi-iteration>
(class).
<parallel-sor>
(class).
<sor>
(class).
compute-residual
(generic function).
initialize-instance
(method).
make-iterator
(generic function).
product-iterator
(function).
*store-decomposition*
(special variable).
<richardson>
(class).
ensure-contained
(generic function).
ensure-solution-structure
(function).
test-linit
(function).
femlisp/iteration/blockit.lisp
linit.lisp
(file).
iteration
(module).
<block-iteration>
(class).
<custom-psc>
(class).
<custom-ssc>
(class).
<psc>
(class).
<ssc>
(class).
make-iterator
(method).
setup-blocks
(generic function).
<setup-blocks-mixin>
(class).
compute-block-inverse
(function).
compute-block-inverses
(function).
inner-iteration
(reader method).
ordering
(reader method).
(setf ordering)
(writer method).
store-p
(reader method).
femlisp/iteration/krylow.lisp
linit.lisp
(file).
iteration
(module).
<bi-cgstab>
(class).
<cg>
(class).
<gradient-method>
(class).
make-iterator
(method).
make-iterator
(method).
make-iterator
(method).
make-iterator
(method).
print-object
(method).
<gmres>
(class).
<preconditioned-krylow>
(class).
restart-cycle
(reader method).
test-krylow
(function).
femlisp/iteration/solve.lisp
iteration-defp.lisp
(file).
iterate.lisp
(file).
iteration
(module).
*discrete-iterative-solver-observe*
(special variable).
<iterative-solver>
(class).
<solver>
(class).
finally
(method).
initially
(method).
intermediate
(method).
select-linear-solver
(generic function).
select-solver
(generic function).
solve
(generic function).
*select-linear-solver*
(special variable).
<discrete-iterative-solver>
(class).
output
(reader method).
residual-norm
(reader method).
safe-divide-by-zero
(function).
test-solve
(function).
femlisp/iteration/linsolve.lisp
linit.lisp
(file).
solve.lisp
(file).
iteration
(module).
<linear-solver>
(class).
<safe-linear-solver>
(class).
<solver-iteration>
(class).
<special-solver>
(class).
linsolve
(function).
lu-solver
(function).
make-iterator
(method).
next-step
(method).
select-linear-solver
(method).
select-linear-solver
(method).
solve
(method).
terminate-p
(method).
fallback
(reader method).
fallback-p
(reader method).
(setf fallback-p)
(writer method).
inner-iteration
(reader method).
iteration
(method).
iteration
(reader method).
solver-function
(reader method).
test-linsolve
(function).
femlisp/iteration/nlsolve.lisp
linsolve.lisp
(file).
iteration
(module).
<newton>
(class).
next-step
(method).
select-solver
(method).
*suggested-nonlinear-solver*
(special variable).
<nonlinear-solver>
(class).
inner-iteration
(method).
linear-solver
(reader method).
qlsolve
(function).
step-control
(reader method).
test-nlsolve
(function).
femlisp/iteration/evpsolve.lisp
nlsolve.lisp
(file).
iteration
(module).
next-step
(method).
next-step
(method).
select-solver
(method).
*evp-success*
(special variable).
<evp-solver>
(class).
<lobpcg>
(class).
<wielandt-iteration>
(class).
gram-schmidt
(function).
gram-schmidt-new
(function).
test-evpsolve
(function).
femlisp/iteration/multigrid-defp.lisp
iteration-defp.lisp
(file).
iteration
(module).
femlisp/iteration/multigrid.lisp
linit.lisp
(file).
linsolve.lisp
(file).
multigrid-defp.lisp
(file).
iteration
(module).
<correction-scheme>
(class).
<fas>
(class).
<mg-iteration>
(class).
base-level
(reader method).
coarse-grid-iteration
(reader method).
fmg
(reader method).
make-iterator
(method).
multilevel-decomposition
(generic function).
post-steps
(reader method).
pre-steps
(reader method).
select-smoother
(generic function).
a_
(macro).
combination-type
(reader method).
ensure-mg-residual
(generic function).
ensure-sol-rhs-res
(generic function).
f-cycle
(generic function).
fas-r_
(macro).
gamma
(reader method).
i_
(macro).
lmgc
(generic function).
post-smoother
(reader method).
post-smoother_
(macro).
pre-smoother
(reader method).
pre-smoother_
(macro).
prolongate
(generic function).
r_
(macro).
res_
(macro).
residual-p_
(macro).
restrict
(generic function).
rhs_
(macro).
smooth
(generic function).
sol_
(macro).
with-current-level-data
(macro).
femlisp/iteration/amg.lisp
multigrid.lisp
(file).
iteration
(module).
cg-max-size
(reader method).
coarse-grid-matrix
(generic function).
coarsen
(generic function).
dirichlet-dof-p
(function).
galerkin-product
(function).
multilevel-decomposition
(method).
preprocess-matrix
(generic function).
prolongation
(generic function).
restriction
(generic function).
slave-dof-p
(function).
slave-or-dirichlet-dof-p
(function).
*amg-cg-max-size*
(special variable).
<algebraic-mg>
(class).
choose-coarse-grid
(generic function).
filtered-matrix
(generic function).
improved-prolongation
(generic function).
max-depth
(reader method).
tentative-prolongation
(generic function).
femlisp/iteration/selection-amg.lisp
amg.lisp
(file).
iteration
(module).
<selection-amg>
(class).
improved-prolongation
(method).
tentative-prolongation
(method).
femlisp/iteration/aggregation-amg.lisp
amg.lisp
(file).
iteration
(module).
<aggregation-amg>
(class).
femlisp/iteration/stueben.lisp
selection-amg.lisp
(file).
iteration
(module).
<stueben>
(class).
adapt-fill-pointer
(function).
choose-coarse-grid
(method).
filtered-matrix
(method).
min-in-row
(function).
priority-table
(class).
pt-dictionary
(reader method).
pt-in-table-p
(generic function).
pt-insert
(generic function).
pt-pop
(generic function).
pt-remove
(generic function).
pt-shift-priority
(generic function).
pt-table
(reader method).
test-stueben
(function).
theta
(reader method).
(setf theta)
(writer method).
femlisp/discretization/discretization-defp.lisp
discretization
(module).
femlisp/discretization/discretization.lisp
discretization-defp.lisp
(file).
discretization
(module).
*suggested-discretization-order*
(special variable).
<discretization>
(class).
discretization-order
(generic function).
discretize
(generic function).
select-discretization
(generic function).
femlisp/discretization/quadrature.lisp
discretization-defp.lisp
(file).
discretization
(module).
gauss-lobatto-points
(function).
gauss-lobatto-points-on-unit-interval
(function).
gauss-lobatto-rule
(function).
gauss-rule
(function).
integration-points
(reader method).
integration-rule
(function).
integration-rule
(class).
integration-weights
(reader method).
product-rule
(function).
weights-for-ips
(function).
*quadrature-rule-float-type*
(special variable).
*quadrature-rule-internal-precision*
(special variable).
cone-rule-for-simplex
(function).
gauss-lobatto-family
(function).
gauss-lobatto-rule-on-unit-interval
(function).
gauss-points-for-weight
(function).
gauss-rule-for-simplex
(function).
gauss-rule-for-weight
(function).
high-precision-integration-points
(function).
high-precision-integration-weights
(function).
high-precision-ips
(reader method).
integrate-monomial
(function).
integrate-monomial-over-simplex-product
(function).
integrate-over-reference-product-cell
(function).
integrate-over-reference-simplex
(function).
ip-coords
(function).
(setf ip-coords)
(function).
ip-weight
(function).
(setf ip-weight)
(function).
jacobi-polynomial
(function).
legendre-polynomial
(function).
make-ip
(function).
new-gauss-rule-for-simplex
(function).
rule-factors
(reader method).
test-integration-rule
(function).
test-quadrature
(function).
zeros-of-separating-family
(function).
femlisp/discretization/fe.lisp
discretization.lisp
(file).
quadrature.lisp
(file).
discretization
(module).
*quadrature-order*
(special variable).
<scalar-fe>
(class).
<vector-fe>
(class).
component
(generic function).
components
(reader method).
components
(method).
(setf components)
(writer method).
construct-coeff-input
(function).
discretization-order
(method).
discretization-order
(reader method).
do-dof
(macro).
dof
(class).
dof-component
(reader method).
dof-coord
(reader method).
dof-functional
(reader method).
dof-gcoord
(reader method).
dof-in-vblock-index
(reader method).
dof-index
(reader method).
dof-subcell-index
(reader method).
evaluate
(method).
fe-basis
(reader method).
fe-basis
(reader method).
fe-cell-geometry
(function).
fe-dofs
(reader method).
fe-dofs
(reader method).
(setf fe-dofs)
(writer method).
initialize-instance
(method).
initialize-instance
(method).
inner-dof-indices
(function).
interior-dof?
(function).
interpolate-on-refcell
(generic function).
ip-gradients
(generic function).
ip-values
(generic function).
nr-of-components
(method).
nr-of-components
(method).
nr-of-dofs
(generic function).
nr-of-inner-dofs
(generic function).
quadrature-rule
(generic function).
reference-cell
(reader method).
subcell-ndofs
(function).
subcell-offsets
(function).
*dof-precise-evaluation*
(special variable).
<fe>
(class).
compute-duals
(function).
discretization
(reader method).
dof-subcell
(reader method).
domain-volume
(function).
evaluate-shapes-at-points
(function).
fast-ip-gradients
(function).
fe-factors
(reader method).
gram-matrix
(function).
interpolation-function
(generic function).
ip-gradients-at-point
(generic function).
ip-values-at-point
(generic function).
new-vector-dof-from-dof
(function).
p-nomials-of-degree
(function).
precise-coord
(reader method).
precise-gcoord
(reader method).
project
(function).
projection-coefficients
(function).
q-nomials-of-degree
(function).
slow-ip-gradients
(function).
test-fe
(function).
vector-dof
(class).
volume-of-cell
(function).
femlisp/discretization/ansatz-space.lisp
fe.lisp
(file).
discretization
(module).
<ansatz-space>
(class).
<fe-discretization>
(class).
<scalar-fe-discretization>
(class).
<standard-fe-discretization>
(class).
<vector-fe-discretization>
(class).
ansatz-space
(reader method).
component
(method).
components
(reader method).
discretization-order
(method).
discretization-order
(method).
discretization-order
(reader method).
fe-class
(method).
fe-class
(reader method).
get-fe
(generic function).
hierarchical-mesh
(generic function).
initialize-instance
(method).
initialize-instance
(method).
lagrange-ansatz-space
(function).
make-analog
(method).
make-fe-ansatz-space
(function).
mesh
(method).
mesh
(reader method).
multiplicity
(method).
nr-of-components
(method).
nr-of-components
(method).
nr-of-components
(method).
problem
(method).
problem
(reader method).
<ansatz-space-object>
(class).
set-constraints
(generic function).
femlisp/discretization/lagrange.lisp
ansatz-space.lisp
(file).
discretization
(module).
cell-lagrange-fe
(function).
lagrange-fe
(function).
lagrange-mapping
(function).
lagrange-basis
(function).
lagrange-basis-boundary
(function).
lagrange-basis-inner
(function).
lagrange-basis-simplex
(function).
lagrange-boundary-dofs
(function).
lagrange-coords-1d
(function).
lagrange-dofs
(function).
lagrange-inner-coords
(generic function).
lagrange-polynomial-vector
(function).
lagrange-reference-parameters
(function).
shapes-and-dof-coords
(function).
test-lagrange
(function).
femlisp/discretization/fetransfer.lisp
ansatz-space.lisp
(file).
lagrange.lisp
(file).
discretization
(module).
local-imatrix
(function).
local-pmatrix
(function).
local-transfer-matrix
(function).
*ipt-tolerance*
(special variable).
*local-interpolation-matrix*
(special variable).
*local-projection-matrix*
(special variable).
children-offsets
(function).
compute-local-imatrix
(generic function).
compute-local-pmatrix
(generic function).
local-interpolation-matrix
(function).
local-projection-matrix
(function).
test-fetransfer
(function).
femlisp/discretization/sparseas.lisp
ansatz-space.lisp
(file).
fetransfer.lisp
(file).
discretization
(module).
<ansatz-space-automorphism>
(class).
<ansatz-space-morphism>
(class).
<ansatz-space-vector>
(class).
cell-key
(function).
choose-start-vector
(generic function).
col-key->size
(method).
domain-ansatz-space
(generic function).
extended-extract
(generic function).
getrf!
(method).
image-ansatz-space
(generic function).
initialize-instance
(method).
initialize-instance
(method).
initialize-instance
(method).
interpolation-matrix
(function).
key->size
(method).
key->size
(method).
keys->pattern
(method).
m*
(method).
m*-product-instance
(method).
m*-tn-product-instance
(method).
make-ansatz-space-automorphism
(function).
make-ansatz-space-morphism
(function).
make-ansatz-space-vector
(function).
make-domain-vector-for
(method).
make-image-vector-for
(method).
projection-matrix
(function).
random-ansatz-space-vector
(function).
row-key->size
(method).
select-linear-solver
(method).
sort-keys-hierarchically
(function).
special-ansatz-space-vector
(function).
transfer-matrix
(function).
*interpolation-type*
(special variable).
<domain-image-mixin>
(class).
c-dirichlet-dof-p
(function).
c-find-master
(function).
c-slave-dof-p
(function).
ensure-constraints
(function).
interpolate-coefficient
(function).
interpolate-function
(function).
key-cells
(function).
test-sparseas
(function).
femlisp/discretization/sparseif.lisp
ansatz-space.lisp
(file).
sparseas.lisp
(file).
discretization
(module).
dequeue
(method).
fe-extraction-information
(function).
get-local-from-global-mat
(generic function).
get-local-from-global-vec
(generic function).
increment-global-by-local-mat
(generic function).
increment-global-by-local-vec
(generic function).
make-local-mat
(generic function).
make-local-vec
(function).
multiple-evaluate-local-fe
(function).
set-global-to-local-mat
(generic function).
set-global-to-local-vec
(generic function).
*check-hash-table*
(special variable).
*check-lock*
(special variable).
*local-mat-pool*
(special variable).
*use-pool-p*
(special variable).
chunk-enqueue
(generic function).
chunk-queue
(class).
delay-possible-p
(function).
extract-ip-data
(function).
fe-secondary-information
(function).
fill-local-from-global-mat
(generic function).
fill-local-from-global-vec
(generic function).
get-matrix-blocks
(function).
global-local-matrix-operation
(generic function).
global-local-vector-operation
(generic function).
lock
(function).
set-lagrange-ansatz-space-vector
(function).
test-sparseif
(function).
unlock
(function).
work-done
(function).
work-on-queue
(generic function).
femlisp/discretization/feeval.lisp
ansatz-space.lisp
(file).
sparseif.lisp
(file).
discretization
(module).
cell-integrate
(generic function).
fe-extreme-values
(generic function).
fe-gradient
(generic function).
fe-integrate
(generic function).
fe-local-gradient
(generic function).
fe-local-value
(generic function).
fe-value
(generic function).
cell-volume
(function).
compute-energy
(function).
safer-find-cell-from-position
(function).
update-cell-extreme-values
(function).
femlisp/discretization/constraints.lisp
ansatz-space.lisp
(file).
sparseif.lisp
(file).
discretization
(module).
assemble-constraints
(function).
constrained-interpolation-matrix
(function).
eliminate-constraints
(function).
essential-boundary-constraints
(generic function).
add-local-part!
(function).
combined-constraints
(function).
compute-essential-boundary-constraints
(function).
eliminate-hanging-node-constraints-from-matrix
(function).
hanging-nodes-constraints
(function).
identification-constraints
(function).
identification-matrix
(function).
test-constraints
(function).
femlisp/discretization/assembly-heap.lisp
discretization-defp.lisp
(file).
discretization
(module).
assembly-heap
(function).
test-assembly-heap
(function).
femlisp/discretization/fedisc.lisp
sparseif.lisp
(file).
constraints.lisp
(file).
assembly-heap.lisp
(file).
discretization
(module).
assemble-interior
(generic function).
discretize
(method).
discretize-globally
(function).
discretize-locally
(generic function).
fe-discretize
(function).
assemble-cell
(function).
fe-discretize-linear-problem
(function).
test-fedisc
(function).
femlisp/discretization/system-fe.lisp
fedisc.lisp
(file).
discretization
(module).
essential-boundary-constraints
(method).
essential-constraints-for-key
(function).
femlisp/discretization/ellsys-fe.lisp
fedisc.lisp
(file).
discretization
(module).
discretize-locally
(method).
select-discretization
(method).
select-discretization
(method).
*upwinding*
(special variable).
discretize-ellsys
(function).
ellsys-fe-tests
(function).
ensure-m-matrix-property
(function).
femlisp/discretization/elasticity-fe.lisp
system-fe.lisp
(file).
discretization
(module).
discretize-elasticity
(function).
elasticity-fe-tests
(function).
femlisp/special-iteration/geomg-defp.lisp
special-iteration
(module).
femlisp/special-iteration/geoblock.lisp
geomg-defp.lisp
(file).
special-iteration
(module).
<geometric-psc>
(class).
<geometric-ssc>
(class).
geometric-psc
(function).
geometric-ssc
(function).
setup-blocks
(method).
<geometric-blocking-mixin>
(class).
find-vertex-centered-block
(function).
femlisp/special-iteration/vanka.lisp
geoblock.lisp
(file).
special-iteration
(module).
<vanka>
(class).
setup-blocks
(method).
extended-block
(function).
femlisp/special-iteration/geomg.lisp
geoblock.lisp
(file).
special-iteration
(module).
<geometric-cs>
(class).
<geometric-fas>
(class).
<s1-coarse-grid-iterator>
(class).
<s1-reduction>
(class).
fas
(function).
geometric-cs
(function).
make-iterator
(method).
multilevel-decomposition
(method).
multilevel-decomposition
(method).
prolongation
(method).
s1-reduction-amg-solver
(function).
select-smoother
(method).
select-smoother
(method).
select-smoother
(method).
<geometric-mg>
(class).
<local-mg>
(class).
extend-horizontally
(function).
extend-level-matrix
(function).
galerkin-p
(reader method).
local-mg
(function).
solution
(reader method).
(setf solution)
(writer method).
test-geomg
(function).
femlisp/graphic/graphics.lisp
graphics-defp.lisp
(file).
graphic
(module).
*default-graphic-program*
(special variable).
graphic-commands
(generic function).
graphic-file-name
(generic function).
graphic-output
(generic function).
graphic-write-data
(generic function).
images-pathname
(function).
send-graphic-commands
(generic function).
*graphics-lock*
(special variable).
*output-types*
(special variable).
graphic-input-stream
(generic function).
graphic-output-stream
(generic function).
femlisp/graphic/dx.lisp
graphics.lisp
(file).
graphic
(module).
graphic-file-name
(method).
graphic-output
(method).
send-graphic-commands
(method).
*dx-bug-workaround*
(special variable).
*dx-default-window-size*
(special variable).
*dx-name*
(special variable).
*dx-process*
(special variable).
*dx-toggle*
(special variable).
*show-dx-window*
(special variable).
dx-close
(function).
dx-input-stream
(function).
dx-output-stream
(function).
ensure-dx-process
(function).
graphic-input-stream
(method).
handshake-with-dx
(function).
wait-for-dx
(function).
femlisp/graphic/vtk.lisp
graphics.lisp
(file).
graphic
(module).
graphic-file-name
(method).
send-graphic-commands
(method).
femlisp/graphic/gnuplot.lisp
graphics.lisp
(file).
graphic
(module).
graphic-file-name
(method).
send-graphic-commands
(method).
*gnuplot-name*
(special variable).
*gnuplot-process*
(special variable).
ensure-gnuplot-process
(function).
gnuplot-close
(function).
gnuplot-input-stream
(function).
gnuplot-output-stream
(function).
gnuplot-tics
(function).
graphic-input-stream
(method).
wait-for-gnuplot
(function).
femlisp/plot/plot.lisp
plot-defp.lisp
(file).
plot
(module).
plot
(generic function).
*plot*
(special variable).
*plot-transformation*
(special variable).
*position-header*
(special variable).
1d-surface-cells
(function).
compute-all-position-component-values
(function).
compute-all-position-values
(function).
compute-position-indices
(function).
connections
(function).
find-local-index
(function).
(setf find-local-index)
(function).
make-key
(function).
nr-of-refinement-vertices
(function).
position-array
(function).
refcell-refinement-vertex-positions
(function).
refcell-refinement-vertices
(function).
vertex-index-table
(function).
write-positions
(function).
femlisp/plot/plot-dx.lisp
plot.lisp
(file).
plot
(module).
graphic-commands
(method).
graphic-write-data
(method).
*dx-bug-transformation*
(special variable).
*dx-shapes*
(special variable).
dx-position-header
(function).
test-plot-dx
(function).
femlisp/plot/meshplot.lisp
plot-dx.lisp
(file).
plot
(module).
graphic-commands
(method).
graphic-write-data
(method).
graphic-write-data
(method).
plot
(method).
plot
(method).
compute-cell-vertices
(function).
meshplot-position-array
(function).
plot-dimension
(function).
plot-transformation
(function).
test-meshplot
(function).
femlisp/plot/feplot.lisp
meshplot.lisp
(file).
plot
(module).
graphic-output
(method).
plot
(method).
local-evaluation-matrix
(function).
plot-cells
(generic function).
femlisp/plot/coeffplot.lisp
feplot.lisp
(file).
plot
(module).
plot
(method).
test-coeffplot
(function).
femlisp/plot/function-plot.lisp
plot-dx.lisp
(file).
plot
(module).
plot
(method).
test-function-plot
(function).
femlisp/plot/asaplot.lisp
plot-dx.lisp
(file).
plot
(module).
graphic-commands
(method).
graphic-write-data
(method).
plot
(method).
femlisp/plot/plot-gnuplot.lisp
plot.lisp
(file).
plot
(module).
graphic-commands
(method).
graphic-commands
(method).
graphic-write-data
(method).
graphic-write-data
(method).
plot
(method).
plot
(method).
plot
(method).
plot
(method).
destructure-polygon
(function).
ensure-polygons
(function).
test-plot-gnuplot
(function).
femlisp/plot/plot-vtk.lisp
plot.lisp
(file).
plot
(module).
graphic-write-data
(method).
write-vtk-positions
(function).
femlisp/strategy/strategy.lisp
strategy-defp.lisp
(file).
strategy
(module).
<strategy>
(class).
solve
(method).
femlisp/strategy/strategy-utilities.lisp
strategy.lisp
(file).
strategy
(module).
update-i-p-sol
(function).
femlisp/strategy/error-estimator.lisp
strategy-utilities.lisp
(file).
strategy
(module).
<duality-error-estimator>
(class).
<projection-error-estimator>
(class).
estimate
(generic function).
<difference-with-projection>
(class).
<error-estimator>
(class).
<global-and-local-norm>
(class).
<global-norm>
(class).
<local-test-with-dual>
(class).
<setup-enriched-ansatz-space>
(class).
<solve-dual-problem>
(class).
<standard-error-estimator>
(class).
compute-error-approximant
(generic function).
compute-local-estimate
(generic function).
compute-weight-function
(generic function).
eta->p2-vec
(function).
functional
(reader method).
(setf functional)
(writer method).
global-estimate
(generic function).
local-estimate
(generic function).
test-error-estimator
(function).
femlisp/strategy/error-indicator.lisp
strategy-utilities.lisp
(file).
strategy
(module).
<cell-rule-indicator>
(class).
<largest-eta-indicator>
(class).
<refinement-indicator>
(class).
<uniform-refinement-indicator>
(class).
indicate
(generic function).
top-level
(reader method).
*cell->error*
(special variable).
*cell->error-rank*
(special variable).
*pivot-max-error*
(special variable).
<isotropizing-indicator>
(class).
block-p
(reader method).
cell-rule
(generic function).
ensure-mesh-quality-p
(reader method).
fraction
(reader method).
from-level
(reader method).
pivot-factor
(reader method).
test-error-indicator
(function).
femlisp/strategy/fe-approximation.lisp
strategy.lisp
(file).
strategy-utilities.lisp
(file).
error-estimator.lisp
(file).
error-indicator.lisp
(file).
strategy
(module).
*eta-observe*
(special variable).
*fe-approximation-observe*
(special variable).
*nr-of-cells-observe*
(special variable).
*nr-of-dofs-observe*
(special variable).
<fe-approximation>
(class).
fe-class
(reader method).
initially
(method).
intermediate
(method).
next-step
(method).
point-observe
(function).
terminate-p
(method).
*u_1/4-observe*
(special variable).
approximate
(generic function).
ensure-ansatz-space
(function).
femlisp/strategy/fe-interpolation.lisp
fe-approximation.lisp
(file).
strategy
(module).
<fe-interpolation>
(class).
approximate
(method).
test-fe-interpolation
(function).
femlisp/strategy/fe-stationary.lisp
fe-approximation.lisp
(file).
strategy
(module).
*mentries-observe*
(special variable).
*stationary-fe-strategy-observe*
(special variable).
<stationary-fe-strategy>
(class).
select-solver
(method).
approximate
(method).
test-fe-stationary
(function).
femlisp/strategy/fe-evp.lisp
fe-stationary.lisp
(file).
strategy
(module).
<fe-evp-strategy>
(class).
approximate
(method).
femlisp/strategy/rothe.lisp
fe-stationary.lisp
(file).
strategy
(module).
*model-time-observe*
(special variable).
*rothe-observe*
(special variable).
<rothe>
(class).
initialize-instance
(method).
initially
(method).
intermediate
(method).
next-step
(method).
select-solver
(method).
call-with-ivip
(generic function).
call-with-time-step-problem
(generic function).
forced-times
(reader method).
initial-value-interpolation-problem
(generic function).
maximal-time-step
(reader method).
minimal-time-step
(reader method).
model-time
(reader method).
old-time-step
(reader method).
test-rothe
(function).
time-step
(reader method).
time-step-problem
(generic function).
time-stepping-scheme
(reader method).
with-ivip
(macro).
with-time-step-problem
(macro).
femlisp/strategy/rothe-ellsys.lisp
rothe.lisp
(file).
strategy
(module).
calculate-multistep-weights
(function).
call-with-ivip
(method).
call-with-time-step-problem
(method).
ellsys-initial-value-interpolation-coefficients
(function).
ellsys-time-step-coefficients
(function).
test-rothe-ellsys
(function).
femlisp/strategy/gps.lisp
fe-stationary.lisp
(file).
strategy
(module).
select-linear-solver
(method).
select-linear-solver
(method).
select-linear-solver
(method).
solve
(method).
select-estimator
(generic function).
select-indicator
(generic function).
femlisp/applications/domains/domains-defp.lisp
domains
(module).
femlisp/applications/domains/circle-ring-domain.lisp
domains-defp.lisp
(file).
domains
(module).
circle-ring-domain
(function).
cylinder-domain
(function).
flat-disk-domain
(function).
linear-interpolate
(function).
polar->rect
(function).
test-circle-ring-domain
(function).
triangle-mapping
(function).
zap-to-unit-vectors
(function).
femlisp/applications/domains/bl-cell.lisp
domains-defp.lisp
(file).
domains
(module).
bl-patch-on-artificial-boundary
(function).
bl-patch-on-lower-boundary
(function).
bl-patch-on-upper-boundary
(function).
oscillating-boundary-domain
(function).
sinusoidal-bl-cell
(function).
spline-interpolated-bl-cell
(function).
bottom-mapping
(function).
boundary-layer-cell-domain
(function).
test-bl-cell
(function).
xsinx-bl-cell
(function).
femlisp/applications/domains/hole-domain.lisp
domains-defp.lisp
(file).
domains
(module).
n-cell-with-ball-hole
(function).
n-cell-with-cubic-hole
(function).
n-cell-with-ellipsoidal-hole
(function).
n-cube-with-ball-hole
(function).
n-cube-with-cubic-hole
(function).
n-cube-with-ellipsoidal-hole
(function).
patch-on-inner-boundary-p
(function).
patch-on-n-cube-boundary-p
(function).
test-hole-domain
(function).
femlisp/applications/domains/inlay-domain.lisp
hole-domain.lisp
(file).
domains
(module).
n-cell-with-ball-inlay
(function).
n-cell-with-cubic-inlay
(function).
n-cube-with-ball-inlay
(function).
n-cube-with-cubic-inlay
(function).
patch-in-inlay-p
(function).
test-inlay-domain
(function).
femlisp/applications/application-defp.lisp
domains
(module).
applications
(module).
femlisp/applications/app-utils.lisp
application-defp.lisp
(file).
applications
(module).
*result*
(special variable).
^
(function).
correction-tensor
(function).
effective-tensor
(function).
storing
(macro).
average-coefficient
(function).
convert-elasticity-correction
(function).
m+-nil-reducer
(function).
plot-diffusion
(function).
femlisp/applications/demos/application-demos.lisp
demos
(module).
*articles-demo*
(special variable).
*boundary-coeffs-demo*
(special variable).
*equation-demo*
(special variable).
*interior-coeffs-demo*
(special variable).
*adaptivity-demo*
(special variable).
*books-demo*
(special variable).
*courses-demo*
(special variable).
*discretization-demo*
(special variable).
*effective-coeffs-demo*
(special variable).
*eigenvalue-demo*
(special variable).
*refinement-demos*
(special variable).
*solver-demo*
(special variable).
*talks-demo*
(special variable).
femlisp/applications/demos/discretization-demos.lisp
application-demos.lisp
(file).
demos
(module).
1d-graph
(function).
display-stiffness-matrix
(function).
make-lagrange-basis-demo
(function).
make-stiffness-matrix-demo
(function).
model-problem-stiffness-matrix
(function).
plot-lagrange-basis
(function).
femlisp/applications/demos/multigrid-demos.lisp
application-demos.lisp
(file).
demos
(module).
*multigrid-demo*
(special variable).
bpx-demo-computation
(function).
make-bpx-demo
(function).
make-plot-iteration-behavior-demo
(function).
make-smoother-demo
(function).
make-smoother-performance-graph-demo
(function).
make-two-grid-behavior-demo
(function).
plot-iteration-behavior
(function).
smoother-demo-execute
(function).
smoother-graph-execute
(function).
smoother-performance-test
(function).
test-multigrid-demos
(function).
femlisp/applications/demos/refinement-demos.lisp
application-demos.lisp
(file).
demos
(module).
*skew-4d-to-3d*
(special variable).
create-refinement-demo
(function).
femlisp/applications/demos/problem-demos.lisp
application-demos.lisp
(file).
demos
(module).
*cdr-demo*
(special variable).
*elasticity-demo*
(special variable).
*heat-demo*
(special variable).
*laplace-demo*
(special variable).
femlisp/applications/cdr/tools.lisp
cdr
(module).
check-h-convergence
(function).
check-p-convergence
(function).
iteration-test
(function).
model-problem-discretization
(function).
problem-discretization
(function).
solve-laplace
(function).
femlisp/applications/cdr/model-problem.lisp
tools.lisp
(file).
cdr
(module).
exact-1d-solution
(function).
exact-2d-solution
(function).
exact-3d-solution
(function).
make-model-problem-demo
(function).
model-problem-computation
(function).
test-laplace-model-problem
(function).
femlisp/applications/cdr/unstructured.lisp
tools.lisp
(file).
cdr
(module).
further-laplace-tests
(function).
femlisp/applications/cdr/locref.lisp
tools.lisp
(file).
cdr
(module).
cell-dimension-and-point-test
(function).
laplace-model-problem-locally-refined
(function).
test-refined-laplace-problem
(function).
femlisp/applications/cdr/hom-cdr.lisp
tools.lisp
(file).
cdr
(module).
*effective-diffusion-demo*
(special variable).
ball-diffusion
(function).
cdr-cell-problem
(function).
cdr-interior-effective-coeff-demo
(function).
cell-solve
(function).
chequerboard-problem
(function).
hom-cdr-tests
(function).
inlay-cell-problem
(function).
make-effective-diffusion-inlay-domain-demo
(function).
make-effective-diffusion-porous-domain-demo
(function).
porous-cell-problem
(function).
simple-ball-inlay-cell-problem
(function).
simple-square-inlay-cell-problem
(function).
smooth-coefficient-cell-problem
(function).
femlisp/applications/cdr/bl-cdr.lisp
cdr
(module).
*cbl-observe*
(special variable).
boundary-layer-cell-problem
(function).
cdr-bl-computation
(function).
compute-cbl
(function).
make-cdr-bl-demo
(function).
sinusoidal-boundary-layer-cell-problem
(function).
test-bl-cdr
(function).
femlisp/applications/cdr/mg-cdr.lisp
cdr
(module).
mg-cdr-tests
(function).
test-v-cycle-convergence
(function).
femlisp/applications/cdr/amg-cdr.lisp
tools.lisp
(file).
cdr
(module).
*amg-cdr-demo*
(special variable).
amg-cdr-solver
(function).
test-amg-cdr
(function).
femlisp/applications/cdr/bratu.lisp
cdr
(module).
*u_1/2-observe*
(special variable).
bratu-computation
(function).
bratu-tests
(function).
make-bratu-demo
(function).
femlisp/applications/cdr/evp-cdr.lisp
cdr
(module).
evp-cdr-test
(function).
laplace-eigenvalue-computation
(function).
make-laplace-eigenvalue-demo
(function).
femlisp/applications/cdr/heat.lisp
cdr
(module).
heat-equation-computation
(function).
make-heat-equation-demo
(function).
test-heat-equation
(function).
femlisp/applications/cdr/sturm.lisp
cdr
(module).
install-electromagnetic-potential-demo
(function).
solve-sturm-problem
(function).
sturm-domain
(function).
sturm-mesh
(function).
sturm-problem
(function).
test-sturm
(function).
femlisp/applications/elasticity/model-problem.lisp
elasticity
(module).
elasticity-model-problem-computation
(function).
make-elasticity-model-problem-demo
(function).
test-elasticity-model-problem
(function).
femlisp/applications/elasticity/elahom.lisp
elasticity
(module).
*effective-elasticity-demo*
(special variable).
elasticity-cell-problem-gamma
(function).
elasticity-cell-problem-reaction
(function).
elasticity-inlay-cell-problem
(function).
elasticity-interior-effective-coeff-demo
(function).
inlay-block-decomposition
(function).
make-effective-elasticity-inlay-domain-demo
(function).
make-effective-elasticity-porous-domain-demo
(function).
mconvert
(function).
test-homogenization-elasticity
(function).
femlisp/applications/elasticity/elahom-performance.lisp
elahom.lisp
(file).
elasticity
(module).
elahom-longtime-stability-test
(function).
elahom-performance-calculation
(function).
elahom-performance-initialize
(function).
elahom-performance-test
(function).
elahom-performance-tests
(function).
femlisp/applications/articles/schaefer-turek-1996.lisp
articles
(module).
*nabh-cd*
(special variable).
*nabh-cl*
(special variable).
benchmark-calculation
(function).
benchmark-domain
(function).
benchmark-problem
(function).
classify-benchmark-domain
(function).
inflow-velocity
(function).
make-stationary-schaefer-turek-demo
(function).
schaefer-turek-observe
(function).
st-cylinder
(function).
st-cylinder-boundary-p
(function).
test-schaefer-turek
(function).
femlisp/applications/articles/heuveline-rannacher-2003.lisp
articles
(module).
*hr-delta*
(special variable).
*hr-evaluation-point*
(special variable).
*hr-gradx-value*
(special variable).
heuveline-rannacher-computation
(function).
heuveline-rannacher-domain
(function).
heuveline-rannacher-dual-problem
(function).
heuveline-rannacher-dual-problem-fe-rhs
(function).
heuveline-rannacher-dual-problem-rhs
(function).
heuveline-rannacher-problem
(function).
heuveline-rannacher-rhs
(function).
make-heuveline-rannacher-demo
(function).
test-heuveline-rannacher
(function).
femlisp/applications/articles/heisig-neuss-2017.lisp
articles
(module).
*heisig-neuss-2017-demo*
(special variable).
*konwihr-initialized*
(special variable).
heisig-neuss-2017-demo
(function).
initialize-konwihr-paper-calculation
(function).
konwihr-paper-max-levels
(function).
konwihr-speed
(function).
*konwihr-speed*
(special variable).
initialize-elahom-calculation
(function).
konwihr-demo
(function).
femlisp/applications/talks/effcoeff.lisp
talks
(module).
*effcoeff-root*
(special variable).
femlisp/applications/regression-tests.lisp
application-defp.lisp
(file).
demos
(module).
applications
(module).
regression-test-femlisp
(function).
femlisp/finalize.lisp
applications
(module).
femlisp
(system).
femlisp-banner
(function).
femlisp-herald
(function).
femlisp-check-features
(function).
femlisp-restart
(function).
femlisp-version
(function).
message
(function).
femlisp-basic/config/setup.lisp
config
(module).
*femlisp-version*
(special variable).
femlisp-pathname
(function).
*femlisp-directory*
(special variable).
*femlisp-pathname*
(special variable).
femlisp-basic/config/femlisp-config.lisp
setup.lisp
(file).
config
(module).
*blas-library*
(special variable).
*dx-path*
(special variable).
*gnuplot-path*
(special variable).
*images-directory*
(special variable).
*lapack-library*
(special variable).
*meshes-directory*
(special variable).
*superlu-library*
(special variable).
*tetgen-path*
(special variable).
*umfpack-library*
(special variable).
*triangle-path*
(special variable).
femlisp-basic/basic/debug.lisp
basic
(module).
*dbg-ids*
(special variable).
*error-for-debug-output*
(special variable).
femlisp-basic/basic/tests.lisp
basic
(module).
adjoin-test
(function).
remove-test
(function).
small-test
(macro).
test-femlisp
(function).
*bugs*
(special variable).
*failed*
(special variable).
*small-tests*
(special variable).
*testing*
(special variable).
*tests*
(special variable).
adjoin-bug-test
(function).
adjoin-test-suite
(function).
clear-bug-tests
(function).
clear-tests
(function).
test-function
(function).
femlisp-basic/basic/patches.lisp
basic
(module).
make-hash-table
(function).
femlisp-basic/basic/macros.lisp
basic
(module).
*usually*
(special variable).
?1
(macro).
?2
(macro).
?3
(macro).
?4
(macro).
?5
(macro).
?6
(macro).
_
(macro).
_f
(macro).
aand
(macro).
acond
(macro).
aif
(macro).
awhen
(macro).
bif
(macro).
definline
(macro).
deletef
(macro).
echo
(macro).
ensure
(macro).
fluid-let
(macro).
gencase
(macro).
inlining
(macro).
lret
(macro).
lret*
(macro).
multi-dotimes
(macro).
multi-for
(macro).
multiple-defgen
(macro).
named-let
(macro).
once-only
(macro).
quickly
(macro).
quickly-if
(macro).
remove-this-method
(macro).
show-call
(macro).
slowly
(macro).
stringcase
(macro).
symbol-macroletf
(macro).
symconc
(function).
usually-quickly
(macro).
very-quickly
(macro).
whereas
(macro).
with-arrays
(macro).
with-gensyms
(macro).
awhile
(macro).
chain
(macro).
collecting
(macro).
delay
(macro).
force
(generic function).
in-syntax
(macro).
short-remove-method
(macro).
symbol-macroletf-helper
(macro).
(setf symbol-macroletf-helper)
(setf expander).
test-macros
(function).
with-array
(macro).
femlisp-basic/basic/port.lisp
debug.lisp
(file).
basic
(module).
add-exit-hook
(function).
compile-and-eval
(function).
compile-silently
(function).
convert-type
(function).
def-function
(macro).
dynamic-space-size
(function).
finalize
(function).
find-executable
(function).
find-shared-library
(function).
foreign-call
(function).
gc
(function).
getenv
(function).
hostname
(function).
kill-process
(function).
load-foreign-library
(function).
make-weak-pointer
(function).
portability-warning
(function).
process-close
(function).
process-error
(function).
process-exit-code
(function).
process-input
(function).
process-output
(function).
process-status
(function).
run-program
(function).
run-program-output
(function).
run-program-report-errors
(function).
runtime-compile
(function).
save-femlisp-core-and-die
(function).
simplified-def-function
(macro).
system-namestring
(function).
unix-chdir
(function).
vector-sap
(function).
weak-pointer-value
(function).
without-gcing
(macro).
*portability-problem-handling*
(special variable).
execute-thunk-with-pinned-objects
(function).
foreign-convert
(function).
memory-usage
(function).
process-wait
(function).
quit
(function).
test-port
(function).
femlisp-basic/basic/utilities-defp.lisp
patches.lisp
(file).
macros.lisp
(file).
debug.lisp
(file).
basic
(module).
femlisp-basic/basic/utilities.lisp
utilities-defp.lisp
(file).
macros.lisp
(file).
tests.lisp
(file).
basic
(module).
array-for-each
(function).
blackboard
(function).
blackboard
(class).
box
(function).
check-properties
(function).
compose
(function).
compose-2
(generic function).
constant-vector
(function).
copy-hash-table
(function).
copy-slots
(generic function).
curry
(function).
dequeue
(generic function).
dequeue-all
(generic function).
describe-object
(method).
display-ht
(function).
dli-object
(reader).
(setf dli-object)
(writer).
dli-pred
(reader).
(setf dli-pred)
(writer).
dli-succ
(reader).
(setf dli-succ)
(writer).
dll
(class).
dll->list
(function).
dll-empty-p
(function).
dll-find
(function).
dll-first
(reader method).
(setf dll-first)
(writer method).
dll-for-each
(function).
dll-front-insert
(function).
dll-item
(structure).
dll-last
(reader method).
(setf dll-last)
(writer method).
dll-peek-first
(function).
dll-peek-last
(function).
dll-pop-first
(function).
dll-pop-last
(function).
dll-rear-insert
(function).
dll-remove
(function).
dll-remove-item
(function).
dohash
(macro).
dotuple
(macro).
emptyp
(generic function).
enqueue
(generic function).
evaluate
(generic function).
factorial
(function).
filter
(function).
filter-if
(function).
find-leaf
(function).
find-leaf-if
(function).
find-subtree
(function).
find-subtree-if
(function).
first-only
(function).
fixnum-vec
(function).
fixnum-vec
(type).
flatten
(function).
flatten-1
(function).
for-each
(generic function).
for-each-tuple
(function).
(setf geta)
(setf expander).
geta
(function).
getbb
(function).
(setf getbb)
(function).
group-by
(function).
hash-table->alist
(function).
hash-table-keys
(function).
hash-table-values
(function).
identity-permutation-p
(function).
iterator
(generic function).
iterator-end-p
(generic function).
iterator-next
(generic function).
k->l-subsets
(function).
k-subsets
(function).
kmgt
(function).
list->dll
(function).
list->queue
(function).
loop+
(macro).
make-dll
(function).
make-double-float-array
(function).
make-filled-array
(function).
make-fixnum-vec
(function).
map-hash-table
(function).
map-list-in-hash-table
(function).
map-product
(function).
map-tree
(function).
mapf
(macro).
mappend
(function).
mapper-collect
(function).
mapper-count
(function).
mapper-every
(function).
mapper-select-first
(function).
mapper-some
(function).
mapper-sum
(function).
maximally-connected
(function).
memoize-1
(function).
memoize-expr
(macro).
memoize-symbol
(function).
mklist
(function).
modify
(function).
n-partitions-of-k
(function).
nonempty-subsets
(function).
on-leaves
(function).
on-subtrees
(function).
ordered-intersection
(function).
ordered-set-difference
(function).
ordered-union
(function).
partial-sums
(function).
permutation-inverse
(function).
permutation-p
(function).
permutation-shifted-inverse
(function).
permutation-signum
(function).
permute
(function).
permute-into
(function).
positive-fixnum
(type).
positive-n-partitions-of-k
(function).
positive-partitions-of-k
(function).
queue->list
(function).
range
(function).
range
(class).
range<
(function).
range<=
(function).
rcurry
(function).
reference
(generic function).
(setf reference)
(generic function).
required-argument
(function).
safe-sort
(function).
samep
(function).
sans
(function).
set-equal
(function).
set-p
(function).
single?
(function).
split-by-length
(function).
square
(function).
subsets
(function).
take
(function).
thrice
(function).
transfer-bb
(function).
translate
(function).
tree-uniform-number-of-branches
(function).
tree-uniformp
(function).
twice
(function).
unbox
(function).
(setf unbox)
(function).
vector-cut
(function).
vector-last
(function).
(setf vector-last)
(function).
vector-map
(function).
with-items
(macro).
xor
(function).
zero-vector
(function).
*local-evaluation-memoization-table*
(special variable).
array-contents
(function).
binomial
(function).
copy-dll-item
(function).
dll-check-consistency
(function).
dll-item-p
(function).
head
(reader method).
(setf head)
(writer method).
make-dll-item
(function).
queue
(class).
tail
(reader method).
(setf tail)
(writer method).
test-utilities
(function).
undisplace-array
(function).
femlisp-basic/basic/amop.lisp
debug.lisp
(file).
port.lisp
(file).
utilities.lisp
(file).
basic
(module).
def-fgf
(macro).
def-sealable-class
(macro).
find-programmatic-class
(function).
make-programmatic-instance
(function).
remove-subclass-methods
(function).
test-amop
(function).
femlisp-basic/basic/mflop.lisp
debug.lisp
(file).
utilities.lisp
(file).
basic
(module).
common-lisp-speed
(function).
measure-time
(function).
measure-time-for-block
(macro).
*mflop-delta*
(special variable).
+n-long+
(constant).
+n-short+
(constant).
daxpy
(function).
daxpy-speed
(function).
ddot
(function).
measure-time-repeated
(function).
test-mflop
(function).
femlisp-basic/basic/general.lisp
amop.lisp
(file).
utilities-defp.lisp
(file).
basic
(module).
add-hook
(function).
call-hooks
(function).
concept-documentation
(function).
file-documentation
(function).
get-property
(function).
(setf get-property)
(function).
make-analog
(generic function).
properties
(reader method).
(setf properties)
(writer method).
property-mixin
(class).
shared-initialize
(method).
slot-missing
(method).
slot-missing
(method).
slot-missing
(method).
slot-missing
(method).
*hooks*
(special variable).
check
(generic function).
test-general
(function).
femlisp-basic/basic/demo.lisp
tests.lisp
(file).
mflop.lisp
(file).
macros.lisp
(file).
utilities.lisp
(file).
basic
(module).
*demo-root*
(special variable).
*demo-time*
(special variable).
adjoin-demo
(function).
extract-demo-strings
(function).
femlisp-demo
(function).
find-demo
(function).
leaves
(reader method).
(setf leaves)
(writer method).
make-demo
(function).
remove-demo
(function).
test-all-demos
(function).
user-input
(function).
user-input-textfield
(function).
*demo-help*
(special variable).
*user-input-stream*
(special variable).
*visited-demos*
(special variable).
<demo>
(class).
execute
(reader method).
(setf execute)
(writer method).
fuzzy-match-strings
(function).
match-input
(function).
name
(reader method).
(setf name)
(writer method).
show-demo
(function).
test-demo
(function).
update-demo-status
(function).
femlisp-parallel/parallel/parallel-defp.lisp
parallel
(module).
femlisp-parallel/parallel/parallel.lisp
parallel-defp.lisp
(file).
parallel
(module).
new-kernel
(function).
p-map
(function).
pwork
(function).
terminate-kernel
(function).
worker-count
(function).
worker-index
(function).
workers-available-p
(function).
*cachesize*
(special variable).
*set-affinity-p*
(special variable).
allowed-processors
(function).
calculate-effective-cachesize
(function).
get-cachesize
(function).
get-cpuinfo
(function).
get-processors
(function).
get-workers
(function).
make-procinfo
(function).
pi-core
(function).
(setf pi-core)
(function).
pi-cpu
(function).
(setf pi-cpu)
(function).
pi-node
(function).
(setf pi-node)
(function).
pi-socket
(function).
(setf pi-socket)
(function).
test-femlisp-parallel
(function).
thread-local-memoization-pool
(function).
thread-local-memoize
(function).
femlisp-parallel/parallel/mutex.lisp
parallel-defp.lisp
(file).
parallel
(module).
accessing-exclusively
(macro).
accessing-exclusively-without-gcing
(macro).
mutex-object
(class).
mutex-wrap
(function).
with-mutex
(macro).
femlisp-parallel/parallel/parallel-adaptions.lisp
parallel.lisp
(file).
parallel
(module).
with-accumulators
(macro).
with-workers
(macro).
call-with-workers
(function).
test-parallel-adaptions
(function).
femlisp-parallel/parallel/multiprocessing.lisp
parallel-adaptions.lisp
(file).
parallel
(module).
dbg
(method).
dequeue
(method).
enqueue
(method).
locked-region-mixin
(class).
mp-dbg
(function).
mutex-mixin
(class).
parqueue
(class).
waitqueue-mixin
(class).
with-atomic-output
(macro).
with-femlisp-workers
(macro).
with-mutual-exclusion
(macro).
with-region
(macro).
*debug-lock*
(special variable).
*distribute-workload-p*
(special variable).
*input-queue*
(special variable).
*number-of-threads*
(special variable).
*output-queue*
(special variable).
*pipeline-length*
(special variable).
*print-lock*
(special variable).
add-pipeline-worker
(function).
add-worker
(function).
execute-in-parallel
(function).
execute-in-pipeline
(function).
femlisp-multiprocessing-tests
(function).
femlisp-workers
(function).
finish
(generic function).
finished-p
(reader method).
(setf finished-p)
(writer method).
hand-over
(function).
histogram
(function).
lock-region
(function).
locked-region
(reader method).
mandelbrot-box
(function).
mandelbrot-iteration
(function).
mutex
(method).
mutex
(reader method).
notify
(generic function).
optimal-thread-number
(function).
perform-with-locked-region
(generic function).
remove-worker
(function).
send-task
(function).
simple-consing
(function).
speedup-test
(function).
tasks
(reader method).
terminate-workers
(function).
threads
(reader method).
(setf threads)
(writer method).
unlock-region
(function).
wait
(generic function).
waitqueue
(reader method).
work
(reader method).
work-group
(class).
femlisp-matlisp/alien/alien.lisp
alien
(module).
*foreign-code-loaders*
(special variable).
*zero-vector*
(special variable).
direct-solver-test
(function).
enumerate
(macro).
load-blas-library
(function).
load-lapack-library
(function).
load-superlu-library
(function).
load-umfpack-library
(function).
reload-foreign-code
(function).
when-foreign-vector-operations
(macro).
femlisp-matlisp/alien/alienc.lisp
alien.lisp
(file).
alien
(module).
test-alienc
(function).
femlisp-matlisp/alien/lapack.lisp
alien.lisp
(file).
alien
(module).
call-lapack
(function).
call-lapack-macro
(macro).
call-lapack-with-error-test
(function).
call-lapack-with-error-test-macro
(macro).
cl->lapack-type
(function).
lapack
(function).
lapack-available-p
(function).
*hegv*
(special variable).
*lapack-templates*
(special variable).
*lapack-types*
(special variable).
*nrm2*
(special variable).
*underscore-p*
(special variable).
base-type
(function).
check-spec
(function).
convert-to-alien-type
(function).
create-lapack-function
(function).
define-lapack-template
(macro).
ensure-lapack-type
(function).
extract-applicable-spec
(function).
insert-lapack-template
(function).
lapack-convert
(generic function).
lapack-external-name
(function).
lapack-lisp-name
(function).
lapack-type-p
(function).
number-type
(function).
remove-all-lapack-functions
(function).
test-lapack
(function).
translate-types
(function).
femlisp-matlisp/alien/superlu.lisp
alien.lisp
(file).
alien
(module).
test-superlu
(function).
femlisp-matlisp/alien/umfpack.lisp
alien.lisp
(file).
alien
(module).
test-umfpack
(function).
femlisp-matlisp/matlisp/matlisp-defp.lisp
matlisp
(module).
femlisp-matlisp/matlisp/ctypes.lisp
matlisp-defp.lisp
(file).
matlisp
(module).
double-vec
(function).
double-vec
(type).
int-vec
(function).
int-vec
(type).
make-double-vec
(function).
make-int-vec
(function).
make-uint-vec
(function).
number-coercer
(function).
uint
(type).
uint-vec
(function).
uint-vec
(type).
unit-vector
(function).
vector-of
(function).
canonical-number-type
(function).
equal-type
(function).
int
(type).
femlisp-matlisp/matlisp/vector.lisp
matlisp-defp.lisp
(file).
matlisp
(module).
*mzerop-threshold*
(special variable).
<vector>
(class).
average
(function).
axpy
(generic function).
axpy!
(generic function).
copy
(generic function).
copy!
(generic function).
dot
(generic function).
dot-abs
(generic function).
dovec
(macro).
element-type
(generic function).
entries
(generic function).
fill!
(generic function).
fill-random!
(generic function).
for-each-entry
(generic function).
for-each-entry-and-key
(generic function).
for-each-entry-and-vector-index
(generic function).
for-each-key
(generic function).
l2-norm
(generic function).
linf-norm
(generic function).
lp-norm
(generic function).
m+
(generic function).
m+!
(generic function).
m-
(function).
m-!
(function).
m.*
(function).
mat-diff
(generic function).
mequalp
(generic function).
multiplicity
(generic function).
mzerop
(generic function).
norm
(generic function).
normalize
(function).
normalize!
(function).
nr-of-entries
(generic function).
rank
(generic function).
scal
(function).
scal!
(generic function).
scalar-type
(generic function).
total-entries
(generic function).
vlength
(generic function).
vref
(generic function).
(setf vref)
(generic function).
x<-0
(function).
m.*!
(generic function).
test-vector
(function).
femlisp-matlisp/matlisp/vector-methods.lisp
vector.lisp
(file).
matlisp
(module).
axpy
(method).
axpy
(method).
axpy!
(method).
copy
(method).
copy!
(method).
dot
(method).
dot
(method).
dot
(method).
dot-abs
(method).
element-type
(method).
entries
(method).
entries
(method).
entries
(method).
fill!
(method).
fill-random!
(method).
for-each-entry
(method).
for-each-entry-and-vector-index
(method).
for-each-key
(method).
keys
(method).
l2-norm
(method).
linf-norm
(method).
lp-norm
(method).
m+
(method).
m+
(method).
m+!
(method).
mequalp
(method).
multiplicity
(method).
mzerop
(method).
norm
(method).
nr-of-entries
(method).
rank
(method).
scal!
(method).
scalar-type
(method).
total-entries
(method).
test-vector-methods
(function).
femlisp-matlisp/matlisp/blas-basic.lisp
vector.lisp
(file).
vector-methods.lisp
(file).
matlisp
(module).
*blas-macro-table*
(special variable).
*test-blas-vector-generator*
(special variable).
blas-macro
(generic function).
complex-type
(function).
define-blas-macro
(function).
define-blas-template
(macro).
float-accuracy
(function).
float-type-union
(function).
new-blas-method-code
(function).
new-dispatcher-code
(function).
test-blas
(function).
test-blas-basic
(function).
femlisp-matlisp/matlisp/store-vector.lisp
ctypes.lisp
(file).
blas-basic.lisp
(file).
matlisp
(module).
axpy!
(method).
copy!
(method).
dot
(method).
dot-abs
(method).
fill!
(method).
fill-random!
(method).
m+!
(method).
mequalp
(method).
scal!
(method).
shared-initialize
(method).
store
(reader method).
store-vector
(function).
store-vector
(class).
vref
(method).
(setf vref)
(method).
m.*!
(method).
number-super-type
(function).
static-store-vector
(class).
store-vector-generator
(function).
symbol-store
(function).
test-store-vector-blas
(function).
uniform-number-type
(function).
femlisp-matlisp/matlisp/matrix.lisp
vector.lisp
(file).
vector-methods.lisp
(file).
matlisp
(module).
<matrix>
(class).
<submatrix>
(class).
area-of-span
(function).
col-keys
(generic function).
det
(generic function).
diagonal
(generic function).
display
(generic function).
docol
(macro).
docols
(macro).
dorow
(macro).
dorows
(macro).
for-each-col-key
(generic function).
for-each-entry-in-col
(generic function).
for-each-entry-in-row
(generic function).
for-each-key-and-entry-in-col
(generic function).
for-each-key-and-entry-in-row
(generic function).
for-each-key-in-col
(generic function).
for-each-key-in-row
(generic function).
for-each-row-key
(generic function).
gemm
(function).
gemm!
(function).
gemm-nn!
(generic function).
gemm-nt!
(generic function).
gemm-tn!
(generic function).
gemm-tt!
(generic function).
gesv
(function).
gesv!
(generic function).
getrf
(function).
getrf!
(generic function).
getrs
(function).
getrs!
(generic function).
join
(function).
join-horizontal!
(generic function).
join-instance
(generic function).
join-vertical!
(generic function).
keys-of-column
(generic function).
keys-of-row
(generic function).
m*
(generic function).
m*-nt
(generic function).
m*-product-instance
(generic function).
m*-tn
(generic function).
m*-tn-product-instance
(generic function).
make-domain-vector-for
(generic function).
make-image-vector-for
(generic function).
mat-diff
(method).
matrix-slice
(generic function).
matrix-transpose-instance
(generic function).
mextract!
(generic function).
midentity-p
(generic function).
minject!
(generic function).
mref
(generic function).
(setf mref)
(generic function).
msquare-p
(generic function).
msymmetric-p
(generic function).
ncols
(generic function).
nrows
(generic function).
row-keys
(generic function).
show
(generic function).
standard-matrix
(class).
submatrix
(generic function).
transpose
(generic function).
transpose!
(generic function).
vector-slice
(generic function).
extended-mclear!
(generic function).
extended-minject!
(generic function).
m*-nt-product-instance
(generic function).
print-matlab-format
(generic function).
read-matrix
(generic function).
femlisp-matlisp/matlisp/matrix-methods.lisp
matrix.lisp
(file).
matlisp
(module).
for-each-col-key
(method).
for-each-entry-and-key
(method).
for-each-entry-and-key
(method).
for-each-entry-and-vector-index
(method).
for-each-row-key
(method).
gemm-nn!
(method).
gemm-nt!
(method).
gemm-tn!
(method).
gemm-tt!
(method).
m*
(method).
m*-nt
(method).
m*-tn
(method).
mref
(method).
mref
(method).
mref
(method).
mref
(method).
mref
(method).
mref
(method).
(setf mref)
(method).
(setf mref)
(method).
(setf mref)
(method).
(setf mref)
(method).
(setf mref)
(method).
msquare-p
(method).
msymmetric-p
(method).
multiplicity
(method).
ncols
(method).
ncols
(method).
nrows
(method).
nrows
(method).
vref
(method).
vref
(method).
(setf vref)
(method).
(setf vref)
(method).
define-default-gemm!
(macro).
femlisp-matlisp/matlisp/number-blas.lisp
matrix.lisp
(file).
blas-basic.lisp
(file).
matlisp
(module).
axpy!
(method).
copy
(method).
copy!
(method).
dot
(method).
dot-abs
(method).
fill-random!
(method).
for-each-entry
(method).
gemm-nn!
(method).
getrf!
(method).
getrs!
(method).
l2-norm
(method).
linf-norm
(method).
lp-norm
(method).
m*
(method).
m+
(method).
m+!
(method).
make-analog
(method).
mequalp
(method).
multiplicity
(method).
mzerop
(method).
ncols
(method).
nrows
(method).
scal!
(method).
total-entries
(method).
vref
(method).
test-number-blas
(function).
femlisp-matlisp/matlisp/array-blas.lisp
matrix.lisp
(file).
ctypes.lisp
(file).
number-blas.lisp
(file).
matlisp
(module).
axpy!
(method).
copy
(method).
copy
(method).
copy
(method).
copy!
(method).
element-type
(method).
fill!
(method).
fill-random!
(method).
for-each-entry
(method).
for-each-entry
(method).
for-each-entry-and-key
(method).
for-each-entry-and-key
(method).
for-each-entry-and-key
(method).
for-each-entry-and-vector-index
(method).
for-each-entry-and-vector-index
(method).
for-each-key
(method).
for-each-key
(method).
join-instance
(method).
m-incf
(macro).
minject!
(method).
mref
(method).
(setf mref)
(method).
multiplicity
(method).
ncols
(method).
nrows
(method).
scal!
(method).
scal!
(method).
scalar-type
(method).
store
(method).
vlength
(method).
vref
(method).
vref
(method).
vref
(method).
(setf vref)
(method).
(setf vref)
(method).
(setf vref)
(method).
define-vector-blas-method
(macro).
test-arrays
(function).
femlisp-matlisp/matlisp/standard-matrix.lisp
matrix.lisp
(file).
store-vector.lisp
(file).
matlisp
(module).
*print-matrix*
(special variable).
*print-matrix-element-format*
(special variable).
*standard-matrix-default-element-type*
(special variable).
column
(function).
det
(method).
det-from-lr
(function).
diag
(function).
diagonal
(method).
display
(method).
elementary
(function).
ensure-matlisp
(generic function).
eye
(function).
for-each-entry
(method).
for-each-entry-and-key
(method).
for-each-key-in-row
(method).
hyperplane-normal
(function).
initialize-instance
(method).
join-instance
(method).
kronecker-product
(generic function).
laplace-full-matrix
(function).
m/
(function).
make-analog
(method).
make-matrix
(function).
make-real-matrix
(function).
make-real-vector
(function).
mrandom
(function).
mref
(method).
(setf mref)
(method).
multiplicity
(method).
mzerop
(method).
ncols
(method).
nrows
(method).
ones
(function).
print-object
(method).
row
(function).
standard-matrix
(function).
standard-matrix-p
(function).
total-entries
(method).
vlength
(method).
zeros
(function).
*print-matrix-pretty*
(special variable).
lapack-convert
(method).
laplace-stencil
(function).
print-element
(generic function).
print-matlab-format
(method).
print-matrix
(function).
standard-matrix-indexing
(function).
stencil-matrix
(function).
test-standard-matrix
(function).
x<-eye
(generic function).
femlisp-matlisp/matlisp/standard-matrix-blas.lisp
standard-matrix.lisp
(file).
matlisp
(module).
axpy!
(method).
copy!
(method).
dot
(method).
dot-abs
(method).
m+!
(method).
matrix-slice
(method).
mequalp
(method).
mextract!
(method).
minject!
(method).
transpose!
(method).
vector-slice
(method).
*blas2-operation-count*
(special variable).
*blas3-operation-count*
(special variable).
assert-same-size
(function).
conditional-compile
(macro).
define-blas2-template
(macro).
define-matrix-matrix-operation
(macro).
extended-mclear!
(method).
extended-minject!
(method).
generate-standard-matrix-gemm!-template
(function).
if-lapack-function
(macro).
m.*!
(method).
matop-x->y!
(generic function).
matop-x<-y!
(generic function).
matop-y+=x!
(generic function).
matop-y-=x!
(generic function).
matrix-loop-expansion
(function).
msym-ncols
(function).
msym-nrows
(function).
msym-pos
(function).
msym-size
(function).
standard-matrix-generator
(function).
test-standard-matrix-blas
(function).
femlisp-matlisp/matlisp/standard-matrix-lr.lisp
standard-matrix-blas.lisp
(file).
matlisp
(module).
*cholesky-threshold*
(special variable).
swap-rows
(function).
test-standard-matrix-lr
(function).
trsm
(function).
femlisp-matlisp/matlisp/compat.lisp
standard-matrix.lisp
(file).
matlisp
(module).
det
(method).
gemm-nn!
(method).
gemm-tn!
(method).
getrs!
(method).
m*-product-instance
(method).
m*-tn-product-instance
(method).
make-analog
(method).
make-domain-vector-for
(method).
make-image-vector-for
(method).
midentity-p
(method).
midentity-p
(method).
submatrix
(method).
vector-slice
(method).
test-matlisp-vector-combination
(function).
femlisp-matlisp/matlisp/call-matlisp.lisp
standard-matrix.lisp
(file).
matlisp
(module).
complex-to-real-vector
(function).
fl-matlisp->matlisp
(function).
matlisp
(function).
matlisp->fl-matlisp
(function).
matlisp-symbol
(function).
real-to-complex-vector
(function).
test-call-matlisp
(function).
translate-list
(function).
femlisp-matlisp/matlisp/tensor.lisp
store-vector.lisp
(file).
standard-matrix.lisp
(file).
matlisp
(module).
*print-tensor*
(special variable).
copy
(method).
copy!
(method).
dimensions
(reader method).
for-each-entry-and-key
(method).
for-each-entry-and-vector-index
(method).
full-tensor
(function).
full-tensor
(class).
initialize-instance
(method).
make-analog
(method).
make-real-tensor
(function).
print-object
(method).
rank
(method).
rearrange-tensor
(function).
slice
(generic function).
t*
(generic function).
tensor
(class).
tensor-map
(generic function).
tensor-ref
(generic function).
(setf tensor-ref)
(generic function).
vref
(method).
(setf vref)
(method).
check-cpairs
(function).
compute-offset
(function).
consecutive-p
(function).
dimensions->offsets
(function).
for-each-index
(function).
for-each-offset-pair
(function).
get-remaining-inds
(function).
list->real-tensor
(function).
make-tensor-index
(function).
offset0
(reader method).
offsets
(reader method).
print-tensor
(function).
slice-copy
(generic function).
test-tensor
(function).
femlisp-matlisp/matlisp/sparse-tensor.lisp
tensor.lisp
(file).
matlisp
(module).
<sparse-tensor>
(class).
diagonal-sparse-tensor
(function).
dotensor
(macro).
ensure-matlisp
(method).
entries
(reader method).
(setf entries)
(writer method).
entry-allowed-p
(generic function).
for-each-entry
(method).
for-each-entry-and-key
(method).
for-each-key
(method).
in-pattern-p
(generic function).
indices
(reader method).
(setf indices)
(writer method).
initialize-instance
(method).
m*
(method).
m+
(method).
make-analog
(method).
mref
(method).
(setf mref)
(method).
multiplicity
(method).
rank
(method).
shift-tensor
(generic function).
show
(method).
sparse-tensor
(function).
tensor-for-each
(generic function).
tensor-ref
(method).
(setf tensor-ref)
(method).
decompose-offsets
(function).
find-first-position>=
(function).
get-place-in-tensor
(function).
test-sparse-tensor
(function).
femlisp-matlisp/matlisp/compressed.lisp
store-vector.lisp
(file).
standard-matrix.lisp
(file).
matlisp
(module).
compressed->matlisp
(generic function).
compressed-eye
(function).
compressed-matrix
(function).
compressed-matrix
(class).
compressed-pattern
(class).
copy
(method).
ensure-matlisp
(method).
fd-laplace-matrix
(function).
for-each-entry-and-key
(method).
for-each-key-and-entry-in-row
(method).
full-ccs-pattern
(function).
full-compressed-pattern
(function).
full-crs-pattern
(function).
gemm-nn!
(method).
gemm-nt!
(method).
gemm-tn!
(method).
gemm-tt!
(method).
gesv!
(method).
in-pattern-p
(method).
in-pattern-p
(method).
indices
(reader method).
initialize-instance
(method).
initialize-instance
(method).
m*-product-instance
(method).
make-domain-vector-for
(method).
make-full-crs-matrix
(function).
make-image-vector-for
(method).
mref
(method).
(setf mref)
(method).
ncols
(method).
nrows
(method).
number-of-nonzero-entries
(generic function).
pattern
(reader method).
read-compressed-matrix
(function).
show
(method).
sizes
(reader method).
transpose
(method).
transposed-pattern
(generic function).
*crs-test-matrix*
(special variable).
*crs-test-matrix-entries*
(special variable).
*default-cm-solver*
(special variable).
compressed-eye-pattern
(function).
compressed-gemm!
(function).
direct-solver-performance-test
(function).
fd-laplace-matrix-triplets
(function).
find-compressed-offset
(function).
five-point-stencil-matrix
(function).
make-full-compressed-matrix
(function).
number-of-stored-entries
(generic function).
offsets
(reader method).
orientation
(reader method).
read-matrix
(method).
starts
(reader method).
superlu-solver
(function).
test-compressed
(function).
umfpack-solver
(function).
femlisp-matlisp/matlisp/ggev.lisp
standard-matrix.lisp
(file).
matlisp
(module).
ggev
(generic function).
combine-real-and-imag-part
(function).
test-ggev
(function).
femlisp-matlisp/matlisp/hegv.lisp
standard-matrix.lisp
(file).
matlisp
(module).
hegv
(generic function).
symmetric-packed-store
(function).
test-hegv
(function).
femlisp-matlisp/matlisp/sparse-vector.lisp
compat.lisp
(file).
standard-matrix.lisp
(file).
sparse-tensor.lisp
(file).
matlisp
(module).
*parallel-vector-algebra*
(special variable).
<sparse-vector>
(class).
add-svec-to-local-block
(generic function).
blocks
(generic reader).
copy!
(method).
dot
(method).
element-type
(method).
entry-allowed-p
(method).
extract-if
(generic function).
extract-value-blocks
(generic function).
for-each-entry
(method).
for-each-entry-and-key
(method).
for-each-key
(method).
gemm-tn!
(method).
initialize-instance
(method).
join-horizontal!
(method).
join-instance
(method).
key->size
(generic function).
m*
(method).
m*-tn-product-instance
(method).
make-analog
(method).
make-sparse-vector
(function).
matrix-slice
(method).
mextract!
(method).
minject!
(method).
multiplicity
(method).
mzerop
(method).
ncols
(method).
norm
(method).
print-object
(method).
remove-key
(generic function).
remove-keys
(function).
scalar-type
(method).
set-svec-to-local-block
(generic function).
show
(method).
sparse-vector->matlisp
(function).
vector-block
(generic function).
(setf vector-block)
(generic function).
vref
(method).
(setf vref)
(method).
<ht-sparse-vector>
(class).
<key->size-mixin>
(class).
<sparse-dictionary-vector>
(class).
combine-svec-block
(function).
make-analog-with-multiplicity
(function).
test-sparse-vector
(function).
femlisp-matlisp/matlisp/sparse-matrix.lisp
sparse-vector.lisp
(file).
standard-matrix.lisp
(file).
standard-matrix-blas.lisp
(file).
compressed.lisp
(file).
matlisp
(module).
<sparse-matrix>
(class).
access-type
(generic function).
col-key->size
(generic function).
col-keys
(method).
column-table
(reader method).
column-table
(reader method).
(setf column-table)
(writer method).
(setf column-table)
(writer method).
combined-projection
(function).
display
(method).
element-type
(method).
entry-allowed-p
(method).
extend-by-identity
(function).
extract-if
(method).
extract-value-blocks
(method).
for-each-col-key
(method).
for-each-entry-in-col
(method).
for-each-entry-in-row
(method).
for-each-key-and-entry-in-col
(method).
for-each-key-and-entry-in-row
(method).
for-each-key-in-col
(method).
for-each-key-in-row
(method).
for-each-row-key
(method).
in-pattern-p
(method).
index-range-disjoint-p
(function).
initialize-instance
(method).
keys->pattern
(generic function).
laplace-sparse-matrix
(function).
m*-product-instance
(method).
make-analog
(method).
make-domain-vector-for
(method).
make-domain-vector-for
(method).
make-full-block-analog
(function).
make-image-vector-for
(method).
make-image-vector-for
(method).
make-matrix-block
(function).
make-sparse-automorphism
(function).
make-sparse-matrix
(function).
map-matrix
(generic function).
mat-diff
(method).
matrix-block
(generic function).
(setf matrix-block)
(generic function).
matrix-col-p
(function).
matrix-column
(generic function).
(setf matrix-column)
(generic function).
matrix-row
(generic function).
(setf matrix-row)
(generic function).
matrix-row-p
(function).
matrix-transpose-instance
(method).
mref
(method).
(setf mref)
(method).
msymmetric-p
(method).
range-and-domain-disjoint-p
(function).
remove-column
(generic function).
remove-key
(method).
remove-projection-range
(generic function).
remove-row
(generic function).
row-key->size
(generic function).
row-keys
(method).
row-table
(reader method).
row-table
(reader method).
(setf row-table)
(writer method).
(setf row-table)
(writer method).
row<-id
(generic function).
scalar-type
(method).
show
(method).
sparse-ldu
(generic function).
sparse-m*
(generic function).
sparse-matrix->matlisp
(generic function).
total-nrows
(generic function).
transpose!
(method).
*maxrows-for-direct-solving*
(special variable).
*sparse-test-matrix*
(special variable).
<block-definition-mixin>
(class).
<ht-sparse-matrix>
(class).
<sparse-dictionary-matrix>
(class).
automorphism-p
(generic function).
display-block-matrix-graph
(function).
generate-sparse-matrix-vector-gemm!-template
(function).
pool-mixin
(class).
print-matlab-format
(method).
select-linear-solver
(generic function).
test-sparse-matrix
(function).
femlisp-matlisp/matlisp/sparselu.lisp
sparse-matrix.lisp
(file).
matlisp
(module).
gesv!
(method).
getrf!
(method).
getrs!
(method).
m*
(method).
shift-diagonal-inverter
(function).
sparse-ldu
(method).
sparse-matrix->ccs
(function).
<ldu-sparse>
(class).
distance-numbering
(function).
drop-content
(generic function).
find-ordering
(generic function).
key->index
(function).
last-key
(function).
ldu-diagonal
(reader method).
lower-left
(reader method).
modify-diagonal
(function).
numbering
(function).
ordering
(reader method).
test-sparselu
(function).
upper-right
(reader method).
femlisp-dictionary/dictionary/dictionary-defp.lisp
dictionary
(module).
femlisp-dictionary/dictionary/relations.lisp
dictionary-defp.lisp
(file).
dictionary
(module).
arity
(reader method).
initialize-instance
(method).
list-comparison
(function).
make-number-relation
(function).
r-insert
(generic function).
r-remove
(generic function).
r-select
(generic function).
r-select-1
(function).
r-some
(generic function).
relation
(class).
tree-leaves
(function).
ensure-index
(function).
entries
(function).
eql-relation
(class).
extract-from-seq-in-order
(function).
find-first-path-geq
(function).
find-first-path-satisfying
(function).
find-last-path-leq
(function).
for-each-in-range
(function).
from-key
(function).
get-index
(function).
index-key-function
(generic function).
indices
(reader method).
inverse-direction
(function).
make-index
(function).
map-key
(function).
needed-order
(function).
new-index
(function).
next
(function).
test-relations
(function).
to-key
(function).
femlisp-dictionary/dictionary/dictionary.lisp
dictionary-defp.lisp
(file).
dictionary
(module).
cache-dictionary
(class).
computed-value-dictionary
(class).
dic-count
(generic function).
dic-empty-p
(generic function).
dic-for-each
(generic function).
dic-for-each-key
(generic function).
dic-for-each-value
(generic function).
dic-pop
(generic function).
dic-ref
(generic function).
(setf dic-ref)
(generic function).
dic-remove
(generic function).
dodic
(macro).
initialize-instance
(method).
initialize-instance
(method).
initialize-instance
(method).
initialize-instance
(method).
keys
(generic function).
memoizing-let
(macro).
memoizing-let*
(macro).
small-cache-dictionary
(class).
sorted-hash-table
(class).
with-memoization
(macro).
compute
(reader method).
dictionary
(class).
ensure-thread-local-dic
(function).
find-key-in-tree
(function).
get-key-from-dic
(function).
insert-key-value-in-tree
(function).
memoization-table
(function).
memoizing-let-transformer
(macro).
size
(reader method).
size
(reader method).
sorted-dictionary
(class).
store
(reader method).
test-dictionaries
(function).
thread-cached-dictionary
(class).
tree-dictionary
(class).
femlisp-dictionary/dictionary/pool.lisp
dictionary.lisp
(file).
dictionary
(module).
decrease-refcount
(function).
describe-object
(method).
describe-object
(method).
get-from-pool
(generic function).
initialize-instance
(method).
initialize-instance
(method).
parpool
(class).
pool
(class).
put-back-in-pool
(function).
put-in-pool
(generic function).
register-in-pool
(function).
set-refcount
(function).
thread-safe-pool
(class).
copy-parpool-entry
(function).
make-parpool-entry
(function).
parpool-entry
(structure).
parpool-entry-p
(function).
pool-size
(generic function).
pool-test
(function).
ppe-key
(reader).
(setf ppe-key)
(writer).
ppe-object
(reader).
(setf ppe-object)
(writer).
ppe-refcount
(reader).
(setf ppe-refcount)
(writer).
femlisp-dictionary/dictionary/parallel-heap.lisp
dictionary.lisp
(file).
dictionary
(module).
drop-object
(function).
extract-complete-subgraph
(function).
invert-graph
(function).
make-parallel-heap
(function).
process-in-parallel
(macro).
take-object
(function).
get-dependents
(function).
multi-worker
(function).
parallel-heap
(class).
popper
(generic function).
test-parallel-heap
(function).
Packages are listed by definition order.
fl.domains
fl.dictionary
fl.flow-application
fl.navier-stokes
fl.graphic
fl.demo
fl.amop
fl.cdr
fl.elasticity-fe
fl.multigrid
fl.iteration
fl.mesh
fl.utilities
fl.geomg
fl.konwihr
fl.problem
fl.macros
fl.strategy
fl.navier-stokes-fe
fl.parallel
fl.schaefer-turek
fl.lapack
fl.application
fl.debug
fl.elasticity
fl.alien
fl.function
fl.tests
fl.matlisp
fl.ellsys-fe
fl.plot
net.scipolis.relations
fl.alienc
fl.start
fl.discretization
fl.port
fl.ellsys
fl.patches
fl.domains
Femlisp package for domain definitions.
common-lisp
.
fl.debug
.
fl.demo
.
fl.function
.
fl.macros
.
fl.matlisp
.
fl.mesh
.
fl.utilities
.
bl-patch-on-artificial-boundary
(function).
bl-patch-on-lower-boundary
(function).
bl-patch-on-upper-boundary
(function).
circle-ring-domain
(function).
cylinder-domain
(function).
n-cell-with-ball-hole
(function).
n-cell-with-ball-inlay
(function).
n-cell-with-cubic-hole
(function).
n-cell-with-cubic-inlay
(function).
n-cell-with-ellipsoidal-hole
(function).
n-cube-with-ball-hole
(function).
n-cube-with-ball-inlay
(function).
n-cube-with-cubic-hole
(function).
n-cube-with-cubic-inlay
(function).
n-cube-with-ellipsoidal-hole
(function).
oscillating-boundary-domain
(function).
patch-in-inlay-p
(function).
patch-on-inner-boundary-p
(function).
patch-on-n-cube-boundary-p
(function).
sinusoidal-bl-cell
(function).
spline-interpolated-bl-cell
(function).
bottom-mapping
(function).
boundary-layer-cell-domain
(function).
flat-disk-domain
(function).
linear-interpolate
(function).
polar->rect
(function).
test-bl-cell
(function).
test-circle-ring-domain
(function).
test-hole-domain
(function).
test-inlay-domain
(function).
triangle-mapping
(function).
xsinx-bl-cell
(function).
zap-to-unit-vectors
(function).
fl.dictionary
This package contains functions for dictionaries as a general concept for association lists, hash tables, etc.
common-lisp
.
fl.debug
.
fl.macros
.
fl.parallel
.
fl.utilities
.
cache-dictionary
(class).
computed-value-dictionary
(class).
decrease-refcount
(function).
dic-count
(generic function).
dic-empty-p
(generic function).
dic-for-each
(generic function).
dic-for-each-key
(generic function).
dic-for-each-value
(generic function).
dic-pop
(generic function).
dic-ref
(generic function).
(setf dic-ref)
(generic function).
dic-remove
(generic function).
dodic
(macro).
drop-object
(function).
extract-complete-subgraph
(function).
get-from-pool
(generic function).
invert-graph
(function).
keys
(generic function).
make-parallel-heap
(function).
memoizing-let
(macro).
memoizing-let*
(macro).
parpool
(class).
pool
(class).
pool
(slot).
process-in-parallel
(macro).
put-back-in-pool
(function).
put-in-pool
(generic function).
register-in-pool
(function).
set-refcount
(function).
small-cache-dictionary
(class).
sorted-hash-table
(class).
take-object
(function).
thread-safe-pool
(class).
with-memoization
(macro).
compute
(generic reader).
copy-parpool-entry
(function).
dictionary
(class).
ensure-thread-local-dic
(function).
find-key-in-tree
(function).
get-dependents
(function).
get-key-from-dic
(function).
insert-key-value-in-tree
(function).
make-parpool-entry
(function).
memoization-table
(function).
memoizing-let-transformer
(macro).
multi-worker
(function).
parallel-heap
(class).
parpool-entry
(structure).
parpool-entry-p
(function).
pool-size
(generic function).
pool-test
(function).
popper
(generic function).
ppe-key
(reader).
(setf ppe-key)
(writer).
ppe-object
(reader).
(setf ppe-object)
(writer).
ppe-refcount
(reader).
(setf ppe-refcount)
(writer).
size
(generic reader).
sorted-dictionary
(class).
store
(generic reader).
test-dictionaries
(function).
test-parallel-heap
(function).
thread-cached-dictionary
(class).
tree-dictionary
(class).
fl.flow-application
This package should be used for applications calculating Navier-Stokes flows.
flowapp
common-lisp
.
fl.application
.
fl.cdr
.
fl.debug
.
fl.demo
.
fl.dictionary
.
fl.discretization
.
fl.domains
.
fl.elasticity
.
fl.elasticity-fe
.
fl.ellsys
.
fl.ellsys-fe
.
fl.function
.
fl.geomg
.
fl.iteration
.
fl.macros
.
fl.matlisp
.
fl.mesh
.
fl.multigrid
.
fl.navier-stokes
.
fl.navier-stokes-fe
.
fl.parallel
.
fl.plot
.
fl.problem
.
fl.strategy
.
fl.tests
.
fl.utilities
.
*navier-stokes-demo*
(special variable).
calculate-drag/lift
(function).
ns-cell-problem-force
(function).
ns-hole-cell-problem
(function).
permeability-tensor
(function).
stokes-darcy-demo
(function).
watch-velocity-and-pressure-at-point
(function).
watch-velocity-at-point
(function).
*effective-permeability-demo*
(special variable).
*use-problem-p*
(special variable).
*with-convection-p*
(special variable).
drag/lift-contribution
(function).
evaluate-force-boundary-test
(function).
hom-ns-tests
(function).
make-driven-cavity-demo
(function).
make-effective-permeability-demo
(function).
make-special-local-vec
(function).
ns-driven-cavity-demo
(function).
test-driven-cavity
(function).
watch-dc-center-velocity
(function).
fl.graphic
This package provides a low-level interface to external
graphic software; at the moment both IBM’s @code{OpenDX} and @code{Gnuplot}
are supported.
common-lisp
.
fl.debug
.
fl.macros
.
fl.utilities
.
*default-graphic-program*
(special variable).
graphic-commands
(generic function).
graphic-file-name
(generic function).
graphic-output
(generic function).
graphic-write-data
(generic function).
images-pathname
(function).
send-graphic-commands
(generic function).
*dx-bug-workaround*
(special variable).
*dx-default-window-size*
(special variable).
*dx-name*
(special variable).
*dx-process*
(special variable).
*dx-toggle*
(special variable).
*gnuplot-name*
(special variable).
*gnuplot-process*
(special variable).
*graphics-lock*
(special variable).
*output-types*
(special variable).
*show-dx-window*
(special variable).
dx-close
(function).
dx-input-stream
(function).
dx-output-stream
(function).
ensure-dx-process
(function).
ensure-gnuplot-process
(function).
gnuplot-close
(function).
gnuplot-input-stream
(function).
gnuplot-output-stream
(function).
gnuplot-tics
(function).
graphic-input-stream
(generic function).
graphic-output-stream
(generic function).
handshake-with-dx
(function).
wait-for-dx
(function).
wait-for-gnuplot
(function).
fl.demo
This package provides routines for building a
demo suite. Wherever something interesting can be demonstrated,
a small demo node should be generated with the
@function{make-demo} and added to the tree of all demos with
@function{adjoin-demo}. After loading @femlisp{}, the whole
demo suite is available and can be run with the command
@function{femlisp-demo}.
common-lisp
.
fl.macros
.
fl.utilities
.
*demo-root*
(special variable).
*demo-time*
(special variable).
adjoin-demo
(function).
extract-demo-strings
(function).
femlisp-demo
(function).
find-demo
(function).
leaves
(generic reader).
(setf leaves)
(generic writer).
make-demo
(function).
remove-demo
(function).
test-all-demos
(function).
user-input
(function).
user-input-textfield
(function).
*demo-help*
(special variable).
*user-input-stream*
(special variable).
*visited-demos*
(special variable).
<demo>
(class).
execute
(generic reader).
(setf execute)
(generic writer).
fuzzy-match-strings
(function).
match-input
(function).
name
(generic reader).
(setf name)
(generic writer).
show-demo
(function).
test-demo
(function).
update-demo-status
(function).
fl.amop
This package provides some MOP functionality. These functions are non-ANSI and may represent a problem when porting Femlisp.
common-lisp
.
fl.debug
.
fl.utilities
.
def-fgf
(macro).
def-sealable-class
(macro).
find-programmatic-class
(function).
make-programmatic-instance
(function).
remove-subclass-methods
(function).
test-amop
(function).
fl.cdr
Defines convection-diffusion-reaction problems
common-lisp
.
fl.ellsys
.
fl.function
.
fl.macros
.
fl.matlisp
.
fl.mesh
.
fl.problem
.
fl.utilities
.
<cdr-problem>
(class).
bratu-problem
(function).
cdr-model-problem
(function).
ensure-dirichlet-coefficient
(function).
ensure-tensor-coefficient
(function).
ensure-vector-coefficient
(function).
scalar-diffusion
(function).
scalar-reaction
(function).
scalar-source
(function).
*streamline-diffusion*
(special variable).
conservative-convection
(macro).
constraint
(macro).
convection
(macro).
derivative-source
(macro).
diffusion
(macro).
ensure-1-component-tensor
(function).
ensure-1-component-vector
(function).
initial
(macro).
reaction
(macro).
resistance
(macro).
sigma
(macro).
source
(macro).
streamline-diffusion
(macro).
test-cdr
(function).
zero-constraint
(macro).
fl.elasticity-fe
This package specializes the discretization for systems
of elasticity. Since elasticity is a special case of elliptic systems
which are handled in @path{ellsys-fe.lisp}, not much remains to do.
common-lisp
.
fl.discretization
.
fl.elasticity
.
fl.ellsys
.
fl.function
.
fl.macros
.
fl.matlisp
.
fl.mesh
.
fl.problem
.
fl.utilities
.
discretize-elasticity
(function).
elasticity-fe-tests
(function).
fl.multigrid
This package contains the definition of the multigrid iteration including algebraic multigrid (AMG).
common-lisp
.
fl.debug
.
fl.function
.
fl.iteration
.
fl.macros
.
fl.matlisp
.
fl.problem
.
fl.utilities
.
<correction-scheme>
(class).
<fas>
(class).
<mg-iteration>
(class).
<selection-amg>
(class).
<stueben>
(class).
base-level
(generic reader).
cg-max-size
(generic reader).
coarse-grid-iteration
(generic reader).
coarse-grid-matrix
(generic function).
coarsen
(generic function).
dirichlet-dof-p
(function).
fmg
(generic reader).
galerkin-product
(function).
multilevel-decomposition
(generic function).
post-steps
(generic reader).
pre-steps
(generic reader).
preprocess-matrix
(generic function).
prolongation
(generic function).
restriction
(generic function).
select-smoother
(generic function).
slave-dof-p
(function).
slave-or-dirichlet-dof-p
(function).
*amg-cg-max-size*
(special variable).
<aggregation-amg>
(class).
<algebraic-mg>
(class).
a_
(macro).
adapt-fill-pointer
(function).
choose-coarse-grid
(generic function).
combination-type
(generic reader).
ensure-mg-residual
(generic function).
ensure-sol-rhs-res
(generic function).
f-cycle
(generic function).
fas-r_
(macro).
filtered-matrix
(generic function).
gamma
(generic reader).
i_
(macro).
improved-prolongation
(generic function).
lmgc
(generic function).
max-depth
(generic reader).
min-in-row
(function).
post-smoother
(generic reader).
post-smoother_
(macro).
pre-smoother
(generic reader).
pre-smoother_
(macro).
priority-table
(class).
prolongate
(generic function).
pt-dictionary
(generic reader).
pt-in-table-p
(generic function).
pt-insert
(generic function).
pt-pop
(generic function).
pt-remove
(generic function).
pt-shift-priority
(generic function).
pt-table
(generic reader).
r_
(macro).
res_
(macro).
residual-p_
(macro).
restrict
(generic function).
rhs_
(macro).
smooth
(generic function).
sol_
(macro).
tentative-prolongation
(generic function).
test-stueben
(function).
theta
(generic reader).
(setf theta)
(generic writer).
with-current-level-data
(macro).
fl.iteration
The @package{FL.ITERATION} package includes the
definition for the abstract classes @class{<solver>},
@class{<iterative-solver>}, as well as the generic functions
@function{iterate} and @function{solve} which constitutes the interface for
linear and non-linear solving. Both functions work on a blackboard which
is passed together with the iteration used as argument.
Several instances of iterative solvers are implemented, e.g. Gauss-Seidel, SOR, ILU (in @file{linit.lisp}) and CG (in @file{krylow.lisp}). A larger block of code is contained in a separate package @package{FL.MULTIGRID} and contains the multigrid iteration. From this class, an algebraic multigrid iteration is derived in @file{amg.lisp} and a geometric multigrid iteration in a separate file @file{geomg.lisp} and package @package{FL.GEOMG}.
common-lisp
.
fl.debug
.
fl.dictionary
.
fl.function
.
fl.macros
.
fl.matlisp
.
fl.parallel
.
fl.problem
.
fl.tests
.
fl.utilities
.
*cpu-time-observe*
(special variable).
*discrete-iterative-solver-observe*
(special variable).
*gauss-seidel*
(special variable).
*iteration-depth*
(special variable).
*output-depth*
(special variable).
*step-observe*
(special variable).
*undamped-jacobi*
(special variable).
<bi-cgstab>
(class).
<block-iteration>
(class).
<cg>
(class).
<custom-psc>
(class).
<custom-ssc>
(class).
<gauss-seidel>
(class).
<gradient-method>
(class).
<ilu>
(class).
<iteration>
(class).
<iterative-solver>
(class).
<iterator>
(class).
<jacobi>
(class).
<linear-iteration>
(class).
<linear-solver>
(class).
<lu>
(class).
<multi-iteration>
(class).
<newton>
(class).
<parallel-sor>
(class).
<psc>
(class).
<safe-linear-solver>
(class).
<solver-iteration>
(class).
<solver>
(class).
<sor>
(class).
<special-solver>
(class).
<ssc>
(class).
compute-residual
(generic function).
finally
(generic function).
initially
(generic function).
intermediate
(generic function).
iter-format
(generic function).
iterate
(generic function).
linsolve
(function).
lu-solver
(function).
make-iterator
(generic function).
next-step
(generic function).
observe
(slot).
observe
(slot).
observe
(slot).
product-iterator
(function).
setup-blocks
(generic function).
solve
(generic function).
terminate-p
(generic function).
*evp-success*
(special variable).
*iteration-failure-behavior*
(special variable).
*iteration-name*
(special variable).
*select-linear-solver*
(special variable).
*store-decomposition*
(special variable).
*suggested-nonlinear-solver*
(special variable).
<discrete-iterative-solver>
(class).
<evp-solver>
(class).
<gmres>
(class).
<lobpcg>
(class).
<nonlinear-solver>
(class).
<preconditioned-krylow>
(class).
<richardson>
(class).
<setup-blocks-mixin>
(class).
<wielandt-iteration>
(class).
compile-termination-test
(function).
compute-block-inverse
(function).
compute-block-inverses
(function).
ensure-contained
(generic function).
ensure-solution-structure
(function).
fallback
(generic reader).
fallback-p
(generic reader).
(setf fallback-p)
(generic writer).
float-quantity-observe
(function).
gram-schmidt
(function).
gram-schmidt-new
(function).
inner-iteration
(generic function).
iteration
(generic function).
linear-solver
(generic reader).
name
(generic function).
ordering
(generic reader).
(setf ordering)
(generic writer).
output
(generic reader).
output-p
(generic function).
qlsolve
(function).
residual-norm
(generic reader).
restart-cycle
(generic reader).
safe-divide-by-zero
(function).
solver-function
(generic reader).
step-control
(generic reader).
store-p
(generic reader).
test-evpsolve
(function).
test-iterate
(function).
test-krylow
(function).
test-linit
(function).
test-linsolve
(function).
test-nlsolve
(function).
test-solve
(function).
fl.mesh
This module contains the definitions of meshes and
routines for mesh management. The meshes allowed in @femlisp{} are more
general than those of most other software for solving PDEs. In @femlisp{},
both mesh, domain and problem definitions are defined over an underlying
abstraction, the so-called @class{<skeleton>}. A @class{<skeleton>}
captures the mathematical idea of a "cell complex" which builds a
topological space by mapping from standard cells @class{<cell>}. Now, a
@class{<skeleton>} can be seen as mapping the cells of such a cell complex
to arbitrary values. Then, a @class{<domain>} is a @class{<skeleton>}
where each cell (which we call "patch" in this case) is mapped to
geometric properties, and a @class{<mesh>} is a @class{<skeleton>} where
each cell is mapped to the patch to which it belongs.
The basic entities are the class @class{<cell>}, the subclass
@class{<simplex>} which in turn contains subclasses for arbitrarily
dimensional simplices generated on demand, and the subclass
@class{<product-cell>} containing arbitrary products of simplices, e.g. square
or cube.
Meshes can be refined either uniformly or locally using the Freudenthal algorithm as presented in @cite{JBey_2000a} and generalized to product elements. When local refinement is used, hanging nodes may occur. In contrast to most other finite element software, in @femlisp{} the difference of refinement levels of adjacent cells may be arbitrarily large. Up to now, anisotropic refinement of product cells has not yet been implemented.
common-lisp
.
fl.debug
.
fl.dictionary
.
fl.function
.
fl.macros
.
fl.matlisp
.
fl.utilities
.
it.bese.fiveam
.
*reference-vertex*
(special variable).
*unit-cube*
(special variable).
*unit-interval*
(special variable).
*unit-quadrangle*
(special variable).
*unit-tetrahedron*
(special variable).
*unit-triangle*
(special variable).
<boundary-cell>
(class).
<cell>
(class).
<domain>
(class).
<hierarchical-mesh>
(class).
<mapped-cell>
(class).
<mesh>
(class).
<product-cell>
(class).
<simplex>
(class).
<skeleton>
(class).
<vertex>
(class).
anisotropic-rule-p
(function).
bottom-level-cells
(function).
boundary
(generic function).
boundary-identifications
(function).
box-domain
(function).
cartesian-product
(generic function).
cell->cube
(function).
cell-identification
(function).
(setf cell-identification)
(function).
cell-mapping
(generic function).
cellp
(function).
cells-of-dim
(function).
cells-of-highest-dim
(function).
cells-on-level
(function).
children
(function).
(setf children)
(function).
combine-identifications
(function).
compare-lexicographically
(function).
copy-mesh
(function).
copy-skeleton
(function).
corners
(generic function).
cube-extender
(function).
cube-p
(function).
dealii-n-ball-domain
(function).
diameter
(generic function).
dimension
(generic function).
(setf dimension)
(generic writer).
dimension
(slot).
dimension-of-part
(generic function).
dissection-compare
(function).
domain
(generic reader).
domain
(slot).
domain-boundary
(function).
domain-characteristics
(function).
doskel
(macro).
embedded-dimension
(generic function).
ensure-domain
(function).
ensure-simplex-product
(function).
etable
(generic function).
etable-of-highest-dim
(function).
etables
(generic reader).
(setf etables)
(generic writer).
extend
(function).
factor-dimensions
(function).
factor-simplices
(function).
find-cell
(function).
find-cell-from-corners
(function).
find-cell-from-position
(generic function).
find-cells
(function).
find-patch
(function).
for-each-cell-of-highest-dimension-on-surface
(function).
g2l
(generic function).
get-cell-property
(function).
(setf get-cell-property)
(function).
get-refinement-rule
(function).
(setf get-refinement-rule)
(function).
global->embedded-local
(generic function).
global->local
(generic function).
hierarchically-ordered-cells
(function).
identification-p
(function).
identified-cells
(generic function).
identified-p
(function).
identify
(function).
identify-unit-cell-faces
(function).
inner-refcell-children
(function).
insert-cell!
(function).
insert-cell-from-corners
(function).
insert-cells!
(function).
inside-cell?
(generic function).
iterate-identifications
(function).
key-is-subcell-p
(function).
l-domain
(function).
l2dg
(generic function).
l2g
(generic function).
level-of-cell
(function).
linearly-transformed-skeleton
(function).
local->dglobal
(generic function).
local->global
(generic function).
local-coordinates-of-midpoint
(generic function).
make-cell-from-corners
(function).
make-cell-from-vertices
(function).
make-classifier
(function).
make-domain
(function).
make-hierarchical-mesh-from
(function).
make-hierarchical-mesh-from-domain
(generic function).
make-line
(function).
make-mesh-from
(generic function).
make-simplex
(function).
make-vertex
(function).
mapped-cell-class
(function).
mapped-p
(function).
mapping
(generic function).
(setf mapping)
(generic writer).
mark-skeleton
(function).
member-of-skeleton?
(function).
meshsize
(generic function).
midpoint
(generic function).
multiple-local->dglobal
(generic function).
multiple-local->global
(generic function).
n-ball-domain
(function).
n-cell-domain
(function).
n-cube
(function).
n-cube-domain
(function).
n-simplex
(function).
n-simplex-domain
(function).
nr-of-cells
(function).
nr-of-levels
(function).
nr-of-sides
(function).
nr-of-subcells
(function).
nr-of-surface-cells
(function).
nr-of-vertices
(function).
origin
(generic function).
parent
(function).
(setf parent)
(function).
patch-classification
(function).
patch-of-cell
(function).
(setf patch-of-cell)
(function).
periodic-polygonal
(function).
product-cell-p
(function).
refcell-children
(function).
refcell-refinement-skeleton
(function).
reference-cell
(generic function).
reference-cell-p
(function).
refine
(generic function).
refine-info
(function).
refined-p
(function).
refined-skeleton-copy
(function).
refinement
(function).
refinement-interface
(function).
refinement-rule
(function).
refinement-rule
(class).
regular-rule-p
(function).
representative
(generic function).
rotated-square-domain
(function).
shift-skeleton
(function).
simplex-class
(function).
simplex-p
(function).
simplex-product-domain
(function).
skel-add!
(function).
skel-empty-p
(function).
skel-for-each
(function).
skel-map
(generic function).
skel-ref
(function).
(setf skel-ref)
(function).
skeleton
(generic function).
skeleton-boundary
(function).
skeleton-disjoint-union
(function).
skeleton-without-cell
(function).
sort-lexicographically
(function).
special-mesh-on-box-domain
(function).
standard-extender
(function).
structured-mesh-on-box-domain
(function).
structured-skeleton
(function).
subcell-children
(function).
subcells
(generic function).
subskeleton
(generic function).
surface-cells-of-dim
(function).
surface-cells-of-highest-dim
(function).
telescope
(function).
test-condition
(function).
top-level
(generic function).
top-level
(slot).
top-level-cells
(function).
transformed-skeleton
(function).
triangle-domain
(function).
triangulate
(function).
triangulize
(function).
uniformly-refined-hierarchical-mesh
(function).
uniformly-refined-mesh
(function).
vertex-p
(function).
vertex-position
(generic reader).
vertex?
(function).
vertices
(generic function).
(refinement-rule⎵<anisotropic-rule-mixin>)
(class).
*allow-child-patch-change*
(special variable).
*check-well-defined-embedded-dimension*
(special variable).
*constant-refinement-type*
(special variable).
*find-cell-base-level*
(special variable).
*g2l-newton-steps*
(special variable).
*inside-threshold*
(special variable).
*meshfile-basename*
(special variable).
*optional-skeleton-checks*
(special variable).
*print-cell*
(special variable).
*print-skeleton*
(special variable).
*print-skeleton-values*
(special variable).
*refcell-refinement-memoize-depth*
(special variable).
*refcell-refinement-table*
(special variable).
*tetgen-pathname*
(special variable).
*triangle-pathname*
(special variable).
*unit-prism-1-2*
(special variable).
*unit-prism-2-1*
(special variable).
+per-class-allocation-slot+
(constant).
<1-1-1-1-product-cell>
(class).
<1-1-1-product-cell>
(class).
<1-1-product-cell>
(class).
<1-2-product-cell>
(class).
<1-simplex>
(class).
<2-1-product-cell>
(class).
<2-simplex>
(class).
<3-simplex>
(class).
<anisotropic-rule-mixin>
(class).
<cell-with-boundary>
(class).
<child-info>
(structure).
<child-info>-p
(function).
<distorted-cell>
(class).
<mapped-1-1-product-cell>
(class).
<mapped-1-simplex>
(class).
<mapped-2-1-product-cell>
(class).
<mapped-2-simplex>
(class).
<mapped-vertex>
(class).
<standard-cell>
(class).
add-new-refinement-rule
(function).
anisotropic-boundary-refinement-rules
(function).
anisotropic-name
(function).
anisotropic-refinement-indicator
(function).
anisotropic-refinement-info
(function).
anisotropic-refinement-rule
(function).
anisotropic-refinement-skeleton
(function).
barycentric->euclidean
(function).
barycentric-coordinates
(generic function).
barycentric-coordinates-factors
(function).
barycentric-gradients
(generic function).
bisect
(function).
bisection-parameters
(function).
blending-map
(function).
boundary-refinement-rules
(generic reader).
build-level-table
(function).
calculate-bounding-box
(function).
call-tetgen
(function).
call-triangle
(function).
cartesian-product-map
(function).
cell-class-information
(generic function).
(setf cell-class-information)
(generic function).
cell-class-information
(structure).
cell-class-information-p
(function).
cell-vec
(type).
cells
(generic reader).
cells->skeleton
(function).
change-to-blending
(function).
check-for-multiples
(function).
check-identification
(function).
child-barycentric-corners
(reader).
(setf child-barycentric-corners)
(writer).
child-boundary-paths
(reader).
(setf child-boundary-paths)
(writer).
child-info-vec
(type).
child-reference-cell
(reader).
(setf child-reference-cell)
(writer).
child-transform-a
(reader).
(setf child-transform-a)
(writer).
child-transform-b
(reader).
(setf child-transform-b)
(writer).
ci-boundary-indices-of-subcells
(reader).
(setf ci-boundary-indices-of-subcells)
(writer).
ci-dimension
(reader).
(setf ci-dimension)
(writer).
ci-factor-simplices
(reader).
(setf ci-factor-simplices)
(writer).
ci-nr-of-sides
(reader).
(setf ci-nr-of-sides)
(writer).
ci-nr-of-subcells
(reader).
(setf ci-nr-of-subcells)
(writer).
ci-nr-of-vertices
(reader).
(setf ci-nr-of-vertices)
(writer).
ci-reference-cell
(reader).
(setf ci-reference-cell)
(writer).
ci-refine-info
(reader).
(setf ci-refine-info)
(writer).
ci-refinement-rules
(reader).
(setf ci-refinement-rules)
(writer).
classify-top-bottom-lateral
(function).
closed?
(function).
compute-raster
(function).
consistent-vertex-numbering
(function).
coordinates-inside?
(generic function).
copy-<child-info>
(function).
copy-cell
(generic function).
copy-cell-class-information
(function).
copy-refinement-rule
(function).
create-boundary-paths
(function).
create-boundary-paths-of-product-cell
(function).
cube-index->product-cell-index
(function).
cube-index->simplex-index
(function).
cube-without-corner
(function).
curved-triangle-domain
(function).
decrease-priority
(function).
describe-all
(generic function).
do-refinement!
(generic function).
domain-substance
(function).
domain-substance-boundaries
(function).
drop-empty-limits
(function).
ensure-secondary-information
(function).
ensure-simplex
(function).
euclidean->barycentric
(function).
extend-triangulation
(generic function).
find-cell-on-patch-with-midpoint
(function).
fix-identification-for-positive-dimension
(function).
flat-mesh-p
(function).
freudenthal-refinement
(function).
g-corner-matrix
(function).
g-corners
(function).
generate-refine-info
(generic function).
generate-subcells-method
(function).
generate-subcells-method-source
(function).
get-patch-property
(function).
(setf get-patch-property)
(function).
get-path-create
(function).
get-subcell-children
(function).
hierarchical-mesh-p
(function).
hierarchical-search
(function).
holes
(generic reader).
identification
(class).
increase-priority
(function).
induced-refinement-of-subcell-refcells
(function).
initialize-cell-class
(function).
insert-simplex-in-table
(function).
interface-table
(function).
interpolate
(function).
ip
(function).
isotropic-mesh-on-rectangle-domain
(function).
l2g-evaluator
(function).
levels
(generic reader).
(setf levels)
(generic writer).
make-<child-info>
(function).
make-cell-class-information
(function).
make-product-cell
(generic function).
make-reference-product-cell
(function).
make-reference-simplex
(function).
map-cell-vec
(function).
map-skeleton
(function).
mesh-file
(function).
meshes-pathname
(function).
multiple-barycentric-coordinates
(function).
multiple-barycentric-gradients
(function).
multiple-l2dg
(generic function).
multiple-l2g
(generic function).
n-ball-dphi
(function).
n-ball-phi
(function).
names
(generic reader).
parametric
(generic reader).
patch-boundary-mesh
(function).
patch-mesh
(function).
pq-get
(function).
(setf pq-get)
(function).
pq-insert
(function).
pq-pop
(function).
pq-remove
(function).
priority-queue
(class).
product-cell-class
(function).
product-table
(function).
projection-matrix
(function).
pseudo-vertices
(generic function).
rcb-ordered-cells
(function).
rcb-sort-items
(function).
read-next-numbers-line
(function).
read-next-uncommented-line
(function).
read-nodes
(function).
read-numbers-from-string
(function).
read-tetgen-mesh
(function).
read-tetgen-mesh-for
(function).
read-tetgen-simplices
(function).
read-triangle-mesh-for
(function).
recursive-bisection
(function).
refine-cell!
(generic function).
refine-cell-interior
(function).
refine-info->refinement-rule
(function).
refinement-info
(generic reader).
refinement-rules
(function).
refpatch-boundary-mesh
(function).
remove-cells!
(generic function).
rule-position
(function).
sample-domain
(function).
sample-mesh
(function).
simple-newton
(function).
simplex-corner
(function).
skeleton->refinement-rule
(function).
skeleton-substance
(function).
standard-classifier
(function).
sub-cells-of-child
(function).
sub-cells-of-children
(function).
sub-side-mapping
(function).
subcell-access-indices
(function).
substance-boundary-cells
(function).
synchronize-identification
(function).
test-f
(function).
transform-cell!
(generic function).
triangulate-patch
(function).
two-sorted-parts
(function).
unmapped-cell-class
(function).
update-refinement!
(generic function).
weight-lists
(function).
weight-lists-grad-product-cell
(function).
weight-lists-grad-simplex
(function).
with-cell-class-information
(macro).
with-cell-information
(macro).
with-ci-slots
(macro).
without-component
(function).
write-1d-skeleton-to-poly-file
(function).
write-2d-skeleton-to-poly-file
(function).
fl.utilities
This package contains generally useful utility functions. Several of those functions were taken from @cite{(Graham 1996)}, the SANS function was contributed to the @cite{comp.lang.lisp} newsgroup by Erik Naggum.
fl.alienc
.
fl.amop
.
fl.application
.
fl.cdr
.
fl.demo
.
fl.dictionary
.
fl.discretization
.
fl.domains
.
fl.elasticity
.
fl.elasticity-fe
.
fl.ellsys
.
fl.ellsys-fe
.
fl.flow-application
.
fl.function
.
fl.geomg
.
fl.graphic
.
fl.iteration
.
fl.konwihr
.
fl.lapack
.
fl.matlisp
.
fl.mesh
.
fl.multigrid
.
fl.navier-stokes
.
fl.navier-stokes-fe
.
fl.parallel
.
fl.plot
.
fl.problem
.
fl.schaefer-turek
.
fl.strategy
.
net.scipolis.relations
.
add-hook
(function).
array-for-each
(function).
blackboard
(function).
blackboard
(class).
box
(function).
call-hooks
(function).
check-properties
(function).
common-lisp-speed
(function).
compose
(function).
compose-2
(generic function).
concept-documentation
(function).
constant-vector
(function).
copy-hash-table
(function).
copy-slots
(generic function).
curry
(function).
dequeue
(generic function).
dequeue-all
(generic function).
display-ht
(function).
dli-object
(reader).
(setf dli-object)
(writer).
dli-pred
(reader).
(setf dli-pred)
(writer).
dli-succ
(reader).
(setf dli-succ)
(writer).
dll
(class).
dll->list
(function).
dll-empty-p
(function).
dll-find
(function).
dll-first
(generic reader).
(setf dll-first)
(generic writer).
dll-for-each
(function).
dll-front-insert
(function).
dll-item
(structure).
dll-last
(generic reader).
(setf dll-last)
(generic writer).
dll-peek-first
(function).
dll-peek-last
(function).
dll-pop-first
(function).
dll-pop-last
(function).
dll-rear-insert
(function).
dll-remove
(function).
dll-remove-item
(function).
dohash
(macro).
dotuple
(macro).
emptyp
(generic function).
enqueue
(generic function).
evaluate
(generic function).
factorial
(function).
file-documentation
(function).
filter
(function).
filter-if
(function).
find-leaf
(function).
find-leaf-if
(function).
find-subtree
(function).
find-subtree-if
(function).
first-only
(function).
fixnum-vec
(function).
fixnum-vec
(type).
flatten
(function).
flatten-1
(function).
for-each
(generic function).
for-each-tuple
(function).
get-property
(function).
(setf get-property)
(function).
(setf geta)
(setf expander).
geta
(function).
getbb
(function).
(setf getbb)
(function).
group-by
(function).
hash-table->alist
(function).
hash-table-keys
(function).
hash-table-values
(function).
identity-permutation-p
(function).
iterator
(generic function).
iterator-end-p
(generic function).
iterator-next
(generic function).
k->l-subsets
(function).
k-subsets
(function).
kmgt
(function).
list->dll
(function).
list->queue
(function).
loop+
(macro).
make-analog
(generic function).
make-dll
(function).
make-double-float-array
(function).
make-filled-array
(function).
make-fixnum-vec
(function).
map-hash-table
(function).
map-list-in-hash-table
(function).
map-product
(function).
map-tree
(function).
mapf
(macro).
mappend
(function).
mapper-collect
(function).
mapper-count
(function).
mapper-every
(function).
mapper-select-first
(function).
mapper-some
(function).
mapper-sum
(function).
maximally-connected
(function).
measure-time
(function).
measure-time-for-block
(macro).
memoize-1
(function).
memoize-expr
(macro).
memoize-symbol
(function).
mklist
(function).
modify
(function).
n-partitions-of-k
(function).
nonempty-subsets
(function).
on-leaves
(function).
on-subtrees
(function).
ordered-intersection
(function).
ordered-set-difference
(function).
ordered-union
(function).
partial-sums
(function).
permutation-inverse
(function).
permutation-p
(function).
permutation-shifted-inverse
(function).
permutation-signum
(function).
permute
(function).
permute-into
(function).
positive-fixnum
(type).
positive-n-partitions-of-k
(function).
positive-partitions-of-k
(function).
properties
(generic reader).
(setf properties)
(generic writer).
property-mixin
(class).
queue->list
(function).
range
(function).
range
(class).
range<
(function).
range<=
(function).
rcurry
(function).
reference
(generic function).
(setf reference)
(generic function).
required-argument
(function).
safe-sort
(function).
samep
(function).
sans
(function).
set-equal
(function).
set-p
(function).
single?
(function).
split-by-length
(function).
square
(function).
subsets
(function).
take
(function).
thrice
(function).
transfer-bb
(function).
translate
(function).
tree-uniform-number-of-branches
(function).
tree-uniformp
(function).
twice
(function).
unbox
(function).
(setf unbox)
(function).
vector-cut
(function).
vector-last
(function).
(setf vector-last)
(function).
vector-map
(function).
with-items
(macro).
xor
(function).
zero-vector
(function).
*hooks*
(special variable).
*local-evaluation-memoization-table*
(special variable).
*mflop-delta*
(special variable).
+n-long+
(constant).
+n-short+
(constant).
array-contents
(function).
binomial
(function).
check
(generic function).
copy-dll-item
(function).
daxpy
(function).
daxpy-speed
(function).
ddot
(function).
dll-check-consistency
(function).
dll-item-p
(function).
head
(generic reader).
(setf head)
(generic writer).
make-dll-item
(function).
measure-time-repeated
(function).
queue
(class).
tail
(generic reader).
(setf tail)
(generic writer).
test-general
(function).
test-mflop
(function).
test-utilities
(function).
undisplace-array
(function).
fl.geomg
The @package{FL.GEOMG} package contains iterations which depend on geometric information, obtained for example from the discretization. At the moment, these are the geometric multigrid iteration, an AMG-like scheme for preconditioning high-order discretizations with low-order ones, and some block smoothers with overlapping blocks.
common-lisp
.
common-lisp-user
.
fl.debug
.
fl.discretization
.
fl.function
.
fl.iteration
.
fl.macros
.
fl.matlisp
.
fl.mesh
.
fl.multigrid
.
fl.utilities
.
<geometric-cs>
(class).
<geometric-fas>
(class).
<geometric-psc>
(class).
<geometric-ssc>
(class).
<s1-coarse-grid-iterator>
(class).
<s1-reduction>
(class).
<vanka>
(class).
fas
(function).
geometric-cs
(function).
geometric-psc
(function).
geometric-ssc
(function).
s1-reduction-amg-solver
(function).
<geometric-blocking-mixin>
(class).
<geometric-mg>
(class).
<local-mg>
(class).
extend-horizontally
(function).
extend-level-matrix
(function).
extended-block
(function).
find-vertex-centered-block
(function).
galerkin-p
(generic reader).
local-mg
(function).
solution
(generic reader).
(setf solution)
(generic writer).
test-geomg
(function).
fl.konwihr
Special package for the KONWIHR demo problem.
common-lisp
.
fl.application
.
fl.cdr
.
fl.debug
.
fl.demo
.
fl.dictionary
.
fl.discretization
.
fl.domains
.
fl.elasticity
.
fl.elasticity-fe
.
fl.ellsys
.
fl.ellsys-fe
.
fl.function
.
fl.geomg
.
fl.iteration
.
fl.macros
.
fl.matlisp
.
fl.mesh
.
fl.multigrid
.
fl.navier-stokes
.
fl.navier-stokes-fe
.
fl.parallel
.
fl.plot
.
fl.problem
.
fl.strategy
.
fl.tests
.
fl.utilities
.
*heisig-neuss-2017-demo*
(special variable).
*konwihr-initialized*
(special variable).
heisig-neuss-2017-demo
(function).
initialize-konwihr-paper-calculation
(function).
konwihr-paper-max-levels
(function).
konwihr-speed
(function).
*konwihr-speed*
(special variable).
initialize-elahom-calculation
(function).
konwihr-demo
(function).
fl.problem
The @package{FL.PROBLEM} package introduces the
general class @class{<problem>} and some subclasses. The most interesting
subclass is @class{<pde-problem>}. A @class{<pde-problem>} is defined on a
domain and provides a table mapping the domain patches to property lists
containing the coefficient functions.
Several subclasses of @class{<pde-problem>} are defined in own packages, e.g. @class{<cdr-problem>} in @package{FL.CDR}, @class{<elasticity-problem>} in @package{FL.ELASTICITY} and @class{<navier-stokes-problem} in @package{FL.NAVIER-STOKES}.
common-lisp
.
fl.debug
.
fl.dictionary
.
fl.function
.
fl.macros
.
fl.matlisp
.
fl.mesh
.
fl.utilities
.
<coefficient>
(class).
<domain-problem>
(class).
<evp-mixin>
(class).
<evp>
(class).
<interpolation-problem>
(class).
<ls-evp>
(class).
<lse>
(class).
<multiphysics-mixin>
(class).
<nlse>
(class).
<nonlinear-problem>
(class).
<pde-problem>
(class).
<problem>
(class).
<time-dependent-problem>
(class).
add-fe-parameters-demand
(function).
assembly-type
(generic reader).
coefficient-macros
(function).
coefficient-name
(generic reader).
coefficients-of-cell
(generic function).
coefficients-of-patch
(function).
component-length
(function).
component-position
(function).
component-symbol
(function).
components
(slot).
components
(generic function).
(setf components)
(generic writer).
components
(slot).
components
(slot).
components-of-cell
(generic function).
components-of-patch
(generic function).
(setf components-of-patch)
(generic function).
constant-coefficient
(function).
constraint-coefficient
(function).
constraint-p
(function).
copy-coefficient
(function).
coupling-with
(macro).
create-problem
(macro).
define-coefficient-macro
(macro).
demands
(generic function).
dual-problem
(generic function).
end-time
(generic reader).
energy
(generic function).
ensure-coefficient
(function).
ensure-residual
(generic function).
ensure-solution
(generic function).
extract-from
(function).
extraction-information
(function).
filter-applicable-coefficients
(function).
find-coefficient
(function).
find-component
(function).
fu->coefficient
(function).
function->coefficient
(function).
fx->coefficient
(function).
fxu->coefficient
(function).
get-coefficient
(function).
get-coefficients
(function).
identification-coefficient
(function).
linear-p
(generic function).
linearize
(generic function).
lse
(function).
make-coefficients-for
(generic function).
mass
(generic function).
mass-matrix
(generic reader).
matrix
(slot).
matrix
(generic reader).
nlse
(function).
nr-of-components
(generic function).
nr-of-components-of-patch
(function).
nr-of-components-of-problem
(generic function).
prepare-coefficient-arguments
(function).
register-coefficient-macros
(function).
required-fe-functions
(function).
rhs
(generic reader).
select-linear-solver
(generic function).
select-on-patch
(macro).
select-solver
(generic function).
self-adjoint-p
(generic function).
start-time
(slot).
start-time
(generic reader).
stationary-problem-class
(function).
stiffness-matrix
(generic reader).
subproblem
(macro).
subproblems
(generic reader).
time-dependent-problem-class
(generic function).
*assembly-type*
(special variable).
*coefficient-component-offsets*
(special variable).
check-component
(function).
check-components
(function).
classify-problem
(generic function).
coeff-eval
(generic reader).
component-name
(function).
compress-fe-parameters
(function).
constraint
(macro).
derivative-symbol-p
(function).
extract-from-gradient
(function).
fe-parameter-p
(function).
identification-coefficient-p
(function).
internal-component
(special variable).
internal-component-2
(special variable).
internal-components
(special variable).
internal-dimension
(special variable).
internal-domain
(special variable).
internal-length
(special variable).
internal-length-2
(special variable).
internal-multiplicity
(special variable).
internal-patch
(special variable).
internal-patch-dimension
(special variable).
internal-patch-if
(special variable).
internal-position
(special variable).
internal-position-2
(special variable).
internal-problem
(special variable).
internal-properties
(special variable).
internal-subproblem-name
(special variable).
internal-subproblem-package
(special variable).
internal-subproblems
(special variable).
internal-value
(special variable).
parameter-name
(function).
parameter-order
(function).
select-components-on-patch
(macro).
sigma-p
(function).
solution-dependent
(function).
some-components
(function).
test-evp
(function).
test-pde-problem
(function).
test-problem
(function).
test-time
(function).
with-coefficient-macros
(macro).
zero-constraints
(generic function).
fl.macros
This package contains some basic macro definitions used in Femlisp.
common-lisp
.
fl.alien
.
fl.alienc
.
fl.application
.
fl.cdr
.
fl.demo
.
fl.dictionary
.
fl.discretization
.
fl.domains
.
fl.elasticity
.
fl.elasticity-fe
.
fl.ellsys
.
fl.ellsys-fe
.
fl.flow-application
.
fl.function
.
fl.geomg
.
fl.graphic
.
fl.iteration
.
fl.konwihr
.
fl.lapack
.
fl.matlisp
.
fl.mesh
.
fl.multigrid
.
fl.navier-stokes
.
fl.navier-stokes-fe
.
fl.parallel
.
fl.plot
.
fl.problem
.
fl.schaefer-turek
.
fl.strategy
.
fl.utilities
.
net.scipolis.relations
.
*usually*
(special variable).
?1
(macro).
?2
(macro).
?3
(macro).
?4
(macro).
?5
(macro).
?6
(macro).
_
(macro).
_f
(macro).
aand
(macro).
acond
(macro).
aif
(macro).
awhen
(macro).
bif
(macro).
definline
(macro).
deletef
(macro).
echo
(macro).
ensure
(macro).
fluid-let
(macro).
gencase
(macro).
inlining
(macro).
lret
(macro).
lret*
(macro).
multi-dotimes
(macro).
multi-for
(macro).
multiple-defgen
(macro).
named-let
(macro).
once-only
(macro).
quickly
(macro).
quickly-if
(macro).
remove-this-method
(macro).
show-call
(macro).
slowly
(macro).
stringcase
(macro).
symbol-macroletf
(macro).
symconc
(function).
usually-quickly
(macro).
very-quickly
(macro).
whereas
(macro).
with-arrays
(macro).
with-gensyms
(macro).
awhile
(macro).
chain
(macro).
collecting
(macro).
delay
(macro).
force
(generic function).
in-syntax
(macro).
short-remove-method
(macro).
symbol-macroletf-helper
(macro).
(setf symbol-macroletf-helper)
(setf expander).
test-macros
(function).
with-array
(macro).
fl.strategy
This package provides methods for solving problems by adaptive FEM.
common-lisp
.
fl.cdr
.
fl.debug
.
fl.dictionary
.
fl.discretization
.
fl.ellsys
.
fl.function
.
fl.geomg
.
fl.iteration
.
fl.macros
.
fl.matlisp
.
fl.mesh
.
fl.plot
.
fl.problem
.
fl.utilities
.
*eta-observe*
(special variable).
*fe-approximation-observe*
(special variable).
*mentries-observe*
(special variable).
*model-time-observe*
(special variable).
*nr-of-cells-observe*
(special variable).
*nr-of-dofs-observe*
(special variable).
*rothe-observe*
(special variable).
*stationary-fe-strategy-observe*
(special variable).
<cell-rule-indicator>
(class).
<duality-error-estimator>
(class).
<fe-approximation>
(class).
<fe-interpolation>
(class).
<largest-eta-indicator>
(class).
<projection-error-estimator>
(class).
<refinement-indicator>
(class).
<rothe>
(class).
<stationary-fe-strategy>
(class).
<strategy>
(class).
<uniform-refinement-indicator>
(class).
estimate
(generic function).
indicate
(generic function).
point-observe
(function).
*cell->error*
(special variable).
*cell->error-rank*
(special variable).
*pivot-max-error*
(special variable).
*u_1/4-observe*
(special variable).
<difference-with-projection>
(class).
<error-estimator>
(class).
<fe-evp-strategy>
(class).
<global-and-local-norm>
(class).
<global-norm>
(class).
<isotropizing-indicator>
(class).
<local-test-with-dual>
(class).
<setup-enriched-ansatz-space>
(class).
<solve-dual-problem>
(class).
<standard-error-estimator>
(class).
approximate
(generic function).
block-p
(generic reader).
calculate-multistep-weights
(function).
call-with-ivip
(generic function).
call-with-time-step-problem
(generic function).
cell-rule
(generic function).
compute-error-approximant
(generic function).
compute-local-estimate
(generic function).
compute-weight-function
(generic function).
ellsys-initial-value-interpolation-coefficients
(function).
ellsys-time-step-coefficients
(function).
ensure-ansatz-space
(function).
ensure-mesh-quality-p
(generic reader).
eta->p2-vec
(function).
forced-times
(generic reader).
fraction
(generic reader).
from-level
(generic reader).
functional
(generic reader).
(setf functional)
(generic writer).
global-estimate
(generic function).
initial-value-interpolation-problem
(generic function).
local-estimate
(generic function).
maximal-time-step
(generic reader).
minimal-time-step
(generic reader).
model-time
(generic reader).
old-time-step
(generic reader).
pivot-factor
(generic reader).
select-estimator
(generic function).
select-indicator
(generic function).
test-error-estimator
(function).
test-error-indicator
(function).
test-fe-interpolation
(function).
test-fe-stationary
(function).
test-rothe
(function).
test-rothe-ellsys
(function).
time-step
(generic reader).
time-step-problem
(generic function).
time-stepping-scheme
(generic reader).
update-i-p-sol
(function).
with-ivip
(macro).
with-time-step-problem
(macro).
fl.parallel
This package provides some Femlisp extensions for parallel execution building on the BORDEAUX-THREADS and LPARALLEL libraries
bordeaux-threads
.
common-lisp
.
fl.debug
.
fl.macros
.
fl.utilities
.
lparallel
.
lparallel.kernel
.
lparallel.queue
.
accessing-exclusively
(macro).
accessing-exclusively-without-gcing
(macro).
locked-region-mixin
(class).
mp-dbg
(function).
mutex-mixin
(class).
mutex-object
(class).
mutex-wrap
(function).
new-kernel
(function).
p-map
(function).
parqueue
(class).
pwork
(function).
terminate-kernel
(function).
waitqueue-mixin
(class).
with-accumulators
(macro).
with-atomic-output
(macro).
with-femlisp-workers
(macro).
with-mutex
(macro).
with-mutual-exclusion
(macro).
with-region
(macro).
with-workers
(macro).
worker-count
(function).
worker-index
(function).
workers-available-p
(function).
*cachesize*
(special variable).
*debug-lock*
(special variable).
*distribute-workload-p*
(special variable).
*input-queue*
(special variable).
*number-of-threads*
(special variable).
*output-queue*
(special variable).
*pipeline-length*
(special variable).
*print-lock*
(special variable).
*set-affinity-p*
(special variable).
add-pipeline-worker
(function).
add-worker
(function).
allowed-processors
(function).
calculate-effective-cachesize
(function).
call-with-workers
(function).
copy-procinfo
(function).
execute-in-parallel
(function).
execute-in-pipeline
(function).
femlisp-multiprocessing-tests
(function).
femlisp-workers
(function).
finish
(generic function).
finished-p
(generic reader).
(setf finished-p)
(generic writer).
get-cachesize
(function).
get-cpuinfo
(function).
get-processors
(function).
get-workers
(function).
hand-over
(function).
histogram
(function).
lock-region
(function).
locked-region
(generic reader).
make-procinfo
(function).
mandelbrot-box
(function).
mandelbrot-iteration
(function).
mutex
(generic function).
notify
(generic function).
optimal-thread-number
(function).
perform-with-locked-region
(generic function).
pi-core
(function).
(setf pi-core)
(function).
pi-cpu
(function).
(setf pi-cpu)
(function).
pi-node
(function).
(setf pi-node)
(function).
pi-socket
(function).
(setf pi-socket)
(function).
remove-worker
(function).
send-task
(function).
simple-consing
(function).
speedup-test
(function).
tasks
(generic reader).
terminate-workers
(function).
test-femlisp-parallel
(function).
test-parallel-adaptions
(function).
thread-local-memoization-pool
(function).
thread-local-memoize
(function).
threads
(generic reader).
(setf threads)
(generic writer).
unlock-region
(function).
wait
(generic function).
waitqueue
(generic reader).
work
(generic reader).
work-group
(class).
fl.schaefer-turek
Package for the Schaefer-Turek benchmark.
common-lisp
.
fl.cdr
.
fl.debug
.
fl.demo
.
fl.dictionary
.
fl.discretization
.
fl.domains
.
fl.elasticity
.
fl.elasticity-fe
.
fl.ellsys
.
fl.ellsys-fe
.
fl.flow-application
.
fl.function
.
fl.geomg
.
fl.iteration
.
fl.macros
.
fl.matlisp
.
fl.mesh
.
fl.multigrid
.
fl.navier-stokes
.
fl.navier-stokes-fe
.
fl.parallel
.
fl.plot
.
fl.problem
.
fl.strategy
.
fl.tests
.
fl.utilities
.
*nabh-cd*
(special variable).
*nabh-cl*
(special variable).
benchmark-calculation
(function).
benchmark-domain
(function).
benchmark-problem
(function).
classify-benchmark-domain
(function).
inflow-velocity
(function).
make-stationary-schaefer-turek-demo
(function).
schaefer-turek-observe
(function).
st-cylinder
(function).
st-cylinder-boundary-p
(function).
test-schaefer-turek
(function).
fl.lapack
common-lisp
.
fl.debug
.
fl.dictionary
.
fl.macros
.
fl.port
.
fl.utilities
.
call-lapack
(function).
call-lapack-macro
(macro).
call-lapack-with-error-test
(function).
call-lapack-with-error-test-macro
(macro).
cl->lapack-type
(function).
lapack
(function).
lapack-available-p
(function).
*hegv*
(special variable).
*lapack-templates*
(special variable).
*lapack-types*
(special variable).
*nrm2*
(special variable).
*underscore-p*
(special variable).
base-type
(function).
check-spec
(function).
convert-to-alien-type
(function).
create-lapack-function
(function).
define-lapack-template
(macro).
ensure-lapack-type
(function).
extract-applicable-spec
(function).
insert-lapack-template
(function).
lapack-convert
(generic function).
lapack-external-name
(function).
lapack-lisp-name
(function).
lapack-type-p
(function).
number-type
(function).
remove-all-lapack-functions
(function).
test-lapack
(function).
translate-types
(function).
fl.application
This package uses most other Femlisp packages. It is meant to be the package a Femlisp user works in.
common-lisp
.
fl.cdr
.
fl.debug
.
fl.demo
.
fl.dictionary
.
fl.discretization
.
fl.domains
.
fl.elasticity
.
fl.elasticity-fe
.
fl.ellsys
.
fl.ellsys-fe
.
fl.function
.
fl.geomg
.
fl.iteration
.
fl.macros
.
fl.matlisp
.
fl.mesh
.
fl.multigrid
.
fl.navier-stokes
.
fl.navier-stokes-fe
.
fl.parallel
.
fl.plot
.
fl.problem
.
fl.strategy
.
fl.tests
.
fl.utilities
.
*articles-demo*
(special variable).
*boundary-coeffs-demo*
(special variable).
*effcoeff-root*
(special variable).
*effective-diffusion-demo*
(special variable).
*equation-demo*
(special variable).
*interior-coeffs-demo*
(special variable).
*multigrid-demo*
(special variable).
*result*
(special variable).
^
(function).
correction-tensor
(function).
effective-tensor
(function).
storing
(macro).
*adaptivity-demo*
(special variable).
*amg-cdr-demo*
(special variable).
*books-demo*
(special variable).
*cbl-observe*
(special variable).
*cdr-demo*
(special variable).
*courses-demo*
(special variable).
*discretization-demo*
(special variable).
*effective-coeffs-demo*
(special variable).
*effective-elasticity-demo*
(special variable).
*eigenvalue-demo*
(special variable).
*elasticity-demo*
(special variable).
*heat-demo*
(special variable).
*hr-delta*
(special variable).
*hr-evaluation-point*
(special variable).
*hr-gradx-value*
(special variable).
*laplace-demo*
(special variable).
*refinement-demos*
(special variable).
*skew-4d-to-3d*
(special variable).
*solver-demo*
(special variable).
*talks-demo*
(special variable).
*u_1/2-observe*
(special variable).
1d-graph
(function).
amg-cdr-solver
(function).
average-coefficient
(function).
ball-diffusion
(function).
boundary-layer-cell-problem
(function).
bpx-demo-computation
(function).
bratu-computation
(function).
bratu-tests
(function).
cdr-bl-computation
(function).
cdr-cell-problem
(function).
cdr-interior-effective-coeff-demo
(function).
cell-dimension-and-point-test
(function).
cell-solve
(function).
check-h-convergence
(function).
check-p-convergence
(function).
chequerboard-problem
(function).
compute-cbl
(function).
convert-elasticity-correction
(function).
create-refinement-demo
(function).
display-stiffness-matrix
(function).
elahom-longtime-stability-test
(function).
elahom-performance-calculation
(function).
elahom-performance-initialize
(function).
elahom-performance-test
(function).
elahom-performance-tests
(function).
elasticity-cell-problem-gamma
(function).
elasticity-cell-problem-reaction
(function).
elasticity-inlay-cell-problem
(function).
elasticity-interior-effective-coeff-demo
(function).
elasticity-model-problem-computation
(function).
evp-cdr-test
(function).
exact-1d-solution
(function).
exact-2d-solution
(function).
exact-3d-solution
(function).
further-laplace-tests
(function).
heat-equation-computation
(function).
heuveline-rannacher-computation
(function).
heuveline-rannacher-domain
(function).
heuveline-rannacher-dual-problem
(function).
heuveline-rannacher-dual-problem-fe-rhs
(function).
heuveline-rannacher-dual-problem-rhs
(function).
heuveline-rannacher-problem
(function).
heuveline-rannacher-rhs
(function).
hom-cdr-tests
(function).
inlay-block-decomposition
(function).
inlay-cell-problem
(function).
install-electromagnetic-potential-demo
(function).
iteration-test
(function).
laplace-eigenvalue-computation
(function).
laplace-model-problem-locally-refined
(function).
m+-nil-reducer
(function).
make-bpx-demo
(function).
make-bratu-demo
(function).
make-cdr-bl-demo
(function).
make-effective-diffusion-inlay-domain-demo
(function).
make-effective-diffusion-porous-domain-demo
(function).
make-effective-elasticity-inlay-domain-demo
(function).
make-effective-elasticity-porous-domain-demo
(function).
make-elasticity-model-problem-demo
(function).
make-heat-equation-demo
(function).
make-heuveline-rannacher-demo
(function).
make-lagrange-basis-demo
(function).
make-laplace-eigenvalue-demo
(function).
make-model-problem-demo
(function).
make-plot-iteration-behavior-demo
(function).
make-smoother-demo
(function).
make-smoother-performance-graph-demo
(function).
make-stiffness-matrix-demo
(function).
make-two-grid-behavior-demo
(function).
mconvert
(function).
mg-cdr-tests
(function).
model-problem-computation
(function).
model-problem-discretization
(function).
model-problem-stiffness-matrix
(function).
plot-diffusion
(function).
plot-iteration-behavior
(function).
plot-lagrange-basis
(function).
porous-cell-problem
(function).
problem-discretization
(function).
regression-test-femlisp
(function).
simple-ball-inlay-cell-problem
(function).
simple-square-inlay-cell-problem
(function).
sinusoidal-boundary-layer-cell-problem
(function).
smooth-coefficient-cell-problem
(function).
smoother-demo-execute
(function).
smoother-graph-execute
(function).
smoother-performance-test
(function).
solve-laplace
(function).
solve-sturm-problem
(function).
sturm-domain
(function).
sturm-mesh
(function).
sturm-problem
(function).
test-amg-cdr
(function).
test-bl-cdr
(function).
test-elasticity-model-problem
(function).
test-heat-equation
(function).
test-heuveline-rannacher
(function).
test-homogenization-elasticity
(function).
test-laplace-model-problem
(function).
test-multigrid-demos
(function).
test-refined-laplace-problem
(function).
test-sturm
(function).
test-v-cycle-convergence
(function).
fl.debug
This package adds debugging tools to Femlisp. This is a
slightly modified version of the debugging suite proposed in @cite{(Norvig
1992)}.
common-lisp
.
fl.alienc
.
fl.amop
.
fl.application
.
fl.dictionary
.
fl.discretization
.
fl.domains
.
fl.ellsys
.
fl.ellsys-fe
.
fl.flow-application
.
fl.geomg
.
fl.graphic
.
fl.iteration
.
fl.konwihr
.
fl.lapack
.
fl.matlisp
.
fl.mesh
.
fl.multigrid
.
fl.navier-stokes-fe
.
fl.parallel
.
fl.plot
.
fl.port
.
fl.problem
.
fl.schaefer-turek
.
fl.strategy
.
fl.utilities
.
net.scipolis.relations
.
*dbg-ids*
(special variable).
*error-for-debug-output*
(special variable).
fl.elasticity
Defines elasticity problems.
common-lisp
.
fl.dictionary
.
fl.ellsys
.
fl.function
.
fl.macros
.
fl.matlisp
.
fl.mesh
.
fl.problem
.
fl.utilities
.
<elasticity-problem>
(class).
check-elasticity-tensor
(function).
elasticity-model-problem
(function).
isotropic-elasticity-tensor
(function).
isotropic-elasticity-tensor-coefficient
(function).
test-elasticity
(function).
fl.alien
This package loads some foreign libraries and does set up a Lisp interface for it.
*foreign-code-loaders*
(special variable).
*zero-vector*
(special variable).
direct-solver-test
(function).
enumerate
(macro).
load-blas-library
(function).
load-lapack-library
(function).
load-superlu-library
(function).
load-umfpack-library
(function).
reload-foreign-code
(function).
test-superlu
(function).
test-umfpack
(function).
when-foreign-vector-operations
(macro).
fl.function
common-lisp
.
fl.dictionary
.
fl.macros
.
fl.matlisp
.
fl.utilities
.
<constant-function>
(class).
<function>
(class).
<linear-function>
(class).
<periodic-polygon>
(class).
<polygon>
(class).
<special-function>
(class).
circle-function
(function).
coefficients
(slot).
coefficients
(generic reader).
cubic-spline
(function).
degree
(generic function).
differentiable-p
(generic function).
differentiate
(generic function).
domain-dimension
(generic function).
eliminate-small-coefficients
(function).
ellipse-matrix
(function).
evaluate-gradient
(generic function).
factors
(generic function).
gradient
(generic reader).
homotopy
(function).
image-dimension
(generic reader).
integrate-simple-polynomial
(function).
interval-method
(function).
lagrange-polynomials
(function).
langevin
(function).
langevinx
(function).
make-polynomial
(function).
maximal-partial-degree
(generic function).
multiple-evaluate
(generic function).
multiple-evaluate-gradient
(generic function).
n-variate-monomials-of-degree
(function).
numerical-complex-derivative
(function).
numerical-derivative
(function).
numerical-gradient
(function).
partial-degree
(generic function).
poly*
(generic function).
poly-expt
(generic function).
poly-exterior-product
(function).
polynomial
(class).
project-to-ellipsoid
(function).
project-to-sphere
(function).
shift-polynomial
(generic function).
sparse-function
(macro).
sparse-real-derivative
(function).
special-1d-function
(function).
split-into-monomials
(function).
total-degree
(generic function).
transform-function
(function).
unit?
(generic function).
variance
(generic function).
xn-distortion-function
(function).
zero
(generic function).
zero?
(generic function).
*langevin-taylor-29*
(special variable).
*print-polynomial-variance*
(special variable).
<linearly-transformed-function>
(class).
apply-1d-stencil
(function).
check-and-calculate-depth-of
(function).
domain-a
(generic reader).
domain-b
(generic reader).
evaluate-exterior-polynomial-product
(function).
evaluate-k-jet
(generic function).
evaluator
(generic reader).
exponents->monomial-list
(function).
find-segment-coordinates
(function).
image-a
(generic reader).
image-b
(generic reader).
intermediate-coordinates
(function).
jet
(generic reader).
k-jet
(generic function).
k-variate-zero
(function).
m-times
(function).
nest
(function).
nr-segments
(generic function).
original
(generic reader).
points
(generic reader).
poly+
(generic function).
poly-eval
(function).
print-polynomial
(function).
simplify
(function).
smoothness
(generic function).
solve-moment-system
(function).
spline-right-hand-side
(function).
test-function
(function).
test-gradient
(function).
test-polynom
(function).
test-spline
(function).
unit
(generic function).
value
(generic reader).
write-monomial
(function).
zero-k-jet
(function).
fl.tests
This package provides routines for building a simple
regression test suite. Most files in @femlisp{} contain a test function at
the end which checks several critical features which the file or module
provides. By calling the function @function{adjoin-test} at load time,
this function is added to a list of functions to be checked. After loading
@femlisp{}, all functions in this list can be executed one after the other
by calling the function @function{test-femlisp}. Errors and exceptions are
registered and finally reported. It is very much recommended to run this
test suite before a release.
common-lisp
.
adjoin-test
(function).
remove-test
(function).
small-test
(macro).
test-femlisp
(function).
*bugs*
(special variable).
*failed*
(special variable).
*small-tests*
(special variable).
*testing*
(special variable).
*tests*
(special variable).
adjoin-bug-test
(function).
adjoin-test-suite
(function).
clear-bug-tests
(function).
clear-tests
(function).
test-function
(function).
fl.matlisp
This package provides a Common Lisp version of full
matrices with elements being numbers of a given type. Those classes are
automatically generated when needed. It provides also part of the BLAS and
LAPACK operations for those matrices. The corresponding methods are
automatically compiled for the given matrix classes. The interface is very
similar to the library Matlisp @cite{(Matlisp)}, which provides a CLOS
interface to the Fortran BLAS and LAPACK routines.
common-lisp
.
fl.amop
.
fl.debug
.
fl.dictionary
.
fl.lapack
.
fl.macros
.
fl.parallel
.
fl.utilities
.
*mzerop-threshold*
(special variable).
*parallel-vector-algebra*
(special variable).
*print-matrix*
(special variable).
*print-matrix-element-format*
(special variable).
*print-tensor*
(special variable).
*standard-matrix-default-element-type*
(special variable).
<matrix>
(class).
<sparse-matrix>
(class).
<sparse-tensor>
(class).
<sparse-vector>
(class).
<submatrix>
(class).
<vector>
(class).
access-type
(generic function).
add-svec-to-local-block
(generic function).
area-of-span
(function).
average
(function).
axpy
(generic function).
axpy!
(generic function).
blocks
(generic reader).
cholesky
(function).
col-key->size
(generic function).
col-keys
(generic function).
column
(function).
column-table
(generic reader).
(setf column-table)
(generic writer).
combined-projection
(function).
compressed->matlisp
(generic function).
compressed-eye
(function).
compressed-matrix
(function).
compressed-matrix
(class).
compressed-pattern
(class).
copy
(generic function).
copy!
(generic function).
det
(generic function).
det-from-lr
(function).
diag
(function).
diagonal
(generic function).
diagonal-sparse-tensor
(function).
dimensions
(generic reader).
display
(generic function).
docol
(macro).
docols
(macro).
dorow
(macro).
dorows
(macro).
dot
(generic function).
dot-abs
(generic function).
dotensor
(macro).
double-vec
(function).
double-vec
(type).
dovec
(macro).
element-type
(generic function).
elementary
(function).
ensure-matlisp
(generic function).
entries
(generic function).
(setf entries)
(generic writer).
entry-allowed-p
(generic function).
extend-by-identity
(function).
extract-if
(generic function).
extract-value-blocks
(generic function).
eye
(function).
fd-laplace-matrix
(function).
fill!
(generic function).
fill-random!
(generic function).
for-each-col-key
(generic function).
for-each-entry
(generic function).
for-each-entry-and-key
(generic function).
for-each-entry-and-vector-index
(generic function).
for-each-entry-in-col
(generic function).
for-each-entry-in-row
(generic function).
for-each-key
(generic function).
for-each-key-and-entry-in-col
(generic function).
for-each-key-and-entry-in-row
(generic function).
for-each-key-in-col
(generic function).
for-each-key-in-row
(generic function).
for-each-row-key
(generic function).
full-ccs-pattern
(function).
full-compressed-pattern
(function).
full-crs-pattern
(function).
full-tensor
(function).
full-tensor
(class).
gemm
(function).
gemm!
(function).
gemm-nn!
(generic function).
gemm-nt!
(generic function).
gemm-tn!
(generic function).
gemm-tt!
(generic function).
gesv
(function).
gesv!
(generic function).
getrf
(function).
getrf!
(generic function).
getrs
(function).
getrs!
(generic function).
ggev
(generic function).
hegv
(generic function).
hyperplane-normal
(function).
in-pattern-p
(generic function).
index-range-disjoint-p
(function).
indices
(generic reader).
(setf indices)
(generic writer).
int-vec
(function).
int-vec
(type).
join
(function).
join-horizontal!
(generic function).
join-instance
(generic function).
join-vertical!
(generic function).
key->size
(generic function).
keys->pattern
(generic function).
keys-of-column
(generic function).
keys-of-row
(generic function).
kronecker-product
(generic function).
l2-norm
(generic function).
laplace-full-matrix
(function).
laplace-sparse-matrix
(function).
linf-norm
(generic function).
lp-norm
(generic function).
m*
(generic function).
m*-nt
(generic function).
m*-product-instance
(generic function).
m*-tn
(generic function).
m*-tn-product-instance
(generic function).
m+
(generic function).
m+!
(generic function).
m-
(function).
m-!
(function).
m-incf
(macro).
m.*
(function).
m/
(function).
make-domain-vector-for
(generic function).
make-double-vec
(function).
make-full-block-analog
(function).
make-full-crs-matrix
(function).
make-image-vector-for
(generic function).
make-int-vec
(function).
make-matrix
(function).
make-matrix-block
(function).
make-real-matrix
(function).
make-real-tensor
(function).
make-real-vector
(function).
make-sparse-automorphism
(function).
make-sparse-matrix
(function).
make-sparse-vector
(function).
make-uint-vec
(function).
map-matrix
(generic function).
mat-diff
(generic function).
matrix-block
(generic function).
(setf matrix-block)
(generic function).
matrix-col-p
(function).
matrix-column
(generic function).
(setf matrix-column)
(generic function).
matrix-row
(generic function).
(setf matrix-row)
(generic function).
matrix-row-p
(function).
matrix-slice
(generic function).
matrix-transpose-instance
(generic function).
mequalp
(generic function).
mextract!
(generic function).
midentity-p
(generic function).
minject!
(generic function).
mrandom
(function).
mref
(generic function).
(setf mref)
(generic function).
msquare-p
(generic function).
msymmetric-p
(generic function).
multiplicity
(slot).
multiplicity
(slot).
multiplicity
(generic function).
mzerop
(generic function).
ncols
(generic function).
norm
(generic function).
normalize
(function).
normalize!
(function).
nr-of-entries
(generic function).
nrows
(generic function).
number-coercer
(function).
number-of-nonzero-entries
(generic function).
ones
(function).
pattern
(generic reader).
range-and-domain-disjoint-p
(function).
rank
(generic function).
read-compressed-matrix
(function).
rearrange-tensor
(function).
remove-column
(generic function).
remove-key
(generic function).
remove-keys
(function).
remove-projection-range
(generic function).
remove-row
(generic function).
row
(function).
row-key->size
(generic function).
row-keys
(generic function).
row-table
(generic reader).
(setf row-table)
(generic writer).
row<-id
(generic function).
scal
(function).
scal!
(generic function).
scalar-type
(generic function).
set-svec-to-local-block
(generic function).
shift-diagonal-inverter
(function).
shift-tensor
(generic function).
show
(generic function).
sizes
(generic reader).
slice
(generic function).
sparse-ldu
(generic function).
sparse-m*
(generic function).
sparse-matrix->ccs
(function).
sparse-matrix->matlisp
(generic function).
sparse-tensor
(function).
sparse-vector->matlisp
(function).
standard-matrix
(function).
standard-matrix
(class).
standard-matrix-p
(function).
store
(generic function).
store-vector
(function).
store-vector
(class).
submatrix
(generic function).
t*
(generic function).
tensor
(class).
tensor-for-each
(generic function).
tensor-map
(generic function).
tensor-ref
(generic function).
(setf tensor-ref)
(generic function).
total-entries
(generic function).
total-nrows
(generic function).
transpose
(generic function).
transpose!
(generic function).
transposed-pattern
(generic function).
uint
(type).
uint-vec
(function).
uint-vec
(type).
unit-vector
(function).
vector-block
(generic function).
(setf vector-block)
(generic function).
vector-of
(function).
vector-slice
(generic function).
vlength
(generic function).
vref
(generic function).
(setf vref)
(generic function).
x<-0
(function).
zeros
(function).
(<block-definition-mixin>⎵<ht-sparse-matrix>)
(class).
(compressed-matrix⎵(store-vector⎵double-float⎵dynamic⎵nil))
(class).
(standard-matrix⎵double-float)
(class).
(store-vector⎵double-float⎵dynamic⎵nil)
(class).
*blas-macro-table*
(special variable).
*blas2-operation-count*
(special variable).
*blas3-operation-count*
(special variable).
*cholesky-threshold*
(special variable).
*crs-test-matrix*
(special variable).
*crs-test-matrix-entries*
(special variable).
*default-cm-solver*
(special variable).
*maxrows-for-direct-solving*
(special variable).
*print-matrix-pretty*
(special variable).
*sparse-test-matrix*
(special variable).
*test-blas-vector-generator*
(special variable).
<block-definition-mixin>
(class).
<ht-sparse-matrix>
(class).
<ht-sparse-vector>
(class).
<key->size-mixin>
(class).
<ldu-sparse>
(class).
<sparse-dictionary-matrix>
(class).
<sparse-dictionary-vector>
(class).
assert-same-size
(function).
automorphism-p
(generic function).
blas-macro
(generic function).
canonical-number-type
(function).
check-cpairs
(function).
combine-real-and-imag-part
(function).
combine-svec-block
(function).
complex-to-real-vector
(function).
complex-type
(function).
compressed-eye-pattern
(function).
compressed-gemm!
(function).
compute-offset
(function).
conditional-compile
(macro).
consecutive-p
(function).
decompose-offsets
(function).
define-blas-macro
(function).
define-blas-template
(macro).
define-blas2-template
(macro).
define-default-gemm!
(macro).
define-matrix-matrix-operation
(macro).
define-vector-blas-method
(macro).
dimensions->offsets
(function).
direct-solver-performance-test
(function).
display-block-matrix-graph
(function).
distance-numbering
(function).
drop-content
(generic function).
equal-type
(function).
extended-mclear!
(generic function).
extended-minject!
(generic function).
fd-laplace-matrix-triplets
(function).
find-compressed-offset
(function).
find-first-position>=
(function).
find-ordering
(generic function).
five-point-stencil-matrix
(function).
fl-matlisp->matlisp
(function).
float-accuracy
(function).
float-type-union
(function).
for-each-index
(function).
for-each-offset-pair
(function).
generate-sparse-matrix-vector-gemm!-template
(function).
generate-standard-matrix-gemm!-template
(function).
get-place-in-tensor
(function).
get-remaining-inds
(function).
if-lapack-function
(macro).
int
(type).
key->index
(function).
laplace-stencil
(function).
last-key
(function).
ldu-diagonal
(generic reader).
list->real-tensor
(function).
lower-left
(generic reader).
m*-nt-product-instance
(generic function).
m.*!
(generic function).
make-analog-with-multiplicity
(function).
make-full-compressed-matrix
(function).
make-tensor-index
(function).
matlisp
(function).
matlisp->fl-matlisp
(function).
matlisp-symbol
(function).
matop-x->y!
(generic function).
matop-x<-y!
(generic function).
matop-y+=x!
(generic function).
matop-y-=x!
(generic function).
matrix-loop-expansion
(function).
modify-diagonal
(function).
msym-ncols
(function).
msym-nrows
(function).
msym-pos
(function).
msym-size
(function).
new-blas-method-code
(function).
new-dispatcher-code
(function).
number-of-stored-entries
(generic function).
number-super-type
(function).
numbering
(function).
offset0
(generic reader).
offsets
(generic reader).
ordering
(generic reader).
orientation
(generic reader).
pool-mixin
(class).
print-element
(generic function).
print-matlab-format
(generic function).
print-matrix
(function).
print-tensor
(function).
read-matrix
(generic function).
real-to-complex-vector
(function).
select-linear-solver
(generic function).
slice-copy
(generic function).
standard-matrix-generator
(function).
standard-matrix-indexing
(function).
starts
(generic reader).
static-store-vector
(class).
stencil-matrix
(function).
store-vector-generator
(function).
superlu-solver
(function).
swap-rows
(function).
symbol-store
(function).
symmetric-packed-store
(function).
test-arrays
(function).
test-blas
(function).
test-blas-basic
(function).
test-call-matlisp
(function).
test-compressed
(function).
test-ggev
(function).
test-hegv
(function).
test-matlisp-vector-combination
(function).
test-number-blas
(function).
test-sparse-matrix
(function).
test-sparse-tensor
(function).
test-sparse-vector
(function).
test-sparselu
(function).
test-standard-matrix
(function).
test-standard-matrix-blas
(function).
test-standard-matrix-lr
(function).
test-store-vector-blas
(function).
test-tensor
(function).
test-vector
(function).
test-vector-methods
(function).
translate-list
(function).
trsm
(function).
umfpack-solver
(function).
uniform-number-type
(function).
upper-right
(generic reader).
x<-eye
(generic function).
fl.ellsys-fe
Finite element discretization of a general second order
elliptic system, see the description in the ELLSYS package. The result is
a local matrix A and local rhs b. They will usually depend on u_old which
is stored in the solution vector.
common-lisp
.
fl.debug
.
fl.discretization
.
fl.ellsys
.
fl.function
.
fl.macros
.
fl.matlisp
.
fl.mesh
.
fl.problem
.
fl.utilities
.
*upwinding*
(special variable).
discretize-ellsys
(function).
ellsys-fe-tests
(function).
ensure-m-matrix-property
(function).
fl.plot
This package provides a high-level interface to
plotting. It defines a generic function @code{PLOT} which can be used to
plot several types of objects, e.g. cells, meshes, finite element and
coefficient functions.
common-lisp
.
fl.debug
.
fl.demo
.
fl.dictionary
.
fl.discretization
.
fl.function
.
fl.graphic
.
fl.macros
.
fl.matlisp
.
fl.mesh
.
fl.problem
.
fl.utilities
.
*dx-bug-transformation*
(special variable).
*dx-shapes*
(special variable).
*plot*
(special variable).
*plot-transformation*
(special variable).
*position-header*
(special variable).
1d-surface-cells
(function).
compute-all-position-component-values
(function).
compute-all-position-values
(function).
compute-cell-vertices
(function).
compute-position-indices
(function).
connections
(function).
destructure-polygon
(function).
dx-position-header
(function).
ensure-polygons
(function).
find-local-index
(function).
(setf find-local-index)
(function).
local-evaluation-matrix
(function).
make-key
(function).
meshplot-position-array
(function).
nr-of-refinement-vertices
(function).
plot-cells
(generic function).
plot-dimension
(function).
plot-transformation
(function).
position-array
(function).
refcell-refinement-vertex-positions
(function).
refcell-refinement-vertices
(function).
test-coeffplot
(function).
test-function-plot
(function).
test-meshplot
(function).
test-plot-dx
(function).
test-plot-gnuplot
(function).
vertex-index-table
(function).
write-positions
(function).
write-vtk-positions
(function).
net.scipolis.relations
This package provides relations built upon binary trees.
relations
common-lisp
.
fl.amop
.
fl.debug
.
fl.macros
.
fl.utilities
.
arity
(generic reader).
list-comparison
(function).
make-number-relation
(function).
r-insert
(generic function).
r-remove
(generic function).
r-select
(generic function).
r-select-1
(function).
r-some
(generic function).
relation
(class).
tree-leaves
(function).
ensure-index
(function).
entries
(function).
eql-relation
(class).
extract-from-seq-in-order
(function).
find-first-path-geq
(function).
find-first-path-satisfying
(function).
find-last-path-leq
(function).
for-each-in-range
(function).
from-key
(function).
get-index
(function).
index-key-function
(generic function).
indices
(generic reader).
inverse-direction
(function).
make-index
(function).
map-key
(function).
needed-order
(function).
new-index
(function).
next
(function).
test-relations
(function).
to-key
(function).
fl.alienc
Imports some functions from the standard C library.
common-lisp
.
fl.debug
.
fl.macros
.
fl.port
.
fl.utilities
.
test-alienc
(function).
fl.start
This package contains some routines called during initialization of Femlisp.
common-lisp
.
*blas-library*
(special variable).
*dx-path*
(special variable).
*femlisp-version*
(special variable).
*gnuplot-path*
(special variable).
*images-directory*
(special variable).
*lapack-library*
(special variable).
*meshes-directory*
(special variable).
*superlu-library*
(special variable).
*tetgen-path*
(special variable).
*umfpack-library*
(special variable).
femlisp-banner
(function).
femlisp-herald
(function).
femlisp-pathname
(function).
*femlisp-directory*
(special variable).
*femlisp-pathname*
(special variable).
*triangle-path*
(special variable).
femlisp-check-features
(function).
femlisp-restart
(function).
femlisp-version
(function).
message
(function).
fl.discretization
The @package{FL.DISCRETIZATION} package defines
@class{<discretization>} as an abstract class and
@class{<fe-discretization>} as a concrete derived class.
The key for local assembly is given by the generic function
@function{get-fe}, which yields a suitable finite element for a given cell.
The value of @function{get-fe} is a class @class{<fe>} for scalar problems
or @class{<vector-fe>} for vector-valued problems which contains
information on base functions and node functionals. Another generic
function @function{quadrature-rule} computes memoized quadrature rules for
those finite elements.
Obviously, also non-standard finite element discretizations like hp-methods
would fit into this scheme. The key for local assembly is given by the
generic function @function{get-fe}, which yields a suitable finite element
for a given cell. The value of @function{get-fe} is a class @class{<fe>}
for scalar problems or @class{<vector-fe>} for vector-valued problems which
contains information on base functions and node functionals. Another
generic function @function{quadrature-rule} computes memoized quadrature
rules for those finite elements.
The file @path{lagrange.lisp} provides Lagrange finite elements of
arbitrary order. The evaluation points for the node functionals may be
chosen either uniformly distributed or at the Gauss-Lobatto points. The
latter choice of points yields better stability properties but is
restricted to cube meshes. Also functions for constructing cell mappings
by pointwise evaluation of the domain boundary are provided here, which may
be used to construct isoparametric domain approximations.
In the file @path{fedisc.lisp}, the function @function{fe-discretize} is
defined. This function performs the standard steps for finite element
discretization: interior assembly, assembly and elimination of hanging-node
and essential-boundary constraints. It works on a blackboard as explained
in Section @ref{Blackboards} and can reuse already available matrix-vector
structure. There is a somewhat less flexible interface provided by the
funtion @function{discretize-globally} which calls
@function{fe-discretize}.
In the files @path{ellsys-fe.lisp}, @path{elasticity-fe.lisp} and @path{navier-stokes.lisp} one can find methods for local assembly for the different problems. They are defined in own packages which use both the package @package{FL.DISCRETIZATION} and the package for the particular problem.
disc
common-lisp
.
fl.cdr
.
fl.debug
.
fl.dictionary
.
fl.function
.
fl.iteration
.
fl.macros
.
fl.matlisp
.
fl.mesh
.
fl.parallel
.
fl.problem
.
fl.utilities
.
*quadrature-order*
(special variable).
*suggested-discretization-order*
(special variable).
<ansatz-space-automorphism>
(class).
<ansatz-space-morphism>
(class).
<ansatz-space-vector>
(class).
<ansatz-space>
(class).
<discretization>
(class).
<fe-discretization>
(class).
<scalar-fe-discretization>
(class).
<scalar-fe>
(class).
<standard-fe-discretization>
(class).
<vector-fe-discretization>
(class).
<vector-fe>
(class).
ansatz-space
(generic reader).
assemble-constraints
(function).
assemble-interior
(generic function).
cell-integrate
(generic function).
cell-key
(function).
cell-lagrange-fe
(function).
choose-start-vector
(generic function).
component
(generic function).
constrained-interpolation-matrix
(function).
construct-coeff-input
(function).
discretization-order
(generic function).
discretize
(generic function).
discretize-globally
(function).
discretize-locally
(generic function).
do-dof
(macro).
dof
(class).
dof-component
(generic reader).
dof-coord
(generic reader).
dof-functional
(generic reader).
dof-gcoord
(generic reader).
dof-in-vblock-index
(generic reader).
dof-index
(generic reader).
dof-subcell-index
(generic reader).
domain-ansatz-space
(generic function).
eliminate-constraints
(function).
essential-boundary-constraints
(generic function).
extended-extract
(generic function).
fe-basis
(generic reader).
fe-cell-geometry
(function).
fe-class
(slot).
fe-class
(generic function).
fe-discretize
(function).
fe-dofs
(generic reader).
(setf fe-dofs)
(generic writer).
fe-extraction-information
(function).
fe-extreme-values
(generic function).
fe-gradient
(generic function).
fe-integrate
(generic function).
fe-local-gradient
(generic function).
fe-local-value
(generic function).
fe-value
(generic function).
gauss-lobatto-points
(function).
gauss-lobatto-points-on-unit-interval
(function).
gauss-lobatto-rule
(function).
gauss-rule
(function).
get-fe
(generic function).
get-local-from-global-mat
(generic function).
get-local-from-global-vec
(generic function).
hierarchical-mesh
(generic function).
image-ansatz-space
(generic function).
increment-global-by-local-mat
(generic function).
increment-global-by-local-vec
(generic function).
inner-dof-indices
(function).
integration-points
(generic reader).
integration-rule
(function).
integration-rule
(class).
integration-weights
(generic reader).
interior-dof?
(function).
interpolate-on-refcell
(generic function).
interpolation-matrix
(function).
ip-gradients
(generic function).
ip-values
(generic function).
lagrange-ansatz-space
(function).
lagrange-fe
(function).
lagrange-mapping
(function).
local-imatrix
(function).
local-pmatrix
(function).
local-transfer-matrix
(function).
make-ansatz-space-automorphism
(function).
make-ansatz-space-morphism
(function).
make-ansatz-space-vector
(function).
make-fe-ansatz-space
(function).
make-local-mat
(generic function).
make-local-vec
(function).
mesh
(generic function).
multiple-evaluate-local-fe
(function).
nr-of-dofs
(generic function).
nr-of-inner-dofs
(generic function).
problem
(generic function).
product-rule
(function).
projection-matrix
(function).
quadrature-rule
(generic function).
random-ansatz-space-vector
(function).
select-discretization
(generic function).
set-global-to-local-mat
(generic function).
set-global-to-local-vec
(generic function).
sort-keys-hierarchically
(function).
special-ansatz-space-vector
(function).
subcell-ndofs
(function).
subcell-offsets
(function).
transfer-matrix
(function).
weights-for-ips
(function).
*check-hash-table*
(special variable).
*check-lock*
(special variable).
*dof-precise-evaluation*
(special variable).
*interpolation-type*
(special variable).
*ipt-tolerance*
(special variable).
*local-interpolation-matrix*
(special variable).
*local-mat-pool*
(special variable).
*local-projection-matrix*
(special variable).
*quadrature-rule-float-type*
(special variable).
*quadrature-rule-internal-precision*
(special variable).
*use-pool-p*
(special variable).
<ansatz-space-object>
(class).
<domain-image-mixin>
(class).
<fe>
(class).
add-local-part!
(function).
assemble-cell
(function).
assembly-heap
(function).
c-dirichlet-dof-p
(function).
c-find-master
(function).
c-slave-dof-p
(function).
cell-volume
(function).
children-offsets
(function).
chunk-enqueue
(generic function).
chunk-queue
(class).
combined-constraints
(function).
compute-duals
(function).
compute-energy
(function).
compute-essential-boundary-constraints
(function).
compute-local-imatrix
(generic function).
compute-local-pmatrix
(generic function).
cone-rule-for-simplex
(function).
copy-ip
(function).
delay-possible-p
(function).
discretization
(generic reader).
dof-subcell
(generic reader).
domain-volume
(function).
eliminate-hanging-node-constraints-from-matrix
(function).
ensure-constraints
(function).
essential-constraints-for-key
(function).
evaluate-shapes-at-points
(function).
extract-ip-data
(function).
fast-ip-gradients
(function).
fe-discretize-linear-problem
(function).
fe-factors
(generic reader).
fe-secondary-information
(function).
fill-local-from-global-mat
(generic function).
fill-local-from-global-vec
(generic function).
gauss-lobatto-family
(function).
gauss-lobatto-rule-on-unit-interval
(function).
gauss-points-for-weight
(function).
gauss-rule-for-simplex
(function).
gauss-rule-for-weight
(function).
get-matrix-blocks
(function).
global-local-matrix-operation
(generic function).
global-local-vector-operation
(generic function).
gram-matrix
(function).
hanging-nodes-constraints
(function).
high-precision-integration-points
(function).
high-precision-integration-weights
(function).
high-precision-ips
(generic reader).
identification-constraints
(function).
identification-matrix
(function).
integrate-monomial
(function).
integrate-monomial-over-simplex-product
(function).
integrate-over-reference-product-cell
(function).
integrate-over-reference-simplex
(function).
interpolate-coefficient
(function).
interpolate-function
(function).
interpolation-function
(generic function).
ip-coords
(function).
(setf ip-coords)
(function).
ip-gradients-at-point
(generic function).
ip-values-at-point
(generic function).
ip-weight
(function).
(setf ip-weight)
(function).
jacobi-polynomial
(function).
key-cells
(function).
lagrange-basis
(function).
lagrange-basis-boundary
(function).
lagrange-basis-inner
(function).
lagrange-basis-simplex
(function).
lagrange-boundary-dofs
(function).
lagrange-coords-1d
(function).
lagrange-dofs
(function).
lagrange-inner-coords
(generic function).
lagrange-polynomial-vector
(function).
lagrange-reference-parameters
(function).
legendre-polynomial
(function).
local-interpolation-matrix
(function).
local-projection-matrix
(function).
lock
(function).
make-ip
(function).
new-gauss-rule-for-simplex
(function).
new-vector-dof-from-dof
(function).
p-nomials-of-degree
(function).
precise-coord
(generic reader).
precise-gcoord
(generic reader).
project
(function).
projection-coefficients
(function).
q-nomials-of-degree
(function).
rule-factors
(generic reader).
safer-find-cell-from-position
(function).
set-constraints
(generic function).
set-lagrange-ansatz-space-vector
(function).
shapes-and-dof-coords
(function).
slow-ip-gradients
(function).
test-assembly-heap
(function).
test-constraints
(function).
test-fe
(function).
test-fedisc
(function).
test-fetransfer
(function).
test-integration-rule
(function).
test-lagrange
(function).
test-quadrature
(function).
test-sparseas
(function).
test-sparseif
(function).
unlock
(function).
update-cell-extreme-values
(function).
vector-dof
(class).
volume-of-cell
(function).
work-done
(function).
work-on-queue
(generic function).
zeros-of-separating-family
(function).
fl.port
This package should contain the implementation-dependent
parts of Femlisp with the exception of the MOP. It serves a similar
purpose as the PORT module in CLOCC and is somewhat inspired by this
module. It will be dropped when there is a portable and easily installable
alternative in all CL implementations we are interested in
common-lisp
.
fl.debug
.
add-exit-hook
(function).
compile-and-eval
(function).
compile-silently
(function).
convert-type
(function).
def-function
(macro).
dynamic-space-size
(function).
finalize
(function).
find-executable
(function).
find-shared-library
(function).
foreign-call
(function).
gc
(function).
getenv
(function).
hostname
(function).
kill-process
(function).
load-foreign-library
(function).
make-weak-pointer
(function).
portability-warning
(function).
process-close
(function).
process-error
(function).
process-exit-code
(function).
process-input
(function).
process-output
(function).
process-status
(function).
run-program
(function).
run-program-output
(function).
run-program-report-errors
(function).
runtime-compile
(function).
save-femlisp-core-and-die
(function).
simplified-def-function
(macro).
system-namestring
(function).
unix-chdir
(function).
vector-sap
(function).
weak-pointer-value
(function).
without-gcing
(macro).
*portability-problem-handling*
(special variable).
execute-thunk-with-pinned-objects
(function).
foreign-convert
(function).
memory-usage
(function).
process-wait
(function).
quit
(function).
test-port
(function).
fl.ellsys
This package contains the problem definition of systems
of second order PDEs. The system is defined in the following quasilinear
form:
@math{div(-a(x,u_old,nabla u_old) nabla u)
+ div(b(x,u_old,nabla u_old) u) +
+ c(x,u_old,nabla u_old) nabla u +
+ r(x,u_old,nabla u_old) u
= f(x,u_old, nabla u_old)
- div(g(x,u_old, nabla u_old))
- div(a(x,u_old,nabla u_old) h(x,u_old, nabla u_old)) }
where @math{u:G to R^N}. Note that the last two terms are introduced in the variational formulation and imply a natural Neumann boundary condition @math{derivative{u}{n} = (g+a h) cdot n} at boundaries where no Dirichlet constraints are posed.
common-lisp
.
fl.debug
.
fl.dictionary
.
fl.function
.
fl.macros
.
fl.matlisp
.
fl.mesh
.
fl.problem
.
fl.utilities
.
<ellsys-problem>
(class).
<multiphysics-problem>
(class).
artificial-diffusion
(function).
diagonal-reaction-coefficient
(function).
ellsys-model-problem
(function).
ellsys-one-force-coefficient
(function).
initial-value-provided-p
(function).
isotropic-diffusion
(function).
isotropic-diffusion-coefficient
(function).
time-dependent-p
(function).
unit-vector-force-coefficient
(function).
Definitions are sorted by export status, category, package, and then by lexicographic order.
BLAS library path.
If the value is NIL, the BLAS library is searched for in standard library paths.
If the value is :none, no external BLAS routines are used.
Observe CPU time during an iteration. This should be used as element in the observe list of an iteration.
Default graphics program.
Suggested time for a demo which should be used as a termination criterion in demo iterations.
Standard observe quantities for iterative solvers.
Path to the @program{DX} executable.
Observe an estimate of the global error.
Standard observe quantities for fe approximation.
Path to the @program{Gnuplot} executable.
Directory where images are put by default.
Depth of nested iteration.
A flag keeping track, if the setup for these tests has already been performed.
LAPACK library path.
If the value is NIL, the LAPACK library is searched for in standard library paths.
If the value is :none, no external LAPACK routines are used.
Observe entries for the size of the matrix.
Directory where meshes are put by default.
Threshold below which a matrix is considered to be zero.
Maximum iteration depth for which status output is done.
A switch for allowing parallel linear algebra for sparse vectors in special situations.
Maximum number of columns and/or rows to print. NIL: no elements, T: all elements.
Format of matrix element field to be printed. A useful format is "~10,2,2E" for debugging purposes.
Maximum number of columns and/or rows to print. Set this to NIL to print no cells (same as *PRINT-ARRAY* set to NIL). Set this to T to print all cells of the tensor.
Quadrature order to be used. NIL determines the order automatically.
The reference vertex.
Special variable used for storing the blackbboard of the last computation.
Standard observe quantities for Rothe.
Default element type for standard matrices.
Standard observe quantities for stationary finite element strategies.
Observe step number during an iteration. This should be used as element in the observe list of an iteration.
The suggested order of discretization. In non-nil, this value should be taken into account by methods to @arg{select-discretization}.
Wrapper for SuperLU, if available.
Path to the @program{tetgen} executable.
Wrapper for UMFPACK, if available.
A macro returning the first of its arguments.
A macro returning the second of its arguments.
A macro returning the third of its arguments.
A macro returning the fourth of its arguments.
A macro returning the fifth of its arguments.
A macro returning the sixth of its arguments.
Easy definition of anonymous small functions. Arguments are ’_’, ’_1’, ..., ’_5’.
Macro from @cite{(Graham 1993)}. Turns the operator @arg{op} into a modifying form, e.g. @code{(_f + a b) @equiv{} (incf a b)}.
Anaphoric macro from @cite{(Graham 1993)}.
Anaphoric macro from @cite{(Graham 1993)}.
Anaphoric IF macro by Paul Graham. Keeps the value of the test-form in the variable named IT to be used in the then-branch.
Anaphoric macro from @cite{(Graham 1993)}.
Posted to cll by Kenny Tilton 22.4.2007.
Call the LAPACK routine @arg{routine} with the arguments @arg{args}. NIL-arguments are discarded, arrays and standard-matrices are converted to the necessary alien representation.
Wrapper for @function{call-lapack} which tests if the routine worked satisfactorily.
Creates a PDE problem. @arg{type} is the type of the problem which can be the name of a problem class or a list of class names. @arg{domain} is the domain for this problem, @arg{multiplicity} is the multiplicity of the solution, e.g. the number of eigenvectors we search for. In @arg{body}, patch-dependent coefficients should be defined with @mac{setup-coefficients}. It is also possible to define patch-dependent components with @mac{setup-components}, and in the case of multiphysics problems, subproblems can be switched using @mac{subproblem}.
Perform a check only if debugging @arg{id}.
Defines a foreign function. See examples in @path{alien;src;superlu.lisp}.
Short form for defining an inlined function. It should probably be deprecated, because it won’t be recognized by default by some IDEs. Better use the inlining macro directly.
Delets @arg{item} from @arg{sequence} destructively.
Syntax: @slisp{(docols (key mat) ...)}
Loops through @arg{dic}. If @arg{looping-var} is an atom @emph{key}, loop through the keys; if it is a list of the form @emph{(value)} loop through the values; if it is a list of the form @emph{(key value)} loop through key and value.
Loops through @arg{hash-table}. If @arg{looping-var} is an atom @emph{key}, loop through the keys; if it is a list of the form @emph{(value)} loop through the values; if it is a list of the form @emph{(key value)} loop through key and value.
Syntax: @slisp{(dorows (key mat) ...)}
Loop through a skeleton. If looping-var is an atom, it loops through all cells, otherwise it loops through cells and properties.
Usage:
(dotensor (entry tensor :depth 1) ...)
(dotensor ((index1 ... . entry) tensor :depth 1) ...)
(dotensor ((index1 ...) tensor :depth 1) ...)
Loops through each tuple below @arg{limits}.
Loops on indices and entries of a vector, matrix or tensor. Examples:
@lisp
(dovec (entry vec) ...)
(dovec ((entry key1 ...) vec) ...)
@end lisp
Posted to cll at 17.10.2006 by Kenny Tilton.
Essentially (or place (setf place newval)). Posted by Erling Alf to c.l.l. on 11.8.2004, implementing an idea of myself posted on c.l.l. on 30 Jul 2004 in a probably more ANSI conforming way.
Sets temporary bindings.
An analog to case using @arg{test} as comparison.
Declaims the following definitions inline together with executing them.
Iterates @arg{body} over @arg{items}. Example:
@lisp
(let ((x (make-array 10))
(y (make-list 10 :initial-element 1)))
(loop+ ((xc x) (yc y) i) doing
(setf xc (+ i yc))
finally (return x)))
@end lisp
A @function{let}-construct which returns its last binding.
A @function{let*}-construct which returns its last binding.
Adds increment to result which should be a symbol. If its value is nil then result is set to increment.
Replaces the value of the variable @arg{var} by setting it to its map with @arg{func}.
Memoize expr for its arguments in the table @arg{table} which should be nil or a hash-table with equal/equalp test.
Special case of @func{multi-for}. Loops starting from a zero-vector to @arg{stop}.
Examples:
@lisp
(multi-dotimes (x #(3 3)) (princ x) (terpri))
@end lisp
Loops for @arg{var} being an integer vector starting from @arg{start}
upto @arg{stop}. Examples:
@lisp
(multi-for (x #(1 1) #(3 3)) (princ x) (terpri))
(multi-for (x #(1 1) #(3 3) :from-end t) (princ x) (terpri))
@end lisp
Defines multiple generic functions at once. Usually, this will only be used for helper functions.
Implements the named-let construct from Scheme.
Slightly modified macro taken from <http://groups.google.com/comp.lang.lisp/msg/2a92ad69a8185866>.
Removes the method for the generic function @arg{gf-name} which is
specified by @arg{qualifiers} and @arg{specializers}. Example:
@lisp
(remove-this-method m* :before ((mat <matrix>) (x <vector>)))
@end lisp
It should be possible to use this directly on a copied first line of a
DEFMETHOD definition.
Wraps a function object inside a trace form.
At the moment small tests are ignored. One might think of collecting them when compiling a certain file.
Stores the result of @arg{body} in @var{*result*}.
An analog to case using string comparison.
Like SYMBOL-MACROLET but evaluate subforms just once up front.
Own implementation of the macro @function{whereas} suggested by Erik Naggum (c.l.l., 4.12.2002).
This macro sets up an array of accumulators for each worker initialized
with initial-element. Within each worker the symbol @arg{name} can be used
for accessing the private accumulator.
After the body was executed (probably containing parallel operations),
the result array is reduced using @arg{reduce-op}.
Improved version of a macro posted in cll by ?. A similar but more restricted macro was posted by KMP at 8.5.2007 under the name ’array-access’.
If output of a process is desired to be atomic wrap it in @arg{with-atomic-output}.
Execute @arg{body} with debugging bound to ids.
This macro distributes work generated in body with calling the locally bound function @function{work-on} on some arguments to several working threads which call @arg{func} on those arguments.
Standard macro providing the freshly generated symbols @arg{syms} to the code in @arg{body}.
Work with the items on @arg{blackboard} corresponding to
@arg{properties}. If some property is a list, the second element is the
default value and the third is an alias to be used to refer to this
parameter. Example:
@lisp
(with-items (&key sol (rhs nil rhs-high)) blackboard
(setq sol rhs-high))
@end lisp
Sets up a memoization environment consisting of a table, and a captured
symbol @symbol{memoizing-let} memoizing its body depending on the
arguments. Example of usage:
@lisp
(with-memoization (:size 4 :id ’test)
(defun test (n)
(memoizing-let ((k (* 2 n)))
(sleep 1)
(* k k))))
@end lisp
Needs to be called unfortunately around push/incf/setf.
Execute @arg{body} on the waitqueue @arg{obj} without other threads interfering.
This macro distributes work generated in body with calling the locally bound function @function{work-on} on some arguments to several working threads which call @arg{func} on those arguments.
An analog to @code{(SETF GETF)} for association lists.
geta
(function).
An abbreviation for accessing the entries on the @var{*result} blackboard.
Adds a list of fe-functions to the demands.
Add a hook with name @arg{hook-name} to the hooks for @arg{function-name}.
Adjoins the demo @arg{demo} to @arg{parent}.
Adjoins a test to the Femlisp test suite.
Computes the volume spanned by the columns of @arg{mat}.
Calls @arg{func} on all element tuples of the array arguments.
An isotropic diffusion of size factor*h^power
Calculates an average of its arguments which should allow for addition and scaling.
Returns the artificial boundary on which the distributional source acts.
Returns T if the patch is on the lower oscillating boundary.
Returns T if the patch is on the upper boundary.
Make the property list supplied in @arg{items} into a blackboard. Copies @arg{items} to make sure that no literal list is modified.
Returns an identification list for the boundaries of the cells in identifications.
Boxes an object.
Generates a box domain for the given dimensions. Here, dimensions is expected to be a list of 2-element lists denoting the interval along the respective axis. The algorithm works by copying the unit cube and modifying the coordinates of the vertices of the copy.
Formulates a Newton linearization for the Bratu problem @math{-Delta u = C e^u}.
Calculate drag/lift on a portion of the boundary determined by the
predicate @arg{evaluate-force-boundary-p}.
The optional viscosity parameter allows to use this function, even if the viscosity is not available as a property of the problem, and it also allows to use it in the context of friction boundary laws with a friction coefficient different from normal viscosity. The ’viscosity’ parameter should then be equal to the friction coefficient in the boundary condition.
Call all hooks defined for @arg{function-name} on @arg{object} and returns @arg{object}.
Call the LAPACK routine @arg{routine} with the arguments @arg{args}. NIL-arguments are discarded, arrays and standard-matrices are converted to the necessary alien representation.
Wrapper for @function{call-lapack} which tests if the routine worked satisfactorily.
Generates a convection-diffusion-reaction model problem. Defaults are identity diffusion, right-hand-side equal 1, and Dirichlet zero boundary conditions. Ordinary function are converted into coefficient functions depending on a global coordinate. The first argument can be either a domain or an integer n which is interpreted as the n-dimensional unit cube.
Transforms a product-cell into a degenerated cube with the same vertices.
Returns @arg{cell}’s identification in @arg{skel} or NIL.
If cell is identified, its identification is the key.
Returns a Lagrange fe depending on reference cell, an order (which can be number or vector), and a type symbol.
Returns the cells of @arg{skel} of dimension @arg{dim} in form of a list.
Returns the cells of @arg{skel} of highest dimension in form of a list.
Checks the symmetries in the elasticity tensor.
Checks if all of the @arg{properties} are in the property list @arg{place}.
Returns a special function drawing a polar around @arg{midpoint} with distance given by the function or number @arg{radial-distance} with angular velocity omega. Without arguments it yields a function mapping @math{R^1} isometrically to @math{S^1}.
Constructs a domain for a circle ring with inner radius r1 and outer radius r2. If r2 is NIL, then the result is a circle domain or radius r1.
Converts a CL type to a LAPACK type, if possible.
Reader for the coefficients of @arg{patch} for @arg{problem}.
Reduces identifications to maximally connected sets.
Returns a projection to the range of the given projections.
Returns the speed which should be characteristic for the setting determined by @arg{memory-weight}. If this argument is 0.0 it means that all operations should be inside cache memory whereas 1.0 means that the operation are restricted by memory bandwidth available.
Returns a function which compares two vectors lexicographically.
Compiles and evaluates the given @arg{source}. This should be an ANSI compatible way of ensuring method compilation.
Compiles @arg{source} silently.
Returns the composition of @arg{functions}.
Construct a compressed sparse matrix with entries of @arg{type}.
Documents a certain concept.
Returns a coefficient which takes the given value. Several values can be passed which is needed, for example, for returning also the type of a boundary condition.
Returns a uniform constant vector of which all elements are @arg{value}.
The multigrid algorithm needs an interpolation which satisfies the constraints like essential or periodic boundary conditions.
Returns a coefficient function which sets Dirichlet zero boundary conditions for all components of a PDE system.
Constructs a coefficient input list from FE data @arg{cell} is the cell, @arg{global} is the global coordinate of the integration point, @arg{values} and @arg{gradients} the values and gradients of the shape functions at the ip, and @arg{fe-parameters} are the corresponding data of fe-functions to be evalutated.
Copy @arg{hash-table}.
Copies a mesh. Properties copied are only patch and identification. If necessary, one might add further properties to be copied as a keyword argument.
Copies a skeleton. Properties is a list of properties to be copied. Returns the copy of @arg{skel} and a table mapping old cells to their copies.
Makes domain-cube —which should be a cube in a domain— extensible in the given direction.
Returns T iff CELL is a cube.
On a regular partition of the unit interval interpolating values y are given. This function returns an interpolating spline.
Supplies @arg{args} to @arg{func} from the left.
A domain which is a cartesian product of a circle and an interval.
Stop debugging on the passed symbols. With no arguments, stop debugging altogether.
Register ids for dbg.
Returns T if @arg{id-or-ids} is in the debug list, NIL otherwise.
If @arg{id-or-ids} is a list, then every of its elements is checked if it
is in the debug list.
An alternative version of the n-ball defined by using cubic patches. This is precisely what the well-known FE library deal.ii does.
This routine computes the determinant using a given LR decomposition.
Returns a diagonal matrix with diagonal entries from vec.
Constructs a sparse tensor of rank 2 where @arg{values} is a vector of diagonal entries. If @arg{ncomps} is given then the tensor dimension is nxn with each diagonal entry being @arg{values}.
Checks if key does not depend on other keys, so that it can be kept on the fine grid.
Discretize @arg{problem} on the hierarchical mesh @arg{h-mesh} using finite elments given by @arg{fe-class}.
Display @arg{hash-table} in the form key1 -> value1 ...
Compares two cells wrt their level and their dimension.
The predicate is true if level1>level2 or the levels are equal and
dim1>dim2.
Inserts @arg{obj} in @arg{dll}. It returns the newly created @class{dll-item}.
Inserts @arg{obj} in @arg{dll}. It returns the newly created @class{dll-item}.
The boundary of the domain as a skeleton.
Returns a property list of characteristics. The property curved means that curved patches exist. The property exact is set to t if the domain mappings are exact. Otherwise, only the boundary of the domain should be assumed to be provided in an exact form.
Returns a @class{double-vec} with the entries in @arg{comps}.
Available memory for calculations
Returns the nxn elementary matrix with 1 at position (i,j). The value is freshly allocated.
Constraints are given by an equation: P x = Q x + r
Here x in V, P is an orthogonal projection on a subspace V_P of V, Q maps some other space which may have nonempty intersection with V_P to V_P. With S we denote the mapping Id-P. This function returns the matrix for a Galerkin method on the constrained space. It is used for treating hanging nodes and essential boundary conditions. When assemble-locally is t the sparse structure of mat is used instead of the sparse structure of the hanging node interface. When include-constraints is non-nil, the constraints are included in matrix and rhs.
Returns a matrix A suitable for describing the ellipse as (Ax,x)=1.
Generates a rather general elliptic problem on the given domain.
Returns @arg{obj} if it is a coefficient, converts @arg{obj} into a coefficient depending on the space variable if @arg{obj} is a function; otherwise, @arg{obj} is made into a constant coefficient.
If @arg{domain} is an integer, return the corresponding @arg{n-cube-domain}, if @arg{domain} is a domain return it unchanged, otherwise signal an error.
Returns the reference product-cell for the given factor dimensions.
Extends a mesh on all extensible cells for which test —if provided— yields T.
Extends A such that the keys in extend which are not in ignore are mapped to identity.
Extract a complete subgraph which contains the vertices in objects.
The result is a hash-table mapping vertices to lists of depending vertices.
If the hash-table in @arg{result} is given it is assumed to contain a
partial result of this operation.
Extract demo information from the documentation string of the generating function.
Extracts numbers or subvectors from the solution vector.
If @arg{component} is found, its offset, length, a scalarp-flag, and the full form of the component is returned.
Returns the nxn identity matrix. The value is freshly allocated.
Returns the factor-simplices.
Compute the factorial of @arg{n}. @arg{n} can also be a list of numbers in which case the product of the factorials of the components is computed.
Constructor of a geometric multigrid iteration of FAS type.
Short version of generating an arbitrary-dimensional FD discretization of the Laplace operator.
Collects cell geometry information at @arg{sample-points} inside a property list.
Finite element discretization for an ansatz space provided on the blackboard.
Computes information for extracting components out of a vector finite element.
Shows all demos below the given demo root.
Get pathname relative to the Femlisp directory.
If the manual is sorted by file, the string handed to this function describes the use of the respective file.
The positive REMOVE - i.e. like REMOVE with :test instead of :test-not.
Filters out the applicable coefficients for the respective cell with the given patch.
The positive version of REMOVE-IF-NOT.
Sets up @arg{func} as finalizer for @arg{obj}.
Returns a list of cells contained in skel and satisfying test.
Finds the component with the given name together with its offset.
Finds an executable in the current path.
Finds atom in @arg{tree}.
Finds a leaf in @arg{tree} where @arg{test} returns true.
Searches for a patch of @arg{domain} having the given list @arg{classifiers}.
Finds and, if necessary, generates a class from the given superclasses.
Finds a leaf in @arg{tree} where @arg{test} returns true.
Checks if @arg{list} is a singleton and returns its first element.
Returns a @symbol{FIXNUM-VEC} constructed from the parameters.
Flatten a tree. Example:
@lisp
(flatten ’((1 2) (3) ((4)))) @result{} (1 2 3 4)
@end lisp
Calls func for each cell on the hierarchical-mesh surface.
Calls @arg{func} on each tuple greater or equal to (0 ... 0) and below @arg{dims}.
Ensures a safe environment for a foreign function call, especially so that no GC changes array pointers obtained by @function{vector-sap}.
The function argument @arg{func} is transformed into a coefficient depending on the solution.
Returns a full compressed pattern.
Construct a full tensor with entries of @arg{type}.
The function argument @arg{func} is transformed into a coefficient depending on global coordinates.
The function argument @arg{func} is transformed into a coefficient depending on position and solution. If k is different from 0 then the k-jet of f is returned as arguments.
Builds the Galerkin product R A P. This function works for every type of matrices for which the row- and column-loop macros are defined. This procedure should be inlined into an environment where types are known for avoiding generic arithmetic.
Returns an s-point Gauss integration rule.
Rewriting of GEMM in terms of GEMM!.
Dispatches on the optional job argument (member :nn :tn :nt :tt) and calls the corresponding generic function, e.g. GEMM-NN!.
Constructor of a geometric multigrid iteration of correction scheme type.
Constructor of a geometric parallel subspace correction.
Constructor of a geometric successive subspace correction.
Rewriting for GESV in terms of GESV!.
Returns the value of the property.
Sets the value of the property.
Get coefficient @arg{name} from the list @arg{coeffs}.
Get coefficients with name @arg{name} from the list @arg{coeffs}.
Gets @arg{property} for @arg{object}. Returns NIL also if @arg{property} is not available.
Sets the property @arg{property} of @arg{problem} to @arg{value}.
Finds the refinement rule for @arg{cell} defined by the @arg{id}. This @arg{id} can be a number (position of the rule, T (meaning 0), or some symbol which is contained in the names of some rule, or even the rule itself. Two values are returned: the rule and its position in the refinement-rule vector.
An analog to @code{GETF} for association lists.
Get the item for @arg{key} from @arg{blackboard}. If there is no such @arg{key} return @arg{default}.
Setter corresponding to @code{GETBB}.
Return the value of the environment variable.
Rewriting for GETRF in terms of GETRF!.
Rewriting for GETRS in terms of GETRS!.
Groups elements in the sequence @arg{seq} according to @arg{characteristic}
which is a function of one argument. Example:
@lisp
(group-by #’second ’((1 2) (2 2) (3 4) (4 4)))
@end lisp
Collect the keys of @arg{hash-table} into a list.
Collect the keys of @arg{hash-table} into a list.
Collect the values of @arg{hash-table} into a list.
This is a slightly trimmed copy of the function @function{elasticity-interior-effective-coeff-demo}.
Deprecated. If you need this function, please contact me on the mailing list. NN.
Sorts the cells up to the given level (defaulting to the last level)
hierarchically for use in something similar to the nested disection
method. Returns a list of the sorted cells.
Returns a function which uses its first coordinate as a homotopy parameter.
Calculates a ’normal’ nu for the n-1-dimensional hyperplane determined by the n-1 columns of the nx(n-1)-matrix @arg{mat}. More precisely, this is a vector nu, such that det(A|nu)=|nu|^2. This construction generalizes the cross product in 3 space dimensions.
A special coefficient used for identifying parts of the domain. The coefficient evaluation returns the master coordinates.
Returns @arg{cell}’s identification in @arg{skel} or NIL.
Identifies all cells in @arg{identified-cells} within @arg{skel}.
This routines identifies boundary cells in skel which correspond to boundary cells in the unit cube. Warning: exact arithmetic is used to recognize identified cells. This should work for skeletons derived from the unit cell, but may create problems in other situations.
Checks if the permutation is the identity.
Pathname of the directory for @femlisp{} images.
Checks if the range of indices of two sparse matrices is disjoint.
Tests if problem is provided with an initial value. This should be normally the case for time-dependent problems, but may also be useful for stationary problems, e.g. for providing a starting guess in an iterative method.
Returns the children of refcell.
Inserts @arg{cell} and if necessary also its boundary into @arg{skel}. If properties are given those are used for @arg{cell}.
Creates a cell of type cell-class with corners given by corners. corners->cell has to be an equalp hash-table mapping corners to the corresponding cell. It is updated by this function.
Inserts a list of cells into a skeleton.
Returns a @class{int-vec} with the entries in @arg{comps}.
Returns an integration rule for @arg{cell} of the given @arg{order}.
On each cell of the skeleton @arg{region} or on all cells of level @arg{level} of the mesh of @arg{ansatz-space}, a local interpolation matrix is collected into an interpolation matrix. @arg{type} is the interpolation type having a default value @var{*interpolation-type*}.
Finds zeros of functions in 1d by the interval method.
Invert the directed graph given in @arg{graph} as a hash-table.
Returns a sparse diagonal diffusion tensor with isotropic diffusion in each component. @arg{values} should be a vector or a number and contains the amount of diffusion in each component.
Returns the tensor corresponding to the Lam’e constants @math{lambda}
and @math{mu}, i.e.:
@math{A_{ij}^{kl} = lambda delta_{ik} delta_{jl} + mu (delta_{ij} delta_{kl} + delta_{kj} delta_{il})}.
Generates all identifications of the skeleton from the identifications of some higher-dimensional cells.
Joins @arg{matrices} either horizontally or vertically depending on @arg{orientation}. Due to the call to @function{zeros} this is not yet a generic function.
Returns all subsets of @arg{set} with length between @arg{k} and
@arg{l}. Example:
@lisp
(k->l-subsets ’(1 2 3) 1 2) @result{}
((1) (2) (3) (1 2) (1 3) (2 3))
@end lisp
Returns all subsets of @arg{set} with length @arg{k}. Example:
@lisp
(k-subsets ’(1 2 3) 2)
@result{} ((1 2) (1 3) (2 3))
@end lisp
Checks if @arg{key1} occurs as subcell of @arg{key2}. The keys can be either cells or identifications.
Returns estimated speed of the current Femlisp in MLOPS.
Creates an L-domain by cutting out cubes from the uniform refinement of the unit cube.
A constructor for a problem-dependent Lagrange fe. Here, the number of components may vary with the respective patch.
Constructor for Lagrange fe. nr-comps=nil builds a scalar fe-discretization, otherwise a vector-fe-discretization is built.
Returns a function which maps a cell by a polynomial which is obtained by interpolating the boundary map via Lagrange interpolation.
Calculate the Langevin function to an accuracy of about 15 digits
Calculate the function Langevinx(x):=Langevin(x)/x
Ensures the CL binding to the specified LAPACK function.
Rudimentarily memoized function testing if LAPACK is available.
Generates the matrix for a @arg{dim}-dimensional Laplace problem discretized with the @math{2*@arg{dim}+1}-point stencil on a structured mesh with Dirichlet boundary conditions.
Generates a sparse matrix for a dim-dimensional Laplace problem discretized with the (2*dim+1)-point stencil on a structured mesh.
Returns the level of @arg{cell} in the hirearchical mesh @arg{h-mesh}.
Transforms skel by transforming the vertex positions.
Old and deprecated interface for solving linear problems.
Transforms @arg{list} to a queue.
Returns a comparison function for comparing two lists of numbers lexicographically, but with elements ordered according to ORDER.
Loads the foreign library @arg{file}.
Memoized call of compute-local-imatrix.
Memoized call of compute-local-pmatrix.
Computes a local transfer matrix between different FE spaces.
Constructs a standard LSE.
LU decomposition without pivoting.
Returns X-Y. Uses AXPY.
Y - X -> Y. Uses AXPY!.
Returns X .* Y. Uses M.*! and COPY.
Returns the inverse of X. Needs the identity matrix given by @function{eye} which makes this function not generally applicable.
Creates a cell of class CELL-CLASS having the given CORNERS.
Creates a cell of class CELL-CLASS having the given VERTICES.
Returns a classifier for patches.
Changes a skeleton into a domain.
Returns a @class{double-vec} of length @arg{dim} and initial value @arg{init}.
Constructor of @class{<ansatz-space>}.
Construct a @symbol{FIXNUM-VEC} of size @arg{dim} initialized by @arg{init}.
Creates a hierarchical-mesh from the given arguments. See @function{MAKE-MESH-FROM}.
Creates a line given its endpoints.
Generates a local vector for local discretization. We allow overriding the default multiplicity for the ansatz space for special use cases.
Generates a standard matrix as specified by its arguments. If two arguments are provided, they should be numbers which are interpreted as rows and columns. If only one argument is provided, it should be either a number meaning the rows and columns of a square matrix or a nested list or vector structure defining the contents matrix.
Returns a relation between n numbers.
Constructor which simplifies the coefficient list.
Makes an instance of a class denoted by a list of the names of its superclasses. This class is generated automatically, if necessary.
Generates a real matrix as specified by its arguments.
Generates an instance of a tensor with DOUBLE-FLOAT entries and the given @arg{dimensions}.
Generates a real matrix of dimension @arg{dim} x 1.
Short form of creating a simplex given its boundary. An alternative is creating it from its vertices, see the functions MAKE-CELL-FROM-VERTICES and INSERT-CELL-FROM-CORNERS.
General vertex constructor.
Creates a weak pointer pointing to @arg{obj}.
Call @arg{func} given in the first argument on each key of @arg{hash-table}. @arg{func} must return the new key and the new value as two values. Those pairs are stored in a new hash-table.
Maps the elements of @arg{list} in a hash-table identified by @arg{identifier}. @arg{func} is evaluated on each element and produces two values which are used as key and value for the hash-table.
Applies @arg{func} to a product of lists. Example:
@lisp
(map-product #’cons ’(2 3) ’(1 4))
@result{} ((2 . 1) (2 . 4) (3 . 1) (3 . 4))
@end lisp
Maps @arg{tree} using @arg{func}. Example:
@lisp
(map-tree #’1+ ’((1 (2)))) @result{} ((2 (3)))
@end lisp
Constructs a cell class with <mapped-cell> mixin.
Map @function{func} over @arg{lists} while appending the results.
Collects the arguments with which a mapping construct calls a given function. E.g.
@lisp
(mapper-collect #’mapc ’(3 4 5)) @result{} (3 4 5)
@end lisp
Counts the arguments with which a mapping construct calls a given function. E.g.
@lisp
(mapper-sum #’mapc ’(3 4 5)) @result{} 3
@end lisp
Tests if the test is fulfilled for every argument on which the mapper is
called:
@lisp
(mapper-every #’plusp #’mapc ’(3 4 5)) @result{} T
@end lisp
Select the arguments with which a mapping construct calls a given function. E.g.
@lisp
(mapper-select-first #’mapc ’(3 4 5) ’(7 8 9)) @result{} 3,7
@end lisp
Tests if the test is fulfilled for some argument on which the mapper is
called:
@lisp
(mapper-some #’plusp #’mapc ’(-3 4 5)) @result{} T
@end lisp
Sums the arguments with which a mapping construct calls a given function. E.g.
@lisp
(mapper-sum #’mapc ’(3 4 5)) @result{} 12
@end lisp
Marks all cells of @arg{skel} with the given @arg{prop}/@arg{value} pair.
Finds a maximally connected set by taking the union of the elements in
connected with the sets of disconnected-sets. Returns the maximally
connected sets and the remaining disconnected ones. Example:
@lisp
(maximally-connected ’(1 2) ’((3 4) (2 3) (5 6))
:test #’intersection :combine #’union)
@result{} (1 2 3 4), ((5 6))
@end lisp
Measures the time in seconds needed by @arg{count}-times executing @arg{fn}.
Returns T if @arg{cell} is in @arg{skel}, NIL otherwise.
Memoizes the function @arg{func} which should be a non-recursive function of one argument.
Memoizes multi-argument functions named by the symbol @arg{funsym}.
Wraps @arg{obj} in a list, if it is not already a list.
Returns a random nxn or (if m is provided) nxm matrix. The value is freshly allocated.
Evaluates the vector given in @arg{local-vec} at multiple points. Here @arg{local-vec} should be a data vector obtained with @function{get-local-from-global-vec} and @arg{ip-values} should be a vector obtained from @function{ip-values}.
Generates an n-dimensional ball domain with 2^n simplex patches.
Generates an n-dimensional cell domain which is a n-dimensional unit cube with its opposite sides identified.
Generates an n-dimensional cell domain with an n-ball hole.
Generates an n-dimensional cell domain with an n-ball inlay.
Generates an n-dimensional cell domain with an n-cube hole.
Generates an n-dimensional cell domain with an n-cube hole.
Generates an n-dimensional cell domain with an ellipsoidal hole.
Returns the reference cube of dimension dim.
Generates an n-cube-domain with an n-ball hole using n-cube patches.
Generates an n-cube-domain with an n-ball inlay using n-cube patches.
Generates an n-cube-domain with an n-cube hole.
Generates an n-cube-domain with an n-cube inlay.
Generates an n-cube-domain with an ellipsoidal hole satisfying <A(x-midpoint),(x-midpoint)>=1 using n-cube patches.
Returns a list of all ordered partitions of @arg{k} into @arg{n} natural
numbers. Example:
@lisp
(n-partitions-of-k 2 3)
@result{} ((0 3) (1 2) (2 1) (3 0))
@end lisp
Returns the reference simplex of the given dimension.
Returns n-variate monomials of degree being equal or being lower or
equal than deg.
Examples:
(n-variate-monomials-of-degree 2 2) -> (x2^2 x1*x2 x1^2)
(n-variate-monomials-of-degree 2 2 ’<=) -> (1 x2 x1 x2^2 x1*x2 x1^2)
Yields a quasi-Newton linearization of the term @math{u . grad u} which
has the form
@math{a Re u0 . grad u + b Re u . grad u0 = (a + b - 1) Re u0 . grad u0}
a and b are given by the values of the special variables @var{*alpha*} and
@var{*beta*}.
Returns a generalized Taylor-Hood element @math{(Q^{k+delta})^d/Q^k} of order @math{k} in dimension @math{d}.
The pressure and continuity part of the Navier-Stokes equation. These parts can be multiplied by factors @arg{eta} and @arg{xi} which can be useful for debugging, for example.
Constructs a standard NLSE.
Returns a list of all nonempty subsets of @arg{set}.
Scales @arg{x} to have @arg{p}-norm equal to 1.
Scales @arg{x} destructively to have @arg{p}-norm equal to 1.
Returns number of cells in a skeleton.
Returns the number of boundary faces.
Returns the number of subcells.
Returns the number of vertices.
Returns a function converting a number to a number of the given number-type or recursively also a vector of numbers.
Computes a very accurate real derivative for functions which can be
applied to complex arguments.
Warning: This trick can only be applied once, i.e. derivatives of higher order cannot be computed by multiple application of this function!
Computes the numerical derivative of func at pos.
Executes @arg{func} on the leaves of @arg{tree}.
Calls @arg{func} on every subtree of @arg{tree}.
Returns nxn or (if m is provided) nxm ones. The value is freshly allocated.
Returns a domain with an oscillating lower boundary at $x_n=-1$ where the oscillation is defined by a scaling function $f$ with values in $R^+$. Usually, also $grad-f$ should be provided, because it makes possible an enhanced domain approximation.
Use map/pmap depending on availability of kernel. Recursive splitting of work is not done.
Returns a sequence of the same type as @arg{seq} consisting of its partial sums.
Returns a list of classifications for @arg{patch} in @arg{domain}.
Checks if the patch is part of the inlay including its boundary. This is done by checking if all corners lie in the interior of the unit cell.
Checks if the patch is part of the hole boundary.
Returns T, if the patch is on the boundary of the n-cube.
Constructs a periodic polygon from @arg{positions}. The result is a @class{<skeleton>}.
Returns the inverse of the permutation given by @arg{perm-vec}.
Checks if @arg{perm} is a possible permutation vector. A permutation pi is characterized by a vector containing the indices from 0,..., @function{length}(@arg{perm})-1 in some order.
Returns the sign of @arg{perm}.
Functional version of @function{permute-into}.
A permutation @arg{perm} acts on the vector @arg{v} by permuting it according to @math{result[i] = v[perm[i]]}.
Generates an observer triple which observes the value of component @arg{component} of solution number @arg{index} at the position @arg{position}.
Multiply the polynomials poly1 and poly2 considered as polynomials in separate variables.
Returns a list of all positive ordered partitions of @arg{k} into
@arg{n} natural numbers. Example:
@lisp
(positive-n-partitions-of-k 2 3)
@result{} ((1 2) (2 1))
@end lisp
Returns a list of all positive ordered partitions of @arg{k}.
Example:
@lisp
(positive-partitions-of-k 3) @result{} ((1 2) (2 1))
@end lisp
Prepares arguments for the given coefficient function.
Process-output for @arg{process}.
Returns the status of @arg{process}.
Process-input for @arg{process}.
Process-output for @arg{process}.
Returns the status of @arg{process}.
Returns an iterator which does several steps of the given iterator.
Computes a product rule for several lower-dimensional quadrature rules.
Returns a function which projects to the ellipsoid given by Q(x-midpoint)=1 where Q is the quadratic form associated with the matrix A.
Returns a function which projects to the sphere with given midpoint and radius.
The algorithm works as follows: On each cell of the provided cell list or the whole refinement a local projection matrix computed on the reference finite element is copied into the global projection matrix.
Transforms @arg{queue} to a list.
Returns a ansatz space vector for @arg{ansatz-space} filled with random entries. Essential constraints are satisfied.
Constructor for a range of numbers.
Checks if index range and index domain of some matrix are disjoint.
Supplies @arg{args} to @arg{func} from the right.
Read a compressed matrix of type @arg{orientation} from the given list of triplets of the form (i j Aij). If identify-p is T, try to identify entries which are equal.
Returns the children for refcell and subcells.
Returns an LEVEL times refined skeleton of REFCELL. It is partially memoized, see the documentation of *REFCELL-REFINEMENT-MEMOIZE-DEPTH*.
Tests if a cell is a reference cell.
Returns refinement information for the cell.
Returns the refinement of @arg{cell} in @arg{skeleton} as two values: the rule and the children.
Returns the refined boundary subcells of unrefined cells in a skeleton. Those cells are found as all refined cells which are not part of the domain boundary. At the moment, this is a global operation. Later on, it should probably be localized.
Returns the refinement rule of @arg{cell} in @arg{skel}.
Register coefficient macros for the given problem
Note that the object is only registered, but not put in the pool of free objects, because at creation time it will probably be used immediately!
Remove @arg{demo} from @arg{parent}.
Removes all methods dispatching on subclasses of the template arguments.
Adjoins a test to the Femlisp test suite.
Calling this function results in an error. Such a call may be used as default form when an argument should be supplied.
Returns a list of finite element functions required by the coefficients in the property list @arg{coeffs}.
Runs @arg{program} with arguments @arg{args}.
Returns a list of all lines of the output of @function{RUN-PROGRAM} when called with the arguments @arg{PROGRAM} and @arg{ARGS}.
Calls compile on the provided @arg{source}. When :compile is activated for debugging, the source code is printed.
This is an AMG solver which works also for Lagrange fe of order p by reducing them to P^1 first.
Returns t if @arg{sequence} consists of equal elements.
Removes the items marked by @arg{keys} from the property list @arg{plist}. This function was posted at 2.12.2002 to the @emph{comp.lang.lisp} newsgroup by Erik Naggum.
Saves Femlisp core and quits.
Returns alpha * X. Uses SCAL! and COPY.
Scalar isotropic diffusion as an ellsys coefficient. value is the diffusion strength, compressed-p designates the storage form.
Tests two sets for equality, e.g.
@lisp
(set-equal ’(a b) ’(b a)) @result{} T
@end lisp
Checks if @arg{list} is a set, i.e. if no members occur twice.
Can be used for obtaining a diagonal modification to get ILU_mod.
Shifts skel by vec. vec has to be a vector of dimension (embedded-dimension skel).
Returns the n-simplex class.
Generates a product-cell domain for the given factor dimensions.
Returns a boundary layer cell with a sinusoidally oscillating lower boundary.
Adds @arg{skel-2} to @arg{skel-1} destructively for @arg{skel-1}. Overlaying cells are identified. @arg{override} is a list of properties which are copied from skel-2 on the overlap. @arg{active-skel-1} is used for hierarchical-meshes for selecting a level to which @arg{skel-2} is added. This function returns three values: the first is @arg{skel-1}, the second is @arg{skel-2}, the third is a hash-table mapping overlapping cells from @arg{skel-2} to their counterpart in @arg{skel-1}.
Loops through a skeleton applying func. When direction is :down then loops with dimension of the cells decreasing, otherwise increasing.
Returns the properties of @arg{cell} in @arg{skel}.
Setter for the properties of @arg{cell} in @arg{skel}.
Returns a skeleton consisting of cells of skel of dimension n-1 which have only one neighbor.
Builds a disjoint union skeleton of all skeletons.
Removes a cell from a skeleton such that the rest remains a skeleton. Warning: does not handle identifications yet.
Checks if nothing depends on key and if key depends on other keys.
Checks if key is a hanging node or a Dirichlet node.
Sorts a cell list lexicographically by the coordinates of their midpoint.
Converts the sparse matrix @arg{A} to CCS format. @arg{row-keys} and @arg{col-keys} may denote a submatrix, @arg{col-ranges} and @arg{row-ranges} may be used for extracting even subblocks of the entries.
This is a rather complicated routine which has not yet been parallelized. Theoretically, this might be a bottleneck for some applications, but, practically, an appropriate case has not yet appeared.
Warning: works only for real-valued functions!
Constructor for @class{sparse-tensor}. The initial contents can be provided as a list whose entries are of the form (value index_1 ... index_r).
Transforms all or a part of @arg{svec} corresponding to the keys in @arg{keys} and maybe the ranges in ’ranges’ to a matlisp matrix.
Constructs a special function between 1D-spaces from ordinary Lisp functions.
Returns a ansatz space vector for @arg{ansatz-space} filled with constantly, randomly or with values obtained by evaluating a certain function. @arg{type} can be :random (then @arg{value} gives the range of the random numbers), it can be :constant (then @arg{value} contains that constant), and -NYI- it can be :function (then @arg{value} should contain an x-dependent function). Essential constraints are satisfied if constraints-p is T.
Creates a uniform mesh consisting of N_1 x ... x N_dim cells on a box domain.
Boundary which is interpolated from heights.
Breaks the list @arg{items} in pieces of lengths determined by
@arg{nrins}. Example:
@lisp
(split-by-length ’(1 2 3 4) ’(1 3)) @result{} ((1) (2 3 4))
@end lisp
Return the square of @arg{x}.
Extension function replacing an original-cell with a replacement.
Defines the programmatic class @class{standard-matrix} for element type @arg{type} as extensions of the programmatic class @class{store-vector}.
Tests if @arg{obj} is a @class{standard-matrix}.
Finds the stationary pde problem for the time-dependent problem TDP.
Stokes-Darcy - Computes a Darcy permeability tensor
Computes the effective permeability for Stokes flow in a domain
with periodically distributed ball-shaped holes. The
approximation is done with finite elements and blending.
Uniform refinement is used, the linear solver is a geometric
multigrid scheme used in a nested iteration fashion. Smoothing
is done by a Vanka type smoother.
The solution to this cell problem in ~d~ dimensions consists of ~d~ velocity/pressure pairs, i.e. in total ~d~*(~d~+1) components.
Creates a uniform mesh consisting of N_1 x ... x N_dim cells on a box domain lying parallel to the coordinate axis. Instead of N_i being an integer, it can also be a vector N_i=[x0,...,xN] with numbers x0,...,xN satisfying 0=x0<...<xN=1.
Create a uniform box skeleton consisting of N_1 x ... x N_dim cubes of dimensions h_1 x ... x h_dim.
Returns a vector of all children of the subcells of @arg{cell} in @arg{skeleton}.
Reader for subcell-offsets. This is an array of length the number of components. Each component is an array giving the offset of this component in a sparse vector value block corresponding to the subcell.
Returns a list of all subsets of @arg{set}.
This function returns the surface cells of a locally refined hierarchical-mesh structure.
This function returns the surface cells of highest dimension of a locally refined hierarchical-mesh structure.
This function builds a symbol from its arguments and interns it. This is used in some macros.
Interpolates the cells of @arg{left-skel} to the mapped cells given by the table @arg{left->right}.
Performs all demos reachable from @arg{demo}.
Test if @arg{condition} holds for @arg{classifications}. @arg{condition} should be a logical combination of the keyword symbols in the list @arg{classification}.
Runs the Femlisp test suite.
Tests if problem is time-dependent, either as suggested by its class, or alternatively by its coefficients.
Transfer @arg{items} between the blackboards @arg{from-bb} and @arg{to-bb}. When @arg{ensure} is set, an existing item is not modified.
Builds a transfer matrix from domain-as to image-as.
Transforms skel by transforming the cell mappings resp. vertex positions. Returns the transformed skeleton and a table mapping old cells to their copies.
Performs certain translations from an association table on the string item. Example: (translate "abcdefg" ’(("a" . "x") ("b" . "yz")))
Triangulate @arg{domain} by successively building a mesh on the domain skeleton starting from the 0-dimensional patches.
Transforms a product-cell mesh into a simplex mesh.
Returns a @class{uint-vec} with the entries in @arg{comps}.
Getter for a boxed object.
Setter for a boxed object.
Generates a mesh by refining the domain partition uniformly.
Returns a freshly created copy of the @arg{i}-th carthesian unit vector in dimension @arg{dim}.
Change the directory to @arg{path}.
User input for demo functions. Reads lines until @arg{test-p} returns t on the item read.
User textfield input for demo functions. Reads and concatenates lines until an empty line is read.
Reader for the last element of @arg{vec}.
Writer for the last element of @arg{vec}.
Map @arg{vec} with @arg{func} to a vector of the same type.
Flexible uniform vector type definition.
Returns an array pointer which can be used in a foreign call.
Returns a observe list for watching the velocity at @arg{point}.
Returns a observe list for watching the velocity at @arg{point}.
Returns the value of the weak pointer @arg{wp}.
Determines weights for the integration points @arg{ips} such
that they integrate
@math{int_{-1}^{1} (1+y)^beta ... dy}
with optimal order.
Test if parallel sparse algebra is possible in the current context. Note that at the moment, we do not allow nested parallelization.
X <- 0 X. Uses SCAL!.
Returns a function which distorts the xn-coordinate by a factor f(x’). Also grad-f has to be provided.
Returns a uniform vector for the given element type filled with zeros.
Returns nxn or (if m is provided) nxm zeros. The value is freshly allocated.
If @arg{suggest} and @arg{require} are NIL, returns which of
@symbol{:row} or @symbol{:column} is prefered for @arg{mat}. Otherwise
determine if the order in @arg{suggest} or @arg{require} is acceptable without
serious performance hit.
<sparse-dictionary-matrix>
) &key suggest require) ¶The default selects the required or suggested access method if they are available.
Copies a local block in matlisp format into a <ht-sparse-vector>.
<sparse-vector>
) local-vec &optional keys ranges) ¶<ansatz-space-object>
)) ¶automatically generated reader method
Assemble the interior, i.e. ignore constraints arising from boundaries
and hanging nodes. Discretization is done using the ansatz space
@arg{ansatz-space} on level @arg{level}. The level argument will usually
be @code{NIL} when performing a global assembly, and be equal to some
number when assembling coarse level matrices for multigrid. The argument
@arg{where} is a flag indicating where assembly is to be done. It should
be one of the keywords @code{:surface}, @code{:refined}, @code{:all}. The
arguments @arg{matrix}, @arg{rhs} should contain vectors/matrices where the
local assembly is accumulated. Boundary conditions and constraints are not
taken into account within this routine.
In general, this function does most of the assembly work. Other steps like handling constraints are intricate, but usually of lower computational complexity.
<ansatz-space>
) (where symbol
) &rest args &key level parallel-clustering &allow-other-keys) ¶<ansatz-space>
) (where list
) &key matrix mass-matrix rhs parallel-clustering &allow-other-keys) ¶<coefficient>
)) ¶A list of two symbols. If :matrix is a member, it
means evaluation that the coefficient contributes to the Jacobian,
if :residual is a member, it contributes to assembling the residual.
As noted in the documentation of @var{*assembly-type*}, this
functionality is not yet used.
Returns alpha X + Y. Uses AXPY! and COPY.
Y <- alpha*X + Y
polynomial
) (y polynomial
)) ¶number
) (x standard-matrix
) (y standard-matrix
)) ¶number
) (x vector
) (y vector
)) ¶number
) (y number
)) ¶number
) (x static-store-vector
) (y static-store-vector
)) ¶Recursive definition for AXPY! usable for sparse block vectors which return nil if no entry is set.
<mg-iteration>
)) ¶automatically generated reader method
Returns a dictionary mapping keys to entries for @arg{vec}.
<ht-sparse-vector>
)) ¶Table of blocks.
Returns the boundary of an object (usually a cell in a mesh).
<standard-cell>
)) ¶A vector of boundary cells.
<cell-with-boundary>
)) ¶A vector of boundary cells.
Computes the cartesian product of two skeletons.
<skeleton>
) (skel2 <skeleton>
) &key property-combiner &allow-other-keys) ¶Computes the cartesian product of two skeletons.
Integrates @arg{object} on @arg{cell}.
<ansatz-space-vector>
) &key initial-value combiner key coeff-func component no-weights-p) ¶Integrates the ansatz-space vector @arg{x} on @arg{cell}. If @arg{coeff-fun} is set it should be a function which expects keyword arguments @code{:solution} and @code{:global}.
function
) &key initial-value combiner quadrature-order) ¶Integrates @arg{func} over @arg{cell}.
Return the mapping for mapped cells.
<simplex>
)) ¶For non-mapped simplices, the cell mapping is linear.
<vertex>
)) ¶For vertices, this returns a <special-function> evaluating to the vertex position.
The default result is NIL, i.e. no mapping
<cell>
)) ¶For non-mapped cells, this method returns a <special-function> which can be called instead of @function{l2g} and @function{l2Dg}.
<mapped-cell>
)) ¶Return the mapping of the mapped @arg{cell}.
<algebraic-mg>
)) ¶automatically generated reader method
Choose a reasonable start vector for some strategy.
The default method chooses a random guess for eigenvalue problems and 0 otherwise.
<mg-iteration>
)) ¶automatically generated reader method
Computes a coarse-grid matrix from amg, mat, prolongation and restriction.
<algebraic-mg>
) (a <sparse-matrix>
) (p <sparse-matrix>
) (r <sparse-matrix>
)) ¶This is the standard method of generating a coarse-grid matrix.
Given AMG and matrix, this generic function returns
coarse-grid matrix, interpolation and restriction matrices for one coarsening
step.
<algebraic-mg>
) mat) ¶This is the default method for AMG coarsening. It performs the following steps:
1. (prolongation) Build up a prolongation P. Its domain is the coarse-grid.
2. (restriction) Compute a restriction R. Usually this will be R=I^t.
3. (compute-coarse-grid-matrix) Build the coarse-grid matrix A_C by computing the Galerkin product A_C = I^t A I.
<coefficient>
)) ¶automatically generated reader method
name
.
<domain-problem>
)) ¶A -usually memoized- function mapping patches to coefficient lists.
polynomial
)) ¶automatically generated reader method
Returns the coefficients of @arg{problem} on @arg{cell}.
Default method, returns the coefficients of the associated patch.
<ansatz-space-morphism>
)) ¶<block-definition-mixin>
)) ¶automatically generated reader method
<sparse-matrix>
)) ¶All column keys for a matrix.
<sparse-dictionary-matrix>
)) ¶<submatrix>
)) ¶The column indices of the submatrix.
<ht-sparse-matrix>
)) ¶<ht-sparse-matrix>
)) ¶Table of columns
<sparse-dictionary-matrix>
)) ¶<sparse-dictionary-matrix>
)) ¶Table of column dictionaries.
Returns the @arg{comp}-th component of the (vector) finite element @arg{fe}.
<vector-fe-discretization>
) i) ¶<vector-fe>
) comp) ¶<vector-fe-discretization>
)) ¶Either a vector of components or
the symbol :variable, if the components vary across the domain
as is the case for hp-FEM.
<vector-fe>
)) ¶automatically generated reader method
<scalar-fe>
)) ¶The vector of components (which are scalar finite elements) of a vector finite element.
<domain-problem>
)) ¶A list whose elements are symbols or lists
of the forms (symbol dim) or (symbol dim type) or (symbol subcomponents)
describing the components occuring in the pde. Alternatively, this slot
can contain a function/dictionary mapping patches to such lists.
<vector-fe>
)) ¶automatically generated writer method
Returns the components of @arg{problem} on @arg{cell}.
Reader for the components of @arg{problem} on @arg{patch}.
Writer for the components of @arg{problem} on @arg{patch}.
Composes two function objects @arg{f} and @arg{g}.
<function>
) (func2 <linear-function>
)) ¶<linear-function>
) (func2 <function>
)) ¶<function>
) (func2 <function>
)) ¶Converts a compressed matrix into matlisp format.
compressed-matrix
)) ¶Compute the residual r=b-Ax.
Default method for residual computation. Should work for everything for which the blas operations copy! and gemm! are defined.
Returns a deep copy of X.
polynomial
)) ¶compressed-matrix
)) ¶full-tensor
)) ¶array
)) ¶list
)) ¶vector
)) ¶number
)) ¶This default method for @function{copy} does a destructive copy to an empty analog of @arg{x}.
Y <- X
<sparse-vector>
) (y <sparse-vector>
)) ¶full-tensor
) (b full-tensor
)) ¶standard-matrix
) (y standard-matrix
)) ¶vector
) (y vector
)) ¶number
) (y number
)) ¶Number copying.
static-store-vector
) (y static-store-vector
)) ¶Recursive definition for COPY! usable for sparse block vectors.
Initializes the slots named in @arg{slots} from @arg{obj2} to @arg{obj1}. Returns @arg{obj1}.
Returns a list of corners of the cell, i.e. the global positions of the cell’s vertices.
When debugging on @arg{id} print out the arguments @arg{args} using the format in @arg{format-string}.
When debugging @arg{id}, print out the arguments
@arg{args} using the format in @arg{format-string} with indentation given
by @arg{indent}.
Degree of a polynomial
polynomial
)) ¶list
)) ¶Returns unified demands for all coefficients in the list.
<coefficient>
)) ¶A list indicating which information the evaluation
function needs. Possible choices depend on problem and discretization,
e.g. @code{:local}, @code{:global}, @code{:fe}, @code{:cell} are possible
choices. One element can also be a list starting with the keyword
@code{:fe-parameters} and followed by symbols indicating names of finite
element functions on the discretization blackboard.
Pops an object from @arg{queue}. Returns as second value T if the queue was empty.
chunk-queue
)) ¶Clears @arg{queue} and returns content as a list.
Returns the determinant of the square matrix @arg{mat}.
number
)) ¶standard-matrix
)) ¶Extracts the diagonal from matrix @arg{A} as a vector.
standard-matrix
)) ¶Returns the diameter of a cell.
Count the entries of @arg{dic}.
Tests if @arg{dictionary} is empty.
sorted-hash-table
)) ¶list
)) ¶hash-table
)) ¶Applies @arg{function} to each key-value pair in @arg{dictionary}.
thread-cached-dictionary
) &key &allow-other-keys) ¶computed-value-dictionary
) &key &allow-other-keys) ¶sorted-hash-table
) &key direction &allow-other-keys) ¶small-cache-dictionary
) &rest args) ¶list
) &key &allow-other-keys) ¶hash-table
) &key &allow-other-keys) ¶vector
) &key &allow-other-keys) ¶Applies @arg{function} to each key in @arg{dictionary}.
computed-value-dictionary
) &key &allow-other-keys) ¶Applies @arg{function} to each value in @arg{dictionary}.
A pop routine for sorted dictionaries or heaps.
sorted-hash-table
)) ¶Returns the value of the entry for @arg{key} in @arg{dictionary}.
thread-cached-dictionary
) key) ¶tree-dictionary
) key) ¶computed-value-dictionary
) key) ¶cache-dictionary
) key) ¶sorted-hash-table
) key) ¶small-cache-dictionary
) key) ¶list
) key) ¶hash-table
) key) ¶vector
) index) ¶function
) key) ¶Sets the entry @arg{key} in @arg{dictionary} to @arg{value}.
thread-cached-dictionary
) key) ¶tree-dictionary
) key) ¶cache-dictionary
) key) ¶sorted-hash-table
) key) ¶small-cache-dictionary
) key) ¶hash-table
) key) ¶vector
) index) ¶Removes @arg{key} from @arg{dictionary}.
sorted-hash-table
)) ¶hash-table
)) ¶Returns t if f is differentiable or differentiable of the given degree.
<linearly-transformed-function>
) &optional k) ¶<linear-function>
) &optional k) ¶<constant-function>
) &optional k) ¶<special-function>
) &optional k) ¶The default method returns @code{NIL}.
Differentiate a multivariate polynomial wrt the variable given by INDEX.
list
) index) ¶number
) index) ¶polynomial
) index) ¶Returns the dimension of the cell.
<coefficient>
)) ¶The dimension of the cell on which this coefficient is
active. The value T means that it is active on all cells lying on the
patch. The default value NIL means that it is active on cells with the
same dimension as the patch.
<boundary-cell>
)) ¶automatically generated reader method
<skeleton>
)) ¶automatically generated reader method
<skeleton>
)) ¶automatically generated writer method
Parts of a skeleton can be named with the property @symbol{:part}.
<mesh>
) part) ¶Parts of a skeleton can be named with the property @symbol{:part}.
<skeleton>
) part) ¶full-tensor
)) ¶The dimensions of the tensor.
Returns the order of the discretization.
<ansatz-space>
)) ¶<vector-fe-discretization>
)) ¶<scalar-fe-discretization>
)) ¶automatically generated reader method
<vector-fe>
)) ¶<scalar-fe>
)) ¶automatically generated reader method
Default value is @code{:variable}.
Calculates matrix and right-hand side for the @var{discretization} and the @var{problem}. Further parameters are provided inside the @var{blackboard}.
<fe-discretization>
) (problem <pde-problem>
) blackboard) ¶General discretization interface for FE.
Computes a local stiffness matrix and right-hand side.
The algorithm will usually work as follows:
@enumerate
@item Get coefficient functions for the patch of the cell.
@item Compute geometry information for all ips (values and gradients of the shape functions).
@item Loop over integration points ip:
@enumerate
@item If necessary, compute input for coefficient functions.
This input may contain values of finite element function in the
property list @arg{fe-parameters}.
@item Evaluate coefficient functions at ips.
@item Add the contributions for matrix and right-hand side to @arg{local-mat} and @arg{local-rhs}.
@end enumerate
@end enumerate
If @arg{local-u} and @arg{local-v} are set, then
@arg{local-v}*@arg{local-mat}*@arg{local-u} and
@arg{local-v}*@arg{local-rhs} is computed. This feature may be used later
on for implementing matrixless computations.
<ellsys-problem>
) coeffs vecfe qrule fe-geometry &key matrix rhs mass-matrix local-u local-v residual-p fe-parameters &allow-other-keys) ¶Local discretization for a pde system of the form described in the documentation of the package @package{ELLSYS}.
Formats the contents of @arg{matrix} in rectangular form.
<sparse-matrix>
) &key row-order col-order order pattern stream) ¶Display a sparse matrix. With pattern=NIL (the default), the matrix is displayed in detail. With pattern=:block, the block graph structure is displayed.
standard-matrix
) &key stream &allow-other-keys) ¶The default method describes its argument.
vector-dof
)) ¶The component in the solution vector to which this @class{dof} belongs.
<domain-problem>
)) ¶automatically generated reader method
<ansatz-space-automorphism>
)) ¶<domain-image-mixin>
)) ¶automatically generated reader method
<domain-problem>
)) ¶<function>
)) ¶automatically generated reader method
Returns the dot product of X and Y.
<sparse-vector>
) (y <sparse-vector>
)) ¶standard-matrix
) (y standard-matrix
)) ¶number
) (y number
)) ¶static-store-vector
) (y static-store-vector
)) ¶vector
) (y vector
)) ¶list
) (y list
)) ¶Returns the dot product between |X| and |Y|.
standard-matrix
) (y standard-matrix
)) ¶number
) (y number
)) ¶static-store-vector
) (y static-store-vector
)) ¶Returns the dual problem for @arg{problem} with the
right-hand side given by @arg{functional}. The solution of this problem
measures the sensitivity of @arg{functional} applied to the solution of
problem with respect to errors in the solution.
<cdr-problem>
) cell->rhs) ¶Dual problem of a cdr problem. At the moment it works only for selfadjoint problems with the functional of interest being the load functional.
Type of the elements of the vector/matrix.
<sparse-matrix>
)) ¶<sparse-vector>
)) ¶(store-vector⎵double-float⎵dynamic⎵nil)
)) ¶vector
)) ¶Default method returns T.
Dimension of the embedding space for @arg{object}. If
@arg{check} is T, a test is performed if the dimension is well-defined
for all parts of @arg{object}. If not, NIL is returned.
<skeleton>
)) ¶Tests if @arg{queue} is empty.
<time-dependent-problem>
)) ¶The end time of the problem (NIL=unspecified).
Evaluates the energy bilinear form for a generalized eigenvalue problem.
Puts @arg{object} into the @arg{queue}.
Tries to coerce @arg{obj} into Matlisp format.
compressed-matrix
) &optional type) ¶<sparse-tensor>
) &optional type) ¶standard-matrix
) &optional type) ¶number
) &optional type) ¶vector
) &optional type) ¶list
) &optional type) ¶Ensures that the field :RESIDUAL is computed and that the flag :RESIDUAL-P is set on the blackboard.
This default method handles nonlinear problems by linearizing them and computing the residual for it. The resulting problem is additionally stored in a field :LINEAR-PROBLEM.
Ensures that the field :SOLUTION is set on the blackboard.
<nonlinear-problem>
) blackboard) ¶This :around method takes the field :SOLUTION from the blackboard.
Default method throws an error.
List of entries.
<sparse-tensor>
)) ¶The (nonzero) entries of the first slot.
Tests if an entry is allowed at this position.
<sparse-matrix>
) &rest indices) ¶<sparse-vector>
) &rest indices) ¶The default method allows entries everywhere.
Computation of essential constraints. Should probably be incorporated into the ansatz-space definition.
<ansatz-space>
) &key level where interface) ¶Yields both local and global estimate.
<error-estimator>
) blackboard) ¶Executes local and global error estimation in sequence.
A table for cells of dimension @arg{dim} in @arg{skel}.
<skeleton>
) dim) ¶<skeleton>
)) ¶automatically generated reader method
<skeleton>
)) ¶automatically generated writer method
Generic evaluation of functions on an argument. Numbers and
arrays are treated as constants. Special evaluation is defined for multivariate
polynomials on vectors and for <function> objects.
<coefficient>
) (input list
)) ¶The pairing between coefficient and input.
polynomial
) (x vector
)) ¶polynomial
) (x list
)) ¶polynomial
) (x number
)) ¶<linearly-transformed-function>
) pos) ¶<linear-function>
) x) ¶<constant-function>
) x) ¶<special-function>
) x) ¶The default method treats object as a constant function. This is a dubious feature on which one should probably not rely.
function
) x) ¶Lisp functions are evaluated by @function{funcall}.
Generic evaluation of gradients of differentiable functions.
polynomial
) (x vector
)) ¶<linearly-transformed-function>
) pos) ¶<linear-function>
) x) ¶<constant-function>
) x) ¶<special-function>
) x) ¶Extract a sub-matrix from a sparse matrix for the given keys.
<ansatz-space-automorphism>
) (skel <skeleton>
) &key row? col?) ¶Extracts a sub-matrix from a sparse matrix. This routine could be accelerated by taking member-checks out of the loop.
Extract a subvector or submatrix from a sparse vector/matrix. The test is a function of entry and key.
function
) (smat <sparse-matrix>
) &key &allow-other-keys) ¶Extracts a sub-matrix from a sparse matrix.
Extract a vector or array of value blocks from @arg{sobj}.
<sparse-matrix>
) row-keys &optional col-keys) ¶<sparse-vector>
) keys &optional col-keys) ¶The factors if the multivariate polynomial @arg{poly} is
an exterior product of lower-variate (e.g. univariate) polynomials.
polynomial
)) ¶automatically generated reader method
number
)) ¶<vector-fe>
)) ¶automatically generated reader method
<scalar-fe>
)) ¶The fe’s basis functions.
<fe-approximation>
)) ¶The class of finite element. If it is not set, it is automatically chosen.
<ansatz-space-object>
)) ¶<ansatz-space>
)) ¶The finite element class for this ansatz space.
<vector-fe>
)) ¶automatically generated reader method
<scalar-fe>
)) ¶The dofs which are functionals satisfying dof[i](basis[j])=delta(i,j).
<vector-fe>
)) ¶automatically generated writer method
Computes the extreme values of a finite element function over the domain or some region. The result is a pair, the car being the minimum values and the cdr the maximum values. Each part is a matrix of the format ncomps x multiplicity.
<ansatz-space-vector>
) &key cells skeleton component) ¶Computes the extreme values of a finite element function over the domain or some region. The result is a pair, the car being the minimum values and the cdr the maximum values. Each part is a matrix of the format ncomps x multiplicity.
Evaluates the gradient of the FE ansatz-space-vector @arg{asv} at @arg{global-pos}.
<ansatz-space-vector>
) pos) ¶Evaluates a finite element gradient at point pos.
Integrates a finite element function over the domain. key is a transformer function, as always (e.g. #’abs if you want the L1-norm).
<ansatz-space-vector>
) &key cells skeleton coeff-func initial-value combiner key no-weights-p component) ¶Integrates a finite element function over the domain. key is a transformer function, as always (e.g. #’abs if you want the L1-norm). @arg{no-weights-p} is useful for calculating maxima, minima or an L-infinity norm. @arg{combiner} will probably be something like #’max or #’min in this case.
Evaluates the gradient of a FE ansatz-space-vector on @arg{cell} at @arg{local-pos}.
<ansatz-space-vector>
) cell local-pos) ¶Evaluates a finite element gradient on @arg{cell} at @arg{local-pos}.
Evaluates a FE ansatz-space-vector in @arg{cell} at @arg{local-pos}.
<ansatz-space-vector>
) cell local-pos) ¶Evaluates a finite element function in @arg{cell} at @arg{local-pos}.
Evaluates a FE ansatz-space-vector at @arg{global-pos}.
<ansatz-space-vector>
) global-pos) ¶Evaluates a finite element function at @arg{global-pos}.
Fills X with element s.
vector
) (s number
)) ¶static-store-vector
) (s number
)) ¶Recursive definition for FILL! usable for sparse block vectors.
Fills X with random values (obtained by (random s)).
vector
) (s number
)) ¶number
) (s number
)) ¶static-store-vector
) (s number
)) ¶Recursive definition for FILL-RANDOM! usable for sparse block vectors.
Performs final operations.
<discrete-iterative-solver>
) blackboard) ¶Put convergence rate into report.
<iteration>
) blackboard) ¶Setup a report and ensures fresh line on output.
Finds a cell from @arg{skel} which contains the global position @arg{pos}.
<hierarchical-mesh>
) (pos array
)) ¶Hierarchical search for a leaf cell containing the given position. A result of NIL is given if no cell covering @arg{pos} is found.
<skeleton>
) (pos array
)) ¶<mg-iteration>
)) ¶automatically generated reader method
fmg
.
Applies @arg{func} to each element of @arg{collection}.
function
) (seq sequence
)) ¶Applies @arg{func} to each element of the sequence @arg{seq}.
Loop through column keys.
<sparse-dictionary-matrix>
) &key parallel) ¶Loop through column keys.
Default: Assume that the column keys are integers from 0 upto (ncols mat).
Calls @arg{func} on all entries of @arg{vec}.
<sparse-dictionary-vector>
)) ¶<sparse-tensor>
)) ¶standard-matrix
)) ¶array
)) ¶sequence
)) ¶number
)) ¶The default method calls @function{for-each-entry-and-key}.
Calls @arg{func} on all entries of the collection @arg{object} and their corresponding keys.
<sparse-dictionary-vector>
)) ¶function
) (x compressed-matrix
)) ¶<sparse-tensor>
)) ¶standard-matrix
)) ¶array
)) ¶vector
)) ¶list
)) ¶<submatrix>
)) ¶Calls @arg{func} on all entries of @arg{vec} and their corresponding vector indices. The index used should be unserstood by @func{vref}.
vector
)) ¶array
)) ¶The default method calls @arg{for-each-entry-and-key} which works for single-indexed objects, i.e. rather general vectors.
Loop through entries in column col.
<sparse-dictionary-matrix>
) key) ¶Loop through col-keys in row.
<sparse-dictionary-matrix>
) key) ¶Calls @arg{func} on all indices/keys of @arg{vec}.
<sparse-dictionary-vector>
)) ¶<sparse-tensor>
)) ¶array
)) ¶vector
)) ¶The default method calls @function{for-each-entry-and-key}.
Loop through row-keys and entries in col.
<sparse-dictionary-matrix>
) key) ¶Loop through col-keys and entries in row.
<sparse-dictionary-matrix>
) key) ¶function
) (mat compressed-matrix
) i) ¶Loop through row-keys in column col.
<sparse-dictionary-matrix>
) key) ¶Loop through col-keys in row.
<sparse-dictionary-matrix>
) key) ¶standard-matrix
) row-key) ¶Loop through row keys.
<sparse-dictionary-matrix>
) &key parallel) ¶Loop through row keys.
Default: Assume that the row keys are integers from 0 upto (nrows mat).
Computes the local position inside the cell for the given global position.
This function is not really used at the moment, in contrast to @function{global->local}.
General matrix-matrix multiplication: @math{Z <- alpha * X * Y + beta * Z}
compressed-matrix
) (y standard-matrix
) beta (z standard-matrix
)) ¶standard-matrix
) (x vector
) beta (y vector
)) ¶number
) y beta z) ¶This method is slightly more general than usual gemm, because it allows also y and z to be vectors even if x is a number and not a matrix.
General matrix-matrix multiplication: @math{Z <- alpha * X * Y’ + beta * Z}
compressed-matrix
) (y standard-matrix
) beta (z standard-matrix
)) ¶General matrix-matrix multiplication: @math{Z <- alpha * X’ * Y + beta * Z}
<sparse-vector>
) (y <sparse-vector>
) beta (z standard-matrix
)) ¶compressed-matrix
) (y standard-matrix
) beta (z standard-matrix
)) ¶standard-matrix
) (x vector
) beta (y vector
)) ¶General matrix-matrix multiplication: @math{Z <- alpha * X’ * Y’ + beta * Z}
compressed-matrix
) (y standard-matrix
) beta (z standard-matrix
)) ¶Solves a linear system A X = B for X.
<sparse-matrix>
) (svec <ht-sparse-vector>
)) ¶Solve the system by calling an external sparse solver.
compressed-matrix
) (vec standard-matrix
)) ¶Solve the system by calling an external sparse solver.
Default method solves LSE via GETRF and GETRS!.
Returns the finite element for the given discretization and reference cell.
<ansatz-space>
) cell) ¶<standard-fe-discretization>
) cell) ¶Get a suitable object from the pool. If no such object is found, NIL is returned.
thread-safe-pool
) key) ¶Maps the region in the global stiffness matrix determined by cell to a local matrix array.
<sparse-matrix>
) (cell <cell>
) &optional domain-cell) ¶Maps the region in global-vec determined by cell to a local vector.
<cell>
) (svec <sparse-vector>
)) ¶Computes the PA=LU decomposition of @arg{A} which is
stored again in @arg{A}. @arg{ipiv} can be a pre-allocated vector which
the routine fills with the indices for column pivoting, or NIL which
implies that the routine allocates such a vector itself. If @arg{ipiv} is
@symbol{:none}, no pivoting is done. Returns @arg{A} as the first value,
the pivot vector as a second value, and a boolean as the third value
indicating that the decomposition succeeded.
<ansatz-space-automorphism>
) &optional ipiv) ¶<sparse-matrix>
) &optional ipiv) ¶standard-matrix
) &optional ipiv) ¶Computes the PLR decomposition with column pivoting of the matrix MAT. Note that the indexing in @arg{ipiv} is 0-based or 1-based depending on the use of LAPACK.
number
) &optional ipiv) ¶Solves the PA=LU decomposition specified by @arg{LU} and @arg{ipiv} for the rhs @arg{b}. The result is stored in @arg{b}.
<ldu-sparse>
) (result <ht-sparse-vector>
) &optional ipiv) ¶standard-matrix
) (b vector
) &optional ipiv) ¶standard-matrix
) (b standard-matrix
) &optional ipiv) ¶Uses the LR decomposition computed by getrf! to solve a linear system with rhs B. LR must be a n x n - matrix, b must be a n x m matrix.
number
) (b number
) &optional ipiv) ¶Syntax: (GGEV A B [job])
Purpose: Computes the generalized eigenvalues and left/right eigenvectors
of @math{A - s B}.
1. (GGEV A B :N) => lambda
Computes the generalized eigenvalues of @math{A - s B}.
2. (GGEV A B :V) => lambda, V, W
Computes generalized eigenvalues and eigenvectors of (A - sB).
@math{ A*V = B*V*diag(lambda), \ W’*A = diag(lambda)*W’*B}
with V and W orthogonal (unitary).
Remark: The symmetric/hermitian counterpart of this routine is @function{hegv}.
standard-matrix
) (b standard-matrix
) &optional job) ¶This computes a local coordinate which solves the
Ausgleichsproblem of mapping to a point as near as possible to global-pos. It
involves more computational work than global->local. As a second value, the
distance to global-pos is returned.
Mainly useful for finite element evaluation: from the
local position, the value of a fe function can be obtained by
interpolation. This is done by a Newton iteration, which converges in one
step for linear mappings. The result is NIL, if no local point could be
determined.
<mapped-vertex>
) global-pos) ¶polynomial
)) ¶<special-function>
)) ¶automatically generated reader method
Returns commands for plotting to be sent to the graphics program.
list
) (program (eql :gnuplot)
) &key linewidth &allow-other-keys) ¶(eql :gnuplot)
) &rest paras) ¶Default gnuplot plotting command.
<ansatz-space-automorphism>
) (program (eql :dx)
) &key &allow-other-keys) ¶<skeleton>
) (program (eql :dx)
) &key dimension tubes glyphs glyph-scale background &allow-other-keys) ¶(eql :dx)
) &key foreground dimension shape range &allow-other-keys) ¶Default method for plotting objects with DX.
Return a filename for the data of this plot.
(eql :gnuplot)
) &key &allow-other-keys) ¶Returns the output file for @program{Gnuplot}.
(eql :vtk)
) &key filename &allow-other-keys) ¶Returns the file name for the @program{vtk} data file.
(eql :dx)
) &key &allow-other-keys) ¶Returns the output file for @program{dx}.
This around-method handles the system-p flag: if true, @function{graphic-file-name} returns a filename suitable for use in external programs.
Writes the graphic commands for @arg{object} as needed by the graphic program @arg{program}.
<ansatz-space-vector>
) (program (eql :dx)
) &rest args &key component shape rank &allow-other-keys) ¶Calls the generic graphic interface in appropriate order.
Write the data file for @arg{program} to @arg{stream}.
(eql :vtk)
) &key cells cell->values component depth transformation &allow-other-keys) ¶(eql :gnuplot)
) &key cells cell->values depth) ¶Writes data in gnuplot format to a stream.
list
) (program (eql :gnuplot)
) &key &allow-other-keys) ¶Can handle either a single list of points, or a single list of the form (string . points) or a list of such lists which is interpreted as multiple graphs.
<ansatz-space-automorphism>
) (program (eql :dx)
) &key dimension &allow-other-keys) ¶<skeleton>
) (program (eql :vtk)
) &key cells part transformation) ¶Plots a mesh. If provided, @arg{cells} should be 1-cells.
<skeleton>
) (program (eql :dx)
) &key cells part transformation) ¶Plots a mesh. If provided, @arg{cells} should be 1-cells.
(eql :dx)
) &key cells cell->values rank shape depth transformation) ¶Rather general plotting procedure writing data to a file. Plots in DX format for 1D, 2D, and 3D. Can plot data either discontinuous or continuous at the cell boundaries when coefficient functions are involved. cell->values has to be either nil –meaning no data– or some function mapping cells to a list of corner values.
Syntax: (HEGV A B [job])
Purpose: Computes the generalized eigenvalues and left/right eigenvectors
of @math{A - s B} for Hermitian matrices A and B.
1. (HEGV A B :N) => lambda
Computes the generalized eigenvalues of @math{A - s B}.
2. (HEGV A B :V) => lambda, V
Computes generalized eigenvalues and eigenvectors of (A - sB).
@math{ A*V = B*V*diag(lambda), \ W’*A = diag(lambda)*W’*B}
with V and W orthogonal (unitary).
Remark: The non-symmetric counterpart of this routine is @function{ggev}.
standard-matrix
) (b standard-matrix
) &optional job) ¶The hierarchical mesh for the given ansatz-space or ansatz-space object.
<ansatz-space-object>
)) ¶<ansatz-space>
)) ¶Returns a list of cells in @arg{skel} which are identified with @arg{cell}.
<ansatz-space-automorphism>
)) ¶<domain-image-mixin>
)) ¶automatically generated reader method
<function>
)) ¶automatically generated reader method
Returns T, if the indices are in the nonzero pattern.
<sparse-matrix>
) &rest indices) ¶compressed-matrix
) &rest indices) ¶compressed-pattern
) &rest rest) ¶<sparse-tensor>
) &rest indices) ¶The default method returns T iff no indices are given.
array
) &rest indices) ¶full-tensor
) &rest indices) ¶Increments the region in global-mat determined by cell to the values of local-mat.
<sparse-matrix>
) local-mat (cell <cell>
) &optional domain-cell) ¶Increments the region in global-vec determined by cell to the values of the local vector array.
<cell>
) (svec <sparse-vector>
) local-vec) ¶Puts a list of cells to be refined on the blackboard.
<largest-eta-indicator>
) blackboard) ¶Marks all cells for refinement which have no parent or for which the error estimator yields a large eta.
<refinement-indicator>
) blackboard) ¶Postprocess the refinement indication.
<refinement-indicator>
) blackboard) ¶The standard way is to indicate cells depending on the result of cell-rule.
<refinement-indicator>
) blackboard) ¶Initialize the refinement hash table on the blackboard.
<sparse-tensor>
)) ¶<sparse-tensor>
)) ¶The (nonzero) indices of the first slot.
compressed-pattern
)) ¶Vector with compressed row/column indices.
Performs initial operations.
<fe-approximation>
) blackboard) ¶Ensures a finite element ansatz space and a first approximation to the solution on the blackboard.
<discrete-iterative-solver>
) blackboard) ¶Ensure an initial guess for the solution after other initializations have been done.
<iteration>
) blackboard) ¶Default method. Prints the header line for observed quantities.
<iteration>
) blackboard) ¶Reset data on the blackboard.
Checks if @arg{global-pos} is inside the interior of the
@arg{cell}. It calls @function{global->local} to obtain local coordinates
and then @function{coordinates-inside?} to check if those are inside the
cell. If @arg{threshold} is a non-negative number, an additional check is
performed, if the local coordinates map to @arg{global-pos} with accuracy
threshold.
integration-rule
)) ¶The points of an integration rule.
integration-rule
)) ¶The weights of integration rule.
Is called after initialization and after each step.
<rothe>
) blackboard) ¶Plots the solution initially and after each time step.
<fe-approximation>
) blackboard) ¶Approximates and estimates the error for the current ansatz-space.
<discrete-iterative-solver>
) blackboard) ¶Before printing information in the main method we ensure that the defect and its norm are up-to-date.
<iteration>
) blackboard) ¶Default method. Prints observed quantities.
Interpolates @arg{function} on the reference cell of the finite element @arg{fe}. Returns a standard-matrix corresponding to the block in the sparse vector.
Returns a vector of local gradient matrices for
@arg{obj} which may be a vector of integration points or a quadrature rule.
Note that this function is memoized using an :around method.
<vector-fe>
) object) ¶Object may be an integration rule or a vector of positions.
<scalar-fe>
) (qrule integration-rule
)) ¶Return the fe values for the integration points of qrule.
<scalar-fe>
) (positions vector
)) ¶Returns a list of nr-ip float-matrices of dimension (n-basis x dim).
Returns a vector of ip values for @arg{obj} which may be
a vector of integration points or a quadrature rule. Note that this
function is memoized using an :around method.
<vector-fe>
) object) ¶Object may be an integration rule or a vector of positions.
<scalar-fe>
) (qrule integration-rule
)) ¶Return the fe values for the high-precision integration points of qrule.
<scalar-fe>
) (positions vector
)) ¶Returns a list of nr-ip float-matrices of dimension (n-basis x 1).
Iteration output should be made using this function which respects *iteration-depth* and *output-depth*.
Default method.
Iterates on the data in the blackboard according to the iteration iter.
<iteration>
) blackboard) ¶Default method for performing an iteration. Increases indentation level and calls initialization, termination check, stepping, and finalization in the correct order.
Returns an iterator for @arg{x}.
Returns an incremented @arg{iterator}.
Joins @arg{matrices} horizontally into result.
<sparse-vector>
) &rest vectors) ¶Compute an instance for storing the join of @arg{orientation} applied to matrix and matrices.
<sparse-vector>
) &rest vecs) ¶standard-matrix
) &rest matrices) ¶vector
) &rest vecs) ¶Joins @arg{matrices} vertically into result.
Returns NIL, if @arg{svec} cannot extend automatically when
being accessed. Otherwise returns a function mapping keys to vector block
sizes.
<ansatz-space-vector>
)) ¶<ansatz-space>
)) ¶<key->size-mixin>
)) ¶Function determining the dimension of a block.
<sparse-vector>
)) ¶Returns a list of all keys of @arg{dic}.
<ansatz-space-morphism>
)) ¶<block-definition-mixin>
)) ¶Function determining the pattern of a block.
<sparse-matrix>
)) ¶All row keys in the given column for a matrix.
All column keys in the given row for a matrix.
The Kronecker product of matrices A and B.
Returns the 2-norm of @arg{x}.
Computes the gradient for a multilinear interpolation from the vertices.
<simplex>
) local-pos) ¶Returns the linear transformation defined by the coordinates of the simplex corners.
This default method computes an average of the barycentric coordinate gradients.
Computes the global position by interpolation from the vertices.
Predicate determining if a problem is linear or nonlinear.
Linearize the nonlinear problem PROBLEM at the point SOLUTION. The result should be a linear problem.
<nonlinear-problem>
) solution) ¶This default method throws an error for nonlinear problems and is the identity on linear problems.
Returns the maximum norm of @arg{x}.
local->Dglobal checks if a mapping is given for the cell.
If yes, then the gradient of this mapping is evaluated (if available). If no,
then the function l2Dg is called which gives the gradient for a multilinear
interpolation from the cell’s corners.
<vertex>
) local-pos) ¶Not perfect, should take mapping into account.
<distorted-cell>
) local-pos) ¶<mapped-cell>
) local-pos) ¶local->global checks if a mapping is given for the cell.
If yes, then this mapping is evaluated. If no, then the function l2g is called
which should do a multilinear interpolation from the cell’s corners.
<distorted-cell>
) local-pos) ¶<mapped-cell>
) local-pos) ¶Returns the local coordinates of the cell midpoint.
Returns the @arg{p}-norm of @arg{x}.
Multiply X by Y.
<ansatz-space-morphism>
) (asv <ansatz-space-vector>
)) ¶<ldu-sparse>
) (rhs <ht-sparse-vector>
)) ¶An ldu-decomposition is considered as an inverse.
<sparse-vector>
) (y standard-matrix
)) ¶<sparse-tensor>
) vec) ¶number
) (y number
)) ¶Ordinary multiplication on numbers.
By default M* is rewritten in terms of GEMM!.
Multiply X by Y^t.
By default, M*-NT is rewritten in terms of GEMM!.
Allocates an instance for the product of X and Y.
<ansatz-space-morphism>
) (y <ansatz-space-vector>
)) ¶<sparse-matrix>
) (y <sparse-vector>
)) ¶compressed-matrix
) (x vector
)) ¶standard-matrix
) (x vector
)) ¶Returns a CL vector as result of matrix * CL vector.
Multiply X^t by Y.
By default, M*-TN is rewritten in terms of GEMM!.
Allocates an instance for the product of X^t and Y.
<ansatz-space-morphism>
) (y <ansatz-space-vector>
)) ¶<sparse-vector>
) (y <sparse-vector>
)) ¶standard-matrix
) (x vector
)) ¶Returns a CL vector as result of transpose(matrix) * CL vector.
Returns @math{X} + @math{Y}.
polynomial
) (y polynomial
)) ¶<sparse-tensor>
) (t2 <sparse-tensor>
)) ¶number
) (y number
)) ¶Number addition.
list
) (y list
)) ¶Default method uses M+! and COPY.
Y <- X + Y
polynomial
) (y polynomial
)) ¶standard-matrix
) (y standard-matrix
)) ¶number
) (y number
)) ¶Number addition.
static-store-vector
) (y static-store-vector
)) ¶Recursive definition for M+! usable for sparse block vectors.
Generate an analogous but empty data structure.
<ansatz-space-object>
)) ¶<skeleton>
)) ¶<block-definition-mixin>
)) ¶<key->size-mixin>
)) ¶<sparse-tensor>
)) ¶full-tensor
)) ¶array
)) ¶standard-matrix
)) ¶Constructs a zero matrix with the same size as X.
number
)) ¶Generates a coefficient while dispatching on problem and coefficient name. May return a single coefficient or a list of several coefficients.
<pde-problem>
) coeff-name patch args eval &optional offset1 offset2) ¶<ansatz-space-morphism>
) &optional multiplicity) ¶<sparse-matrix>
) &optional multiplicity) ¶Ensure sequentially all entries of the result such that the structure does not extend in parallel.
<sparse-matrix>
) &optional multiplicity) ¶compressed-matrix
) &optional multiplicity) ¶standard-matrix
) &optional multiplicity) ¶Construct a hierarchical-mesh from a domain.
Construct a hierarchical-mesh from a domain.
<ansatz-space-morphism>
) &optional multiplicity) ¶<sparse-matrix>
) &optional multiplicity) ¶Ensure sequentially all entries of the result such that the structure does not extend in parallel.
<sparse-matrix>
) &optional multiplicity) ¶compressed-matrix
) &optional multiplicity) ¶standard-matrix
) &optional multiplicity) ¶Constructs an iterator object given a linear iteration and a matrix.
<s1-coarse-grid-iterator>
) (a <sparse-matrix>
)) ¶<mg-iteration>
) (a <sparse-matrix>
)) ¶This is the method for a multigrid iteration on a uniformly refined grid, or an algebraic multigrid iteration.
<solver-iteration>
) mat) ¶<bi-cgstab>
) mat) ¶Standard method for the preconditioned BiCGstab iteration. The algorithm follows the original article of H. A. van der Vorst in SIAM J. Sci. and Stat. Comput., 13(2), 631–644 @url{https://doi.org/10.1137/0913035}.
<cg>
) mat) ¶Standard method for the preconditioned conjugate-gradient iteration.
<gradient-method>
) mat) ¶Iterator for the gradient method.
<block-iteration>
) (smat <sparse-matrix>
)) ¶<ilu>
) mat) ¶Default method for ILU iteration. Works only for our sparse matrices.
<parallel-sor>
) (mat <sparse-matrix>
)) ¶<sor>
) (mat <sparse-matrix>
)) ¶<sor>
) (mat standard-matrix
)) ¶<jacobi>
) (mat <sparse-matrix>
)) ¶<jacobi>
) (mat <matrix>
)) ¶The default method should work for everything.
<richardson>
) (mat <matrix>
)) ¶<multi-iteration>
) mat) ¶Construct an iterator for a multi-iteration.
Generates a local matrix discretization for the given ansatz-space(s).
Makes a mesh from or for the given object.
<domain>
) &key parametric initial-mesh-refinements &allow-other-keys) ¶This function creates a mesh on the domain skeleton.
The mesh either uses the nonlinear mappings of the domain patches (for
parametric = :from-domain) or approximates those with
polygonal (parametric = nil) or isoparametric mappings. Note that the
boundary always uses the domain mappings.
The parameter @arg{base-level} can be used when starting from a refined mesh as base-level is desired. This can be used when the mesh derived from the domin definition is too coarse which may be the case especially when it is used in the context of a domain decomposition.
<sparse-matrix>
)) ¶A mapper for sparse matrices.
<mapped-cell>
)) ¶automatically generated writer method
Evaluates the mass bilinear form for a generalized eigenvalue problem.
Prints a list of differences between X and Y.
<sparse-matrix>
) (smat2 <sparse-matrix>
)) ¶Low-level block lookup for a sparse block matrix.
<sparse-dictionary-matrix>
) row-key col-key) ¶Low-level block insertion into a sparse block matrix.
<ht-sparse-matrix>
) row-key col-key) ¶Returns a dictionary mapping row-key to entry.
<sparse-dictionary-matrix>
) key) ¶<sparse-dictionary-matrix>
) key) ¶Returns a dictionary mapping col-key to entry.
<sparse-dictionary-matrix>
) key) ¶<sparse-dictionary-matrix>
) key) ¶Extract a submatrix of size @arg{nrows} @math{times} @arg{ncols} out of @arg{x} starting from position @arg{from-row}/@arg{from-col}.
<sparse-vector>
) &key from-row from-col nrows ncols) ¶standard-matrix
) &key from-row from-col nrows ncols) ¶Returns a zero matrix for storing the transpose of X.
<sparse-matrix>
)) ¶Maximal partial degree of a polynomial.
polynomial
)) ¶Returns T if X and Y have equal entries, otherwise NIL.
standard-matrix
) (y standard-matrix
)) ¶number
) (y number
)) ¶static-store-vector
) (y static-store-vector
)) ¶Exact equality test for static-store-vector.
<ansatz-space-object>
)) ¶<ansatz-space>
)) ¶The mesh for this ansatz space which determines hanging-node constraints.
mesh
.
Computes a meshsize. Please refer to the method documentations for the exact definition.
Extract matrix X out of matrix Y from the position given by ROW-OFFSET and COL-OFFSET.
<sparse-vector>
) (y <sparse-vector>
) row-off col-off) ¶This routine can only extract from the multiplicity dimension.
standard-matrix
) (y standard-matrix
) row-off col-off) ¶Returns T, if @arg{mat} is the identity, i.e. if the elementwise difference to the identity is not larger than @arg{threshold}.
Returns cell midpoint in global coordinates.
<boundary-cell>
)) ¶automatically generated reader method
Default method
Inject matrix X in matrix Y at the position given by ROW-OFFSET and COL-OFFSET.
<sparse-vector>
) (y <sparse-vector>
) row-off col-off) ¶This routine can only inject in the multiplicity dimension.
standard-matrix
) (y standard-matrix
) row-off col-off) ¶vector
) (y vector
) row-off col-off) ¶Returns the matrix element @code{A[i,j]}.
<sparse-matrix>
) row-key col-key) ¶If the matrix-block indexed by row-key/col-key exists, it is returned. Otherwise, a new matrix block is created according to the pattern specified for this index.
compressed-matrix
) i j) ¶<sparse-tensor>
) i j) ¶standard-matrix
) i j) ¶We choose Fortran-like column-major indexing to make the use of Matlisp routines easier. Note: access to matrix entries using this generic function is slow. Therefore, specialized BLAS routines should be used whenever possible.
array
) i j) ¶<submatrix>
) i j) ¶vector
) (i (eql 0)
) j) ¶vector
) i (j (eql 0)
)) ¶number
) (i (eql 0)
) (j (eql 0)
)) ¶Writes the matrix element @code{A[i,j]}.
<sparse-matrix>
) row-key col-key) ¶compressed-matrix
) i j) ¶<sparse-tensor>
) i j) ¶standard-matrix
) i j) ¶Writer for mref.
array
) i j) ¶<submatrix>
) i j) ¶vector
) (i (eql 0)
) j) ¶vector
) i (j (eql 0)
)) ¶Returns T, iff @arg{mat} is square.
Returns T, if @arg{mat} is symmetric up to a accuracy in THRESHOLD. If output is T, the differences to symmetry are reported.
<sparse-matrix>
) &key threshold output) ¶The central generic function constructing the multilevel hierarchy.
<geometric-fas>
) (mat <ansatz-space-automorphism>
)) ¶Add the vector of FAS restrictions to the output of this method for <geometric-mg>.
<geometric-mg>
) (mat <ansatz-space-automorphism>
)) ¶Assemble all levels below the top-level. The top level should have been already assembled. Works only for uniformly refined meshes.
<algebraic-mg>
) mat) ¶This is the standard method for building up an AMG hierarchy. Thus, it should be usable by a large variety of AMG algorithms. Its purpose is to repeat coarsening steps until either max-depth is larger than the given value or the size of the problem is smaller than min-size. The generic function ’coarsen’ is called to do a single coarsening step.
Multiple evaluations of @arg{func} may be optimized.
The default and unoptimized method calls simply @function{evaluate}.
Multiple evaluations may be optimized.
The default and unoptimized method calls simply @function{evaluate}.
Applies LOCAL->DGLOBAL for several positions at once.
<distorted-cell>
) local-positions) ¶<mapped-cell>
) local-positions) ¶Applies LOCAL->GLOBAL for several positions at once.
<distorted-cell>
) local-positions) ¶<mapped-cell>
) local-positions) ¶We allow multiple vectors, for solving linear problems in parallel.
<ansatz-space>
)) ¶<evp-mixin>
)) ¶The multiplicity of the eigenspace.
<domain-problem>
)) ¶Multiplicity of the right-hand side.
<sparse-vector>
)) ¶<sparse-tensor>
)) ¶standard-matrix
)) ¶vector
)) ¶Recursive definition.
number
)) ¶<matrix>
)) ¶If @arg{vec} should be a matrix, the multiplicity is the number of columns by default.
The default is a multiplicity of 1.
Returns T if each entry of @arg{x} is smaller or equal than @arg{threshold}.
We do not allow parallelization of mzerop, because threads cannot handle non-local jumps.
standard-matrix
) &optional threshold) ¶number
) &optional threshold) ¶Tests if the number @arg{x} is lower or equal to @arg{threshold}.
The default method should work for every matrix.
Number of matrix columns.
<sparse-vector>
)) ¶compressed-matrix
)) ¶standard-matrix
)) ¶sequence
)) ¶For sequences @function{ncols} returns identically 1.
number
)) ¶<submatrix>
)) ¶Does a step of the iteration.
<rothe>
) blackboard) ¶Do one time step by solving the stationary problem.
<fe-approximation>
) blackboard) ¶Enlarges the ansatz space.
<wielandt-iteration>
) blackboard) ¶Simply calls the linear solver on the linearized problem.
<newton>
) blackboard) ¶Simply calls the linear solver on the linearized problem.
<linear-solver>
) blackboard) ¶Stepping for a linear solver.
<iteration>
) blackboard) ¶Increment step counter.
<iteration>
) blackboard) ¶Returns the @arg{p}-norm of @arg{x}.
<sparse-vector>
) &optional p) ¶Returns the number of components for @arg{problem}.
<ansatz-space>
)) ¶<vector-fe-discretization>
)) ¶<scalar-fe-discretization>
)) ¶<vector-fe>
)) ¶<scalar-fe>
)) ¶For scalar components the number of components is 1.
<domain-problem>
)) ¶Counts the number of components.
Returns the number of components a problem should have
which is known for many problems. A return value of NIL means that the
number is not clear.
(eql fl.navier-stokes:<navier-stokes-problem>)
) (domain <domain>
)) ¶(eql fl.elasticity:<elasticity-problem>)
) (domain <domain>
)) ¶(eql fl.cdr:<cdr-problem>)
) (domain <domain>
)) ¶A convection-diffusion-reaction equation has only 1 component - at least at the moment.
<pde-problem>
) domain) ¶symbol
) domain) ¶Number of degrees of freedom for the (vector) finite element.
<vector-fe>
)) ¶<scalar-fe>
)) ¶Total number of (block) entries for vectors.
Number of inner degrees of freedom for the (vector) finite element.
<vector-fe>
)) ¶<scalar-fe>
)) ¶Number of matrix rows.
compressed-matrix
)) ¶standard-matrix
)) ¶sequence
)) ¶For sequences @function{nrows} is equivalent to @function{length}.
number
)) ¶<submatrix>
)) ¶Number of nonzero entries of a sparse matrix pattern.
compressed-pattern
)) ¶Returns cell origin in global coordinates.
Partial degree in variable INDEX of a multivariate polynomial.
list
) (index integer
)) ¶polynomial
) (index integer
)) ¶compressed-matrix
)) ¶A compressed pattern.
Plot is a generic function which dispatches depending on
the type of object it receives. Its behaviour can additionally be modified
by keyword parameters.
array
) &key &allow-other-keys) ¶function
) &key range &allow-other-keys) ¶Plot a real function similar to Gnuplot/Octave.
standard-matrix
) &key &allow-other-keys) ¶Plot a 2xn matrix similar to Gnuplot/Octave.
list
) &rest rest &key &allow-other-keys) ¶<ansatz-space-automorphism>
) &rest rest) ¶<function>
) &rest rest &key cells mesh domain parametric depth key refinements &allow-other-keys) ¶Plots @arg{function} on the given cell list @arg{cells}. If @arg{cells} is empty, the highest-dimensional cells of @arg{mesh} are used. If this is NIL, then a temporary mesh on @arg{domain} is creatend and refined up to level @arg{refinements}. Each cell is additionally refined @arg{depth} times.
<pde-problem>
) &rest rest &key mesh refinements depth key parametric coefficient rank shape &allow-other-keys) ¶Plots a coefficient function for the problem on the given mesh. Does handle coefficients depending on finite element functions.
<ansatz-space-vector>
) &rest rest &key cells depth index component key transformation part &allow-other-keys) ¶Plots a certain component of the ansatz space vector @arg{asv},
e.g. pressure for Navier-Stokes equations. @arg{component} may also be a
list of components. @arg{index} chooses one of several solutions if
@arg{asv} has multiplicity larger 1.
<skeleton>
) &rest rest &key transformation &allow-other-keys) ¶Default method which might be overridden by other, e.g. for preprocessing the keyword argument list.
This around method handles the *plot* parameter and returns the object such that specialized methods do not have to care about this.
Multiplies two polynomials P1 and P2.
number
) (g number
)) ¶number
) (g list
)) ¶list
) (f number
)) ¶number
) (g polynomial
)) ¶polynomial
) (f number
)) ¶list
) (g list
)) ¶The assumption is that f and g are coefficient lists with the same variance.
polynomial
) (g polynomial
)) ¶Raises the polynomial P to power N.
list
) (n integer
)) ¶polynomial
) (n integer
)) ¶<mg-iteration>
)) ¶automatically generated reader method
<mg-iteration>
)) ¶automatically generated reader method
Eliminates Dirichlet or slave degrees of freedom which can be handled well by smoothing.
<algebraic-mg>
) mat) ¶Default method which eliminates slave nodes and Dirichlet nodes for sparse matrices.
<ansatz-space-object>
)) ¶<ansatz-space>
)) ¶The proplem for this ansatz space which determines essential constraints.
Computes a prolongation matrix from amg and mat. This is often the essence of an AMG method.
<s1-reduction>
) (mat <ansatz-space-automorphism>
)) ¶Transfer to S1 finite elements.
General definition for construction of a prolongation. For incorporating other AMG algorithms, you should first try to keep this routinge as it is and define modifications for the called generic functions.
property-mixin
)) ¶property-mixin
)) ¶A property list for storing unstructured information about this object.
Put an object into the pool.
thread-safe-pool
) key object) ¶Computes the quadrature rule to be used for the finite element @arg{fe}.
Insert items in R.
eql-relation
) &rest items) ¶Remove items from R.
Selects a range of tuples from the relation R.
eql-relation
) &rest items) ¶Checks if there exists some entry in R with this specification.
Rank of a tensor.
<sparse-tensor>
)) ¶full-tensor
)) ¶Reader for the element of @arg{vec} referenced by @arg{iterator}.
Setter for the element of @arg{vec} referenced by @arg{iterator}.
Returns the cell’s or cell-classes reference-cell.
refinement-rule
)) ¶Reference cell for this refinement rule.
standard-class
)) ¶Returns the cell information also when called for a cell class.
Refines @arg{skel} either locally or globally depending on the @function{indicator}.
<hierarchical-mesh>
) &key indicator highest) ¶Refine a hierarchical-mesh. When the argument ’test’ is supplied, all cells satisfying the test are refined.
<skeleton>
) &key indicator highest decouple) ¶Refines the cells of @arg{skel} indicated by @arg{indicator}. Returns two values: the first is the refined skeleton, the second is the refinement which is a skeleton for the old mesh referencing the refinement vectors. This refinement algorithm usually makes sense only for global refinements. Local refinements should be done with hierarchical-mesh structures.
Removes a column of @arg{smat}.
<sparse-matrix>
) col-key) ¶Remove the entry for @arg{key} from the sparse object.
<sparse-dictionary-matrix>
) &rest indices) ¶<sparse-dictionary-vector>
) &rest indices) ¶Removes a row of @arg{smat}.
<sparse-matrix>
) row-key) ¶Returns a representative for this object.
This default method returns the object itself.
identification
)) ¶Gets a representative cell for this identification.
Compute a restriction matrix from amg, mat and prolongation.
<algebraic-mg>
) mat prol) ¶This is the default method for defining the restriction in AMG algorithms as the transpose of the prolongation.
<ansatz-space-morphism>
)) ¶<block-definition-mixin>
)) ¶automatically generated reader method
<sparse-matrix>
)) ¶All row keys for a matrix.
<sparse-dictionary-matrix>
)) ¶<submatrix>
)) ¶The row indices of the submatrix.
<ht-sparse-matrix>
)) ¶<ht-sparse-matrix>
)) ¶Table of rows
<sparse-dictionary-matrix>
)) ¶<sparse-dictionary-matrix>
)) ¶Table of row dictionaries.
Set the row of matrix A defined by KEY to identity
<sparse-matrix>
) key) ¶X <- alpha X
polynomial
)) ¶array
)) ¶Call @function{scal!} on each entry of @var{array}.
list
)) ¶Call @function{scal!} on each entry of @var{lst}. Note that the result has to be freshly consed, because @function{scal!} is a function, not a macro.
number
)) ¶number
) (x static-store-vector
)) ¶Type of the scalars for the vector class.
<sparse-matrix>
)) ¶<sparse-vector>
)) ¶(store-vector⎵double-float⎵dynamic⎵nil)
)) ¶vector
)) ¶Default method returns NUMBER.
Select a discretization for the given @var{problem} depending on the parameters on the @var{blackboard}.
<navier-stokes-problem>
) blackboard) ¶<multiphysics-problem>
) blackboard) ¶<ellsys-problem>
) blackboard) ¶Forces the use of a discretization on the blackboard.
Selects a linear solver for OBJECT. OBJECT is usually a matrix or a linear problem with certain characteristics.
<navier-stokes-problem>
) blackboard) ¶<elasticity-problem>
) blackboard) ¶<cdr-problem>
) blackboard) ¶<ansatz-space-automorphism>
) blackboard) ¶Select a suitable solver depending on the pde problem.
<lse>
) blackboard) ¶Select linear solver based on the matrix.
Default method selects LU decomposition.
If a linear solver is on the blackboard, use it.
Select a suitable smoother depending on multigrid iteration and matrix.
<navier-stokes-problem>
)) ¶For discretized Navier-Stokes system, we use Vanka type smoothing.
<pde-problem>
)) ¶This method is called in the case of higher-order discretizations, such that we choose an SSC smoother by default.
<ansatz-space-automorphism>
)) ¶Choose the smoothing method as either Gauss-Seidel or SSC depending on discretization order.
Returns the Gauss-Seidel method as default smoother.
Selects a solver for OBJECT. OBJECT is usually a problem with certain characteristics.
<time-dependent-problem>
) blackboard) ¶<pde-problem>
) blackboard) ¶<nonlinear-problem>
) blackboard) ¶<problem>
) blackboard) ¶This method does a more specific search for linear problems by calling @function{select-linear-solver}.
If a solver is on the blackboard, use it.
Returns two values. The first says if @arg{problem} is self-adjoint, the second says if that value has really been checked.
<ellsys-problem>
)) ¶The problem is assumed to be self-adjoint if there are no first order coefficients.
<time-dependent-problem>
)) ¶The default method says that @arg{problem} is not self-adjoint and that no check has been performed.
Routine for sending commands to the graphics server.
(eql :gnuplot)
) &rest paras &key left right top bottom border tics grid xlabel ylabel fontsize terminal output &allow-other-keys) ¶Output can be a path or a string. A string is interpreted as a file name relative to (images-pathname).
(eql :vtk)
) &rest args &key message) ¶Nothing is done here, because at the moment we expect a separate Mayavi viewer to handle changes interactively.
Sets the region in global-mat determined by cell to the values of the local matrix array.
<sparse-matrix>
) local-mat (cell <cell>
) &optional domain-cell) ¶Sets the region in global-vec determined by cell to the values of the local vector array.
<cell>
) (svec <sparse-vector>
) local-vec) ¶Copies a local block in matlisp format into a <sparse-vector>.
<sparse-vector>
) local-vec &optional keys ranges) ¶Setup routine for determining the blocking of unknowns.
Returns a list of blocks where each block is a vector of keys. May return
a second value which is a list of pair. Each pair is of the form
start-index/end-index and can be used to filter out different fe
components.
<vanka>
) (asa <ansatz-space-automorphism>
)) ¶Adds to the usual vertex centered blocks all surrounding velocity degrees of freedom.
<geometric-blocking-mixin>
) (asa <sparse-matrix>
)) ¶Collects blocks consisting either of all subcells of cells in the cell-centered case or all cells to which a vertex belongs in the vertex-centered case.
<setup-blocks-mixin>
) (smat <sparse-matrix>
)) ¶Use the setup function.
<block-iteration>
) (smat <sparse-matrix>
)) ¶A default around method for block setup does debugging output.
<block-iteration>
) (smat <sparse-matrix>
)) ¶If a setup function is provided, it is called. The default is to use the standard blocking introduced by the block sparse matrix.
Shifts a polynomial in dimension, i.e. variables starting from index k>=@arg{from} get index k+shift.
number
) shift &optional from) ¶list
) shift &optional from) ¶polynomial
) shift &optional from) ¶Shifts the index range of a sparse tensor or a vector.
Offsets can either be a number in which case all indices are shifted by
this number or a list of the length of the tensor rank which specifies
the shift for each dimension.
number
)) ¶list
)) ¶vector
) offsets) ¶Treats the vector as a rank-1-tensor with a special index range.
<sparse-tensor>
) offsets) ¶Shows the contents of @arg{matrix} in a readable form.
priority-queue
) &key &allow-other-keys) ¶<sparse-matrix>
) &key keys zeros &allow-other-keys) ¶<sparse-vector>
) &key keys zeros &allow-other-keys) ¶compressed-matrix
) &key stream) ¶<sparse-tensor>
) &key &allow-other-keys) ¶The default method describes its argument.
compressed-pattern
)) ¶Vector of matrix sizes, at the moment only length
2 is allowed here. The first is the dimension which is not compressed, the
second is the dimension which gets compressed.
Maps a skeleton with func to another skeleton having the same keys and mapped values. May be configured later on.
Returns a skeleton for the given cell or the given cells.
Slices @arg{tensor}. @arg{fixed} determines which indices are fixed.
full-tensor
) index-settings) ¶Solve a problem specified on the blackboard. Returns a
modified blackboard. The returned blackboard is guaranteed to contain at
least the fields :solution and :status. :status is one of the values
:success or :failure.
SOLVE can also be called as (SOLVE blackboard) and will then try to figure out a suitable solver itself.
blackboard
) &optional dummy) ¶Implements the simplest interface for problem solving. Only a blackboard describing the problem is passed and the solution method is open.
<strategy>
) &optional blackboard) ¶Solves the problem on the blackboard using the given strategy.
<special-solver>
) &optional blackboard) ¶<iterative-solver>
) &optional blackboard) ¶Sparse LDU decomposition
<sparse-matrix>
) &key ordering incomplete omega diagonal-inverter pool) ¶Sparse matrix-matrix or matrix-vector multiplication.
Usually, m* should be used. But in situations, where A or B are very
sparse, the complexity of this routine is much lower.
<sparse-matrix>
) (b <sparse-matrix>
) &key job sparsity) ¶<sparse-matrix>
) (b <sparse-vector>
) &key job sparsity) ¶Converts sparse matrices into matlisp format.
<sparse-matrix>
) &key keys row-keys col-keys ranges row-ranges col-ranges) ¶<time-dependent-problem>
)) ¶The start time of the problem (NIL=unspecified).
sequence
)) ¶For sequences @function{store} is identity.
store-vector
)) ¶The vector entries.
Returns a vector containing all subcells of a given cell. The code is special to each class and often automatically generated by @function{generate-subcell-access-code}.
<boundary-cell>
)) ¶General extraction of submatrices specified by non-adjacent lists of row- and column indices.
standard-matrix
) &key row-indices col-indices) ¶<multiphysics-mixin>
)) ¶automatically generated reader method
Returns a minimal skeleton containing the cells satisfying the test.
<skeleton>
) test) ¶Contracts TENSOR1 and TENSOR2 along the pairs of indices specified by CONTRACTION-PAIRS.
full-tensor
) (tensor2 full-tensor
) contraction-pairs) ¶Applies @arg{func} to each index of @arg{tensor} up to @arg{depth}. @arg{job} can be :entry, :index, or :both.
standard-matrix
) &key job &allow-other-keys) ¶<sparse-tensor>
) &key job depth) ¶Maps @arg{tensor} with @arg{func} to a tensor of the same type.
Default method.
Reader for a tensor entry.
<sparse-tensor>
) &rest indices) ¶full-tensor
) &rest indices) ¶standard-matrix
) &rest indices) ¶vector
) &rest indices) ¶Writer for a tensor entry.
<sparse-tensor>
) &rest indices) ¶full-tensor
) &rest indices) ¶standard-matrix
) &rest indices) ¶vector
) &rest indices) ¶Tests terminating conditions. Returns either NIL or :success or :failure.
<fe-approximation>
) blackboard) ¶Sets some variables before passing control to the check of termination criteria.
<safe-linear-solver>
) blackboard) ¶If failure occurs we continue iterating with a direct decomposition. Note that no other parameters on the blackboard are changed. Thus, success and failure have to be chosen more or less independent of the size of :step and :time.
<iteration>
) blackboard) ¶Default method evaluating success-if and failure-if expressions.
<time-dependent-problem>
)) ¶Top-level of a mesh hierarchy.
<refinement-indicator>
)) ¶If top-level is set, no refinement beyond top-level is indicated.
<hierarchical-mesh>
)) ¶Degree of a multivariate polynomial
polynomial
)) ¶Total number of entries for block vectors.
standard-matrix
)) ¶number
)) ¶Total number of rows for a matrix (works also for block matrices).
<sparse-matrix>
)) ¶Transpose the matrix @arg{x}.
compressed-matrix
)) ¶A compressed matrix can be transposed easily by transposing its pattern.
The default method casts performs a combination of @function{transpose!} and @function{matrix-transpose-instance}.
Sets Y to the transpose of X.
<sparse-matrix>
) (y <sparse-matrix>
)) ¶standard-matrix
) (y standard-matrix
)) ¶Transpose a sparse matrix pattern.
compressed-pattern
)) ¶number
)) ¶list
)) ¶polynomial
)) ¶Number of variables on which a polynomial depends.
number
)) ¶list
)) ¶Nestedness of the list calculated by walking down depth-first.
polynomial
)) ¶Low-level key lookup. Returns NIL if there is no block at this position.
<sparse-dictionary-vector>
) key) ¶Low-level insertion of a block without checks.
<sparse-dictionary-vector>
) key) ¶Extract a subvector of size @arg{size} out of @arg{x} starting from position @arg{offset}.
vector
) offset size) ¶Provides a convenient shorthand for constructing a displaced double-float array.
standard-matrix
) offset size) ¶Returns a list of all vertices of the cell.
Length of vector.
standard-matrix
)) ¶sequence
)) ¶For sequences @function{vlength} is equivalent to @function{length}.
Reader for @math{x_i}.
<sparse-vector>
) key) ¶array
) (index list
)) ¶array
) index) ¶vector
) index) ¶number
) k) ¶<submatrix>
) k) ¶A @class{<submatrix>} can be accessed as one-dimensional vector.
<matrix>
) (indices list
)) ¶Vector referencing on matrices is done by default by matrix referencing a list of indices.
store-vector
) i) ¶Note: access to entries using this generic function is slow. Therefore, specialized BLAS routines should be used whenever possible.
Writer for @arg{x_i}.
<sparse-vector>
) key) ¶array
) (index list
)) ¶array
) index) ¶vector
) index) ¶<submatrix>
) k) ¶<matrix>
) (indices list
)) ¶Vector referencing on matrices is done by default by matrix referencing a list of indices.
store-vector
) i) ¶Writer for vref.
Generates a zero of the same kind as @arg{F}.
number
)) ¶list
)) ¶polynomial
)) ¶number
)) ¶list
)) ¶polynomial
)) ¶<skeleton>
) stream) ¶<hierarchical-mesh>
) stream) ¶blackboard
) stream) ¶<domain-problem>
) stream) ¶small-cache-dictionary
) &key &allow-other-keys) ¶sorted-hash-table
) &key &allow-other-keys) ¶cache-dictionary
) &key &allow-other-keys) ¶thread-cached-dictionary
) &key &allow-other-keys) ¶<iteration>
) &key &allow-other-keys) ¶<gauss-seidel>
) &rest initargs) ¶<domain>
) &key &allow-other-keys) ¶When a domain is constructed from a list of cells, we assume that its definition is finished and setup the boundary slot.
<skeleton>
) &key cells &allow-other-keys) ¶The etables-list has to be initialized. Furthermore, we allow a constructor by giving a cell-list.
<mesh>
) &key domain &allow-other-keys) ¶When a mesh is constructed from a domain its dimension is taken as the domain dimension by default.
<mapped-vertex>
) &key &allow-other-keys) ¶<evp-mixin>
) &key &allow-other-keys) ¶<nonlinear-problem>
) &key &allow-other-keys) ¶<linear-function>
) &key &allow-other-keys) ¶<special-function>
) &key &allow-other-keys) ¶full-tensor
) &key &allow-other-keys) ¶compressed-pattern
) &key pattern &allow-other-keys) ¶This is a more elaborate compressed-pattern constructor. A sparse matrix of the form @math{ | * 0 0 0 a | | 0 a 0 0 0 | } can be described by its sizes as a vector (dimension of non-compressed, dimension/compressed) together with the pattern ’( ((* . 0) (a . 4)) ((a . 1)) ). Here, * means a non-identified value. Other symbols can be used to identify entries.
<sparse-tensor>
) &key initial-contents &allow-other-keys) ¶compressed-matrix
) &key &allow-other-keys) ¶standard-matrix
) &key content &allow-other-keys) ¶Handles the content parameter and sets the store to a suitable vector. If content is a 2d array, the dimensions can be deduced.
<ht-sparse-vector>
) &key &allow-other-keys) ¶<ht-sparse-matrix>
) &key row-access-p column-access-p &allow-other-keys) ¶<scalar-fe>
) &key &allow-other-keys) ¶<vector-fe>
) &key &allow-other-keys) ¶<ansatz-space-vector>
) &rest args &key multiplicity &allow-other-keys) ¶<ansatz-space-automorphism>
) &rest args &key &allow-other-keys) ¶<ansatz-space-morphism>
) &rest args &key &allow-other-keys) ¶<ansatz-space>
) &key &allow-other-keys) ¶<vector-fe-discretization>
) &key &allow-other-keys) ¶If the slot @symbol{cell->fe} is unbound, it is derived from the components vector.
<ellsys-problem>
) &key start-time end-time &allow-other-keys) ¶<preconditioned-krylow>
) stream) ¶refinement-rule
) stream) ¶identification
) stream) ¶Print the cells in the identification.
<coefficient>
) stream) ¶Prints the coefficient name.
polynomial
) stream) ¶full-tensor
) stream) ¶<sparse-vector>
) stream) ¶standard-matrix
) stream) ¶Insert default component names u and p. This is a questionable feature, because it may interfere with other names. Therefore it might be removed later on. It is also suspect, that we cannot define it as an after method, because shared-initialize/after for <domain-problem> depends on the components being bound.
Checks @slot{components}, does @slot{coefficients} setup when the problem specification is given as a list in @arg{patch->coefficients}, and finally memoizes @slot{coefficients}.
property-mixin
) slot-name (operation (eql slot-makunbound)
) &optional new-value) ¶property-mixin
) slot-name (operation (eql slot-boundp)
) &optional new-value) ¶property-mixin
) slot-name (operation (eql setf)
) &optional new-value) ¶property-mixin
) slot-name (operation (eql slot-value)
) &optional new-value) ¶<skeleton>
) (domain <domain>
) &rest initargs) ¶Sometimes a skeleton is transformed into a domain by change-class. Usually, this means that the definition is finished such that we can compute the boundary afterwards.
<mesh>
) (h-mesh <hierarchical-mesh>
) &rest initargs) ¶One constructor for an h-mesh is by changing the class of a one-level mesh. This method definition fills the level slot appropriately.
A automorphism of an ansatz space.
A mapping between two ansatz-spaces.
A sparse vector which is interpreted as the ansatz-space for a specific fe-class on a given mesh.
A finite element ansatz space is determined by finite
element discretization, mesh and problem. The constraints are stored in
the slot @var{properties}.
The finite element class for this ansatz space.
fl.discretization:<fe-discretization>
:fe-class
This slot is read-only.
The proplem for this ansatz space which determines essential constraints.
:problem
This slot is read-only.
Preconditioned Bi-CGStab iteration
Subspace correction scheme generated by collecting overlapping blocks of unknowns.
This cell is only fuzzily defined. Its use is mostly
for defining domains by their boundary. The slot @slot{midpoint} can be
useful for the graphical output of the cell, the slot @slot{holes} contains
a list of points lying inside holes. This is intended as help for
triangulation programs.
Convection-diffusion-reaction problem.
(quote (fl.cdr::u))
:components
Calls @slot{cell-rule} on a cell for determinining its refinement rule.
:cell-rule
The basic cell class.
cartesian-product
.
cell-mapping
.
describe-all
.
dimension
.
embedded-dimension
.
fill-local-from-global-mat
.
fill-local-from-global-vec
.
get-local-from-global-mat
.
get-local-from-global-vec
.
global->embedded-local
.
global->local
.
global-local-matrix-operation
.
global-local-vector-operation
.
increment-global-by-local-mat
.
increment-global-by-local-vec
.
inside-cell?
.
local->dglobal
.
local->global
.
make-product-cell
.
make-product-cell
.
make-product-cell
.
make-product-cell
.
mapping
.
multiple-local->dglobal
.
multiple-local->global
.
plot
.
print-object
.
pseudo-vertices
.
reference-cell
.
refine-cell!
.
refine-cell!
.
refine-cell!
.
set-global-to-local-mat
.
set-global-to-local-vec
.
skeleton
.
Preconditioned conjugate gradient iteration
The coefficient class.
:name
This slot is read-only.
The dimension of the cell on which this coefficient is
active. The value T means that it is active on all cells lying on the
patch. The default value NIL means that it is active on cells with the
same dimension as the patch.
A list indicating which information the evaluation
function needs. Possible choices depend on problem and discretization,
e.g. @code{:local}, @code{:global}, @code{:fe}, @code{:cell} are possible
choices. One element can also be a list starting with the keyword
@code{:fe-parameters} and followed by symbols indicating names of finite
element functions on the discretization blackboard.
:demands
This slot is read-only.
The evaluation funtion. It accepts a list of
keyword parameters which should correspond to the list in DEMANDS.
common-lisp
.
function
:eval
This slot is read-only.
For multiphysics problem a row offset for the component index.
:row-offset
For multiphysics problem a column offset for the component index.
:col-offset
A list of two symbols. If :matrix is a member, it
means evaluation that the coefficient contributes to the Jacobian,
if :residual is a member, it contributes to assembling the residual.
As noted in the documentation of @var{*assembly-type*}, this
functionality is not yet used.
fl.problem::*assembly-type*
:assembly-type
This slot is read-only.
For a <constant-function> evaluation and derivative computation are trivial.
This is a mixin-class which yields the correction
scheme. It should be merged !before! <mg-iteration> for standard CLOS
class precedence.
PSC with custom BLOCK-SETUP function slot.
SSC with custom BLOCK-SETUP function slot.
Discretization base class.
An instance of this class describes a problem posed on
@slot{domain} with coefficients given on each patch of the domain. The
slot @slot{multiplicity} is a positive integer which denotes the number of
right-hand sides and solutions (e.g. when computing several eigenvectors at
once).
A list whose elements are symbols or lists
of the forms (symbol dim) or (symbol dim type) or (symbol subcomponents)
describing the components occuring in the pde. Alternatively, this slot
can contain a function/dictionary mapping patches to such lists.
:components
This slot is read-only.
Multiplicity of the right-hand side.
1
:multiplicity
This slot is read-only.
A -usually memoized- function mapping patches to coefficient lists.
:coefficients
This slot is read-only.
A @class{<domain>} is a special @class{<skeleton>}. We
call its cells @emph{patches}, and the properties of a patch carries
geometric information. Properties supported up to now are:
@itemize
@item @code{IDENTIFIED}: @emph{list of identified patches}
@item @code{EXTENSION}: @emph{extender}
@item @code{METRIC}: @emph{metric tensor function}
@item @code{VOLUME}: @emph{volume function}
@end itemize
Metric and volume should be functions depending on keyword arguments like @code{:LOCAL} and @code{:GLOBAL} and allowing arbitrary other keys.
A list of functions of two arguments -patch and classifications so far- which are called from the right to classify the patch.
:classifiers
Estimates the error by testing the difference z-IPz
against the residual. Here z is the solution of a dual problem in an
enriched finite element space.
An elasticity problem is a special instance of an elliptic sytems.
Systems of convection-diffusion-reaction equations. The coefficients should be vector-valued functions in this case.
A mixin for eigenvalue problems.
The multiplicity of the eigenspace.
1
:multiplicity
This slot is read-only.
The current approximation of the eigenvalues.
:eigenvalues
The multiplier for the system matrix.
(fl.utilities:box 1.0d0)
:mu
Standard class for discrete eigenvalue problems.
This is a mixin-class for <mg-iteration> which yields
the behaviour of Brandt’s FAS scheme. It should be merged !before!
<mg-iteration> or the derived class <geometric-mg> when using standard CLOS
class precedence.
This class describes iterative finite element appoximation strategies.
Providing initform for <iteration> slot.
fl.strategy:*fe-approximation-observe*
:observe
Plot the mesh at the beginning and after changes. Can
be a function in which case it is called on the mesh to do the plotting.
t
:plot-mesh
The class of finite element. If it is not set, it is automatically chosen.
:fe-class
This slot is read-only.
The error estimator, which computes information on the error distribution in a hash-table in the :ETA-field on the blackboard, as well as a global estimate in :GLOBAL-ETA which can be used to terminate the iteration.
:estimator
The error indicator which marks cells for local refinement. Usually, this procedure will be based on the error distribution approximated in the :ETA-field on the blackboard.
(make-instance (quote fl.strategy:<uniform-refinement-indicator>))
:indicator
FE discretization base class.
This class implements adaptive finite element
interpolation of the given coefficient function as a variant of finite
element approximation.
A coefficient determining the function to be interpolated.
:coefficient
The <function> class is an abstract class for a general
function. This function will usually accept vector arguments, the dimensions of
domain and image are fixed when defining the function. If the function is
differentiable, the gradient matrix can be obtained by evaluating the gradient
slot.
The Gauss-Seidel iteration is SOR with omega=1.
Geometric multigrid of correction scheme type.
Brandt’s FAS scheme approximates the unknowns on every
level instead of using corrections. This requires slightly more work, but
is better suited for handling nonlinear problems and local refinements.
PSC with geometry-based block choice.
SSC with geometry-based block choice.
Gradient-method. Better use CG.
Hierarchical-meshes are those meshes which will be used
most often, because they remember the refinement history and therefore
allow for refinement and coarsening. The slot levels is an array of
skeletons containing the cells for different levels.
(array fl.mesh:<skeleton> (*))
:levels
Incomplete LU iteration. omega is the modification parameter, eta is the diagonal enhancement.
Interpolation problem on a domain. The function which
is to be interpolated is given as a coefficient with key FUNCTION in the
coefficient list.
The iteration base class.
The initform depends on the subclass.
:observe
A boolean indicating if output is to be done.
:output
A form specifying a success criterion.
:success-if
A form specifying a failure criterion.
:failure-if
Start time of the iteration.
Compiled success-if form.
Compiled failure-if form.
Base class of all iterative solvers and solution strategies.
An <iterator> object contains functions doing iteration
work or flags indicating which work has or has not to be done for calling
that iterator. It is generated by the generic function make-iterator.
The matrix on which the iterator is working.
:matrix
NIL or an initialization function which is called with the solution, rhs, and residual as arguments.
:initialize
Flag, if initialization has been done.
A function of
the arguments solution, rhs, and residual which performs an update step.
function
:iterate
T if the
residual has to be up-to-date before the iteration step.
:residual-before
T if the
residual is updated through the iteration step.
:residual-after
Puts the fraction of the cells with the largest error
contributions in the refinement table. Note that a fraction of 1.0 yields
uniform refinement.
0.2d0
:pivot-factor
This slot is read-only.
A <linear-function> is determined by a matrix A and a vector b. It represents the map @math{x -> Ax+b}.
The <linear-iteration> class. Linear iterations are e.g. <gauss-seidel> or <multigrid>.
Class for linear iterative solvers.
The inner iteration.
:iteration
This slot is read-only.
Generalized eigenvalue problem for matrices.
Standard form of a linear system of equations.
A linear iteration interface for the LU exact solver.
Store decomposition for multiple applications.
fl.iteration::*store-decomposition*
:store-p
A mixin which distinguishes cells which are mapped by a special mapping.
<mapped-1-1-product-cell>
.
<mapped-1-simplex>
.
<mapped-2-1-product-cell>
.
<mapped-2-simplex>
.
<mapped-vertex>
.
:mapping
General matrix class.
A <mesh> is a special <skeleton> mapping cells to
property lists with properties of the cell. The most important property of
a cell is its patch in the domain. Another one could be a list of possibly
identified cells. The slot parametric determines which kind of cell
mappings are used for approximating the domain. These can be the nonlinear
mappings used in the domain definition, but also arbitrary approximations,
to those mappings, e.g. isoparametric mappings. The special value NIL
means that multilinear mappings are used for all cells outside the
boundaries.
The multigrid iteration is a linear iteration specially
suited for the solution of systems of equations with elliptic terms. In
ideal situations, it solves such systems with optimal complexity. It is a
complicated linear iteration, which consists of applying simple linear
iterators as smoothers on a hierarchy of grids. This grid hierarchy is
obtained either by discretizing on successively refined meshes (geometric
multigrid) or it is constructed from matrix information alone (algebraic
multigrid).
The <mg-iteration> is not intended to be used directly. Only incorporating mixins like <correction-scheme> or <fas> results in concrete classes like <algebraic-mg>.
:smoother
, :pre-smoother
This slot is read-only.
:smoother
, :post-smoother
This slot is read-only.
1
:post-steps
This slot is read-only.
0
:base-level
This slot is read-only.
(make-instance (quote fl.iteration:<lu>))
:coarse-grid-solver
, :coarse-grid-iteration
This slot is read-only.
Switch between additive and multiplicative
combination of corrections from different levels. The additive version
should be used as a preconditioner.
:multiplicative
:combination
This slot is read-only.
One step of this iteration performs nr-steps of the base iteration.
:subproblems
This slot is read-only.
At least for the moment, multiphysics problems are a special kind of ellsys problems.
Class for the Newton iteration.
NIL means that no step-control is done. If
step-control is a number, then it denotes the maximum
number of halving steps which is tried before giving
up.
:step-control
This slot is read-only.
Class for nonlinear system of equations.
Class for nonlinear problems. The linearization contains a function returning a linear problem.
A parallel version of SOR.
Base-class for a pde-problem.
This class implements a periodic polygon.
This class implements a function which maps the unit interval to a polygon.
Base class for all problems.
A mixin for simplex-product cells.
<1-1-1-1-product-cell>
.
<1-1-1-product-cell>
.
<1-1-product-cell>
.
<1-2-product-cell>
.
<2-1-product-cell>
.
Estimates the error by measuring the difference between
the solution and a projected solution in a hierarchical mesh by a certain
norm given by local-p and global-p.
Parallel subspace correction scheme.
An error indicator can appear as first argument in the @function{indicate} which works on a blackboard. Often, it will use quantities computed by an error estimator before.
If top-level is set, no refinement beyond top-level is indicated.
Below from-level, global refinement is used. If
from-level=NIL, regular global refinement is indicated, if no other
indication is available.
:from-level
This slot is read-only.
If block-p is T, all children of a parent cell are indicated for refinement together.
:block-p
This slot is read-only.
If ensure-mesh-quality-p is T, the indicator ensures that the difference of mesh widths of neighboring cells does not become larger than a factor of 4.
t
:ensure-mesh-quality-p
This slot is read-only.
Rothe strategy for time-dependent problems. The idea of
the Rothe method for solving @math{U_t +A U =f} is to do an ODE
time-stepping scheme in an infinite-dimensional function space. Therefore,
in every time-step, the solution has to be approximated sufficiently well
in the space variable.
Current time in the time-stepping scheme.
:model-time
This slot is read-only.
For use in BDF formula
:old-time-step
This slot is read-only.
:minimal-time-step
This slot is read-only.
:maximal-time-step
This slot is read-only.
:forced-times
This slot is read-only.
Time-stepping scheme, e.g. @code{:implicit-euler} or @code{:bdf2}.
:implicit-euler
:scheme
This slot is read-only.
:stationary-success-if
:stationary-failure-if
Providing initform for <iteration> slot.
fl.strategy:*rothe-observe*
:observe
Calls LU directly, if the matrix was not reduced to S1 which may happen if there are only Dirichlet vertices.
This class is useful for reducing a higher-order FE
discretization to a first-order FE discretization. This can afterwards be
treated by ordinary AMG steps. Even if it has the structure of a
<selection-amg>, it is far from being a pure algebraic multigrid.
If failure occurs, object of this class try an
alternative iteration. Usually this will be a direct decomposition.
Class for scalar fe discretizations.
:order
This slot is read-only.
A finite element <fe> is given for each reference cell,
e.g. <2-simplex>. dofs are the degrees of freedom associated with the
cell, basis is the dual basis to dofs in some polynomial space.
subcell-ndofs is the number of ndofs on each subcell. subcell-indices is a
list of indices for all subcells with dofs. Usually, the <scalar-fe> will occur
as values of a procedure or as values in a hash-table with the reference
cells as keys.
<fe>
.
The dofs which are functionals satisfying dof[i](basis[j])=delta(i,j).
:dofs
This slot is read-only.
The fe’s basis functions.
:basis
This slot is read-only.
:order
This slot is read-only.
This variant of algebraic multigrid coarsens in a
special way by selecting coarse-grid nodes from the fine-grid nodes. This
selection is kept in a table, which is then used by the method build-ip to
build the actual interpolation matrix.
A mixin for simplicial cells.
<1-simplex>
.
<2-simplex>
.
<3-simplex>
.
A skeleton is a vector of hash-tables containing the
cells of a certain dimension as keys. The information stored in the
values is different depending on the subclass derived from skeleton.
cartesian-product
.
check
.
describe-object
.
(setf dimension)
.
dimension
.
dimension-of-part
.
do-refinement!
.
embedded-dimension
.
etable
.
(setf etables)
.
etables
.
extended-extract
.
find-cell-from-position
.
graphic-commands
.
graphic-write-data
.
graphic-write-data
.
initialize-instance
.
make-analog
.
plot
.
plot-cells
.
refine
.
refine-cell!
.
refine-cell!
.
remove-cells!
.
subskeleton
.
update-instance-for-different-class
.
update-refinement!
.
(integer -1)
:dimension
:solver
The base class of linear, nonlinear and whatever iterative solvers.
Abstract class for sparse matrices.
coarse-grid-matrix
.
col-key->size
.
display
.
element-type
.
entry-allowed-p
.
extract-if
.
extract-value-blocks
.
fill-local-from-global-mat
.
gemm-nn!
.
gemm-nt!
.
gemm-tn!
.
gemm-tt!
.
gesv!
.
get-local-from-global-mat
.
getrf!
.
in-pattern-p
.
increment-global-by-local-mat
.
keys->pattern
.
m*-product-instance
.
make-domain-vector-for
.
make-domain-vector-for
.
make-image-vector-for
.
make-image-vector-for
.
make-iterator
.
make-iterator
.
make-iterator
.
make-iterator
.
make-iterator
.
make-iterator
.
map-matrix
.
mat-diff
.
matrix-transpose-instance
.
(setf mref)
.
mref
.
msymmetric-p
.
print-matlab-format
.
remove-column
.
remove-row
.
row-key->size
.
row<-id
.
scalar-type
.
set-global-to-local-mat
.
setup-blocks
.
setup-blocks
.
setup-blocks
.
setup-blocks
.
show
.
sparse-ldu
.
sparse-m*
.
sparse-m*
.
sparse-matrix->matlisp
.
total-nrows
.
transpose!
.
A general sparse tensor class which is implemented as a sparse vector containing full-or sparse tensor entries.
Tensor rank.
fixnum
:rank
The (nonzero) indices of the first slot.
vector
(make-array 0 :element-type (quote fixnum) :adjustable t)
:indices
The (nonzero) entries of the first slot.
vector
(make-array 0 :adjustable t)
:entries
Abstract class for sparse vectors.
add-svec-to-local-block
.
copy!
.
dot
.
element-type
.
ensure-contained
.
entry-allowed-p
.
extract-value-blocks
.
fill-local-from-global-vec
.
gemm-nn!
.
gemm-nt!
.
gemm-tn!
.
gemm-tn!
.
gemm-tt!
.
get-local-from-global-vec
.
global-local-vector-operation
.
increment-global-by-local-vec
.
join-horizontal!
.
join-instance
.
key->size
.
m*
.
m*-product-instance
.
m*-tn-product-instance
.
matrix-slice
.
mextract!
.
minject!
.
multiplicity
.
ncols
.
norm
.
print-object
.
scalar-type
.
set-global-to-local-vec
.
set-svec-to-local-block
.
show
.
sparse-m*
.
(setf vref)
.
vref
.
Multiplicity of the sparse vector. A
multiplicity different from 1 is used when handling multiple right-hand sides
and solutions simultaneously.
1
:multiplicity
A <special-function> provides its own evaluation and gradient computation.
If you happen to have a problem-adapted solver given as a function, you may use this base class.
function
:solver-function
This slot is read-only.
Successive subspace correction scheme.
1.0d0
:omega
Finite element discretization where the finite element depends only on the cell (usually via its reference cell).
A function mapping a cell to a finite element. Usually this will be a closure memoized over the reference cell.
:cell->fe
This class describes some iterative finite element solution strategies for continuous, stationary PDE problems.
A strategy is an iteration for solving a problem defined on a blackboard.
This provides something like Stueben’s variant for
selection amg. The original Ruge-Stueben algorithm was developed further
since 1987 by Klaus Stueben and collaborators. These developments are
published in .... The algorithm implemented here uses their ideas, but
does not claim to be equivalent to their code which can be bought at SCAI,
St. Augustin, Germany. At this point, I want to thank Tanja Clees
for several discussions on AMG.
0.25d0
:theta
Describes an ordered submatrix of a matrix. Only a
restricted set of operations is allowed for these matrices and element
access is slow. They are indexed with ordinary integers.
A mixin which should be used together with a <PDE-PROBLEM> in a call to MAKE-PROGRAMMATIC-INSTANCE.
The start time of the problem (NIL=unspecified).
:start-time
This slot is read-only.
Marks all cells for refinement.
Vanka-like smoother for @math{Q^{k+1}/Q^k} discretizations of Navier-Stokes.
Vector FE discretization class.
Either a vector of components or
the symbol :variable, if the components vary across the domain
as is the case for hp-FEM.
:components
This slot is read-only.
Finite element for vector functions. Components is a
vector of scalar finite elements. Subcell-offsets is an array consisting
of arrays which yield such an offset for every subcell.
<fe>
.
component
.
(setf components)
.
components
.
compute-local-imatrix
.
compute-local-pmatrix
.
discretization-order
.
fe-basis
.
(setf fe-dofs)
.
fe-dofs
.
initialize-instance
.
interpolation-function
.
ip-gradients
.
ip-gradients-at-point
.
ip-values
.
ip-values-at-point
.
nr-of-components
.
nr-of-dofs
.
nr-of-inner-dofs
.
simple-vector
:components
General vector class.
The vertex class.
barycentric-coordinates
.
barycentric-gradients
.
boundary
.
(setf cell-class-information)
.
cell-class-information
.
cell-mapping
.
coordinates-inside?
.
copy-cell
.
embedded-dimension
.
g2l
.
generate-refine-info
.
global->local
.
l2dg
.
l2g
.
lagrange-inner-coords
.
local->dglobal
.
local-coordinates-of-midpoint
.
make-product-cell
.
make-product-cell
.
make-product-cell
.
pseudo-vertices
.
subcells
.
transform-cell!
.
vertex-position
.
vertices
.
:class
common-lisp
.
vector
:position
This slot is read-only.
A blackboard where data items can be put and extracted using the function @code{GETBB}.
A property list of items on the blackboard.
:items
This is a dictionary which can only hold a certain
number of items. If more are inserted, only the most recently accessed
items are kept.
A compressed sparse matrix. This is an abstract class
which is made concrete by mixing it with a store-vector containing the
entries.
(compressed-matrix⎵(store-vector⎵double-float⎵dynamic⎵nil))
.
compressed->matlisp
.
copy
.
ensure-matlisp
.
for-each-entry-and-key
.
for-each-key-and-entry-in-row
.
gemm-nn!
.
gemm-nt!
.
gemm-tn!
.
gemm-tt!
.
gesv!
.
in-pattern-p
.
initialize-instance
.
m*-product-instance
.
make-domain-vector-for
.
make-image-vector-for
.
(setf mref)
.
mref
.
ncols
.
nrows
.
pattern
.
show
.
transpose
.
A compressed sparse pattern. Note: we use int32 vectors
for @slot{starts} and @slot{indices}, such that they do not have to be
copied for a call to the alien sparse solvers.
Vector of matrix sizes, at the moment only length
2 is allowed here. The first is the dimension which is not compressed, the
second is the dimension which gets compressed.
:sizes
This slot is read-only.
Denotes if rows or columns are compressed.
(member :row :column)
:row
:orientation
This slot is read-only.
Vector with start indices of compressed columns/rows.
:starts
This slot is read-only.
Vector with compressed row/column indices.
:indices
This slot is read-only.
Degree of freedom in a finite element. It is defined as a functional defined by integration over a sub-cell or by evaluation at a local coordinate of a sub-cell of a reference cell.
Index of the dof in the cell-dof array
fixnum
:index
This slot is read-only.
Reference subcell on which the dof is defined
:subcell
This slot is read-only.
Index of the reference subcell on which the dof is defined
fixnum
:subcell-index
This slot is read-only.
Index of the dof in the subcell vblock
fixnum
:in-vblock-index
This slot is read-only.
Local coordinate of the dof in the reference subcell in high precision.
vector
:precise-coord
This slot is read-only.
Local coordinate of the dof in the reference subcell
vector
:coord
This slot is read-only.
Global coordinate of the dof on the reference cell in high precision.
vector
:precise-gcoord
This slot is read-only.
Global coordinate of the dof on the reference
cell. This is a vector in a standard floating point precision
which is sufficient for function evaluation, but not sufficient
for calculating stiffness matrix entries.
vector
:gcoord
This slot is read-only.
A functional for functions defined on the reference cell
:functional
This slot is read-only.
Mixin for full tensors.
The dimensions of the tensor.
:dimensions
This slot is read-only.
An initial offset into the store-vector which defaults to 0.
fixnum
0
:offset0
This slot is read-only.
fl.mesh:<cell>
:cell
:order
:rule-factors
This slot is read-only.
A list of ips where an <ip> is a list (weight
coordinate-vector). Both weight and coordinates are in the high precision
given by @var{*quadrature-rule-internal-precision*}.
:high-precision-ips
This slot is read-only.
The points of an integration rule.
:points
This slot is read-only.
The weights of integration rule.
:weights
This slot is read-only.
(make-hash-table :test (quote equal))
This slot is read-only.
A mixin which adds a mutex to every instance of the class.
A parallel pool of objects of a certain characteristic. Its purpose is to use massive objects multiple times without needing to create and GC them.
It is implemented as a shared hash-table where the key specifies the characteristic and the value is a list of registered free objects satisfying that characteristic. More precisely, this list consists of parpool-entries which contain pointers to the actual objects.
A thread-safe queue waiting for input.
Multivariate polynomial. The coefficients are
represented as nested lists. A special case are 0-variate polynomials
which are simply scalars. If factors is present, the polynomial was
constructed as an exterior product of polynomials of lower variance.
axpy!
.
coefficients
.
copy
.
degree
.
differentiate
.
evaluate
.
evaluate
.
evaluate
.
evaluate-gradient
.
evaluate-k-jet
.
factors
.
gradient
.
k-jet
.
m+
.
m+!
.
maximal-partial-degree
.
partial-degree
.
poly*
.
poly*
.
poly*
.
poly+
.
poly-expt
.
print-object
.
scal!
.
shift-polynomial
.
total-degree
.
unit
.
unit?
.
variance
.
zero
.
zero?
.
:coeffs
This slot is read-only.
A pool implemented via a hash table.
A mixin adding a property slot to the class.
A property list for storing unstructured information about this object.
list
:properties
Range of numbers for iteration.
Start of range, defaults to 0.
0
:from
Inclusive end of range, defaults to infinity.
:to
Exclusive end of range, defaults to infinity.
:below
Step size.
1
:by
Rule for refining reference cells. Those rules are stored in the refine-info slot of the cell class.
Names identifying the rule.
:names
This slot is read-only.
Reference cell for this refinement rule.
:reference-cell
This slot is read-only.
Refinement rules for the sides required by this rule.
This slot is read-only.
Vector of refinement information for the children.
:refinement-info
This slot is read-only.
General relation
Implementation with lists.
(quote eql)
:test
This is a hash-table where new entries are interned FIFO-like (insertion-order=:fifo) or heap-like (insertion-order=:heap).
Mixin for dense matrices.
(standard-matrix⎵double-float)
.
axpy!
.
blas-macro
.
blas-macro
.
blas-macro
.
copy!
.
det
.
diagonal
.
display
.
dot
.
dot-abs
.
ensure-matlisp
.
extended-mclear!
.
extended-minject!
.
for-each-entry
.
for-each-entry-and-key
.
for-each-key-in-row
.
gemm-nn!
.
gemm-nn!
.
gemm-nn!
.
gemm-nt!
.
gemm-nt!
.
gemm-tn!
.
gemm-tn!
.
gemm-tn!
.
gemm-tn!
.
gemm-tt!
.
gemm-tt!
.
gesv!
.
getrf!
.
getrs!
.
getrs!
.
ggev
.
hegv
.
initialize-instance
.
join-instance
.
lapack-convert
.
m*
.
m*-product-instance
.
m*-tn-product-instance
.
m+!
.
m.*!
.
make-analog
.
make-domain-vector-for
.
make-image-vector-for
.
make-iterator
.
matop-x->y!
.
matop-x<-y!
.
matop-y+=x!
.
matop-y-=x!
.
matrix-slice
.
mequalp
.
mextract!
.
minject!
.
(setf mref)
.
mref
.
multiplicity
.
mzerop
.
ncols
.
nrows
.
plot
.
print-element
.
print-matlab-format
.
print-object
.
submatrix
.
tensor-for-each
.
(setf tensor-ref)
.
tensor-ref
.
total-entries
.
transpose!
.
vector-slice
.
vlength
.
Number of rows in the matrix
:nrows
Number of columns in the matrix
:ncols
This mixin yields vector behaviour for a class
containing a store. The store is a unifom array with elements of a certain
type which can be determined by the funtion @function{element-type}. It
often is but does not have to be equal to the type of scalars for this
vector which can be obtained by calling the function
@function{scalar-type}.
store
.
(setf vref)
.
vref
.
Tensor superclass.
A thread-safe pool.
Waitqueue mixin.
Uniform @type{double-float} vector.
Vector with elements of type @code{fixnum}.
Uniform @type{int} vector.
Positive fixnum tpye.
Uniform @type{uint} vector.
Per class slot where class means the immediate cell class, i.e. some simplex or product-cell.
Ideally, this should be a mixin with :per-subclass initialization.
Alas, this does not exist in CLOS:-(
When T it is allowed for a child to have a different patch from its father. This is used at the moment for homogenization of porous domains, but it is not a standard situation.
Weight for the convective part in the Quasi-Newton linearization of the Navier-Stokes equation.
Maximum size of the coarse grid in the AMG algorithm.
If *artificial-viscosity* is equal to a non-nil number eps, then an additional vicosity of size max(viscosity,eps*h) is used.
This can be dynamically bound for making a coefficient only influence matrix assembly. The idea is to make parts of the coefficients only valid for the Jacobian calculation. This is not yet used at the moment, because it would require the discretization to calculate the residual directly and not matrix and right-hand side.
Weight for the reactive part in the Quasi-Newton linearization of the Navier-Stokes equation.
Table of all BLAS macros.
Counter for BLAS level 2 operations
Counter for BLAS level 3 operations
List of Femlisp bugs, i.e. failing tests that have not yet been fixed.
Observe list for Cbl.
Internally used: A hash-table mapping cell to the local error.
Internally used: A hash-table mapping cell to a number indicating its rank with respect to the estimated error.
Checks if embedded dimension is well-defined.
This may contain a list of offsets, in which case the coefficient function is shifted as a sparse tensor.
Standard refinement is regular refinement which has been implemented for all cell types in @femlisp{}.
CRS Matrix for testing purposes. Origin: discretization of a streamline-diffusion stabilized convection problem.
Identifiers used by dbg.
Default solver for the CM format. At the moment this can be UMFPACK or SuperLU.
Special variable determining if the DOF is evaluated precisely on the shape function. This is important for the accuracy of stiffness-matrices.
Transformation which drops the ugly line occuring for me due to some bug either in DX or Mesa.
If T switches on hardware rendering. This variant is problematic, although it gets rid of black lines in dx pictures in some situations. E.g. it does not do xy-graphs correctly and fails for @lisp{(plot (n-cube 1))}. It can also kill the Xwindows interface on some computers.
Default size and resolution of DX window. Note that changes in the size of the window require restarting DX.
Name of the @program{DX} binary.
The current @program{dx} process.
The shapes which are handled by DX plotting.
Depending on @var{*dx-toggle*} the cache option is switched on/off. This is a trick to make @arg{dx} redraw the picture.
If T, stop with an error at a debug message.
List of routines which failed for last run of the test suite.
The namestring for @var{*femlisp-pathname*}.
The pathname for the Femlisp main directory. This should be the location of this file when it is loaded.
First level on which a cell is searched for containing a given position.
List of functions for loading foreign code. Each function of this list should be executed when starting a saved core.
Limit for the number of Newton steps for @function{global->local}. Small numbers should work for reasonable geometries and initial values.
Pathname of the @program{Gnuplot} binary.
The current @program{Gnuplot} process.
Lock for making the function @function{graphic-output} thread-safe. This lock could be integrated in the function body using LOAD-TIME-VALUE. But since it might also be used for other functions when they process the resulting graphic files, we expose it here.
Table mapping a symbol to a list of hooks.
A hook is a function which may be called on a property object
for updating other properties.
Small positive value which is used for “smoothing” the distributional rhs.
The input queue of a worker job in a pipeline.
If this is set to a threshold, the coordinate-inside? check allows for some round-off error of the threshold size.
Default value for interpolation type. @code{:local} means that interpolation extends only to the direct children, which is reasonable for standard interpolation of Lagrange finite elements. @code{:global} interpolates from highest-dimensional cells and forms an average.
Entries in interpolation, projection, and transfer matrices below this threshold are dropped.
When the value of this variable is :error, then the iteration terminates with an error. When the value is :continue, it records the failure on the blackboard and terminates.
One of (:class-name :object :all).
For memoizing the measured CL speed (for having a nicer demo experience:-)
Taylor coefficients for the Langevin function around zero. Contains only the coefficients for powers x^k with uneven k and in reverse order such that it can be processed from smallest to largest coefficient.
The table of all LAPACK templates.
The number types for which a LAPACK routine is defined.
Can be set locally for memoizing evaluation results.
If non-NIL, it should be a function of the arguments cell, mesh, and finite element class. This function is called for computing an interpolation matrix.
Parallel pool from which local matrices may be extracted.
If non-NIL, it should be a function of the arguments cell, mesh, and finite element class. This function is called for computing a projection matrix.
Maximum number of rows for which direct solving is applied.
Basename for mesh decomposition.
Time interval in seconds over which we measure performance.
The number of threads in which Femlisp tries to split the work for some computationally intensive tasks. If NIL, no threading is used.
Some optional checks for skeletons.
The output queue of a worker job in a pipeline.
Types of output. Possible entries in this list are:
- :screen
- (:images successive-pathname-producer)
Internally used: The maximal local error contribution.
If set to NIL, plotting is disabled. If set to :message, a message is printed to *trace-output* instead of plotting.
A transformation for the plotted object. Usually, this is calculated from the object.
Determines which action should be taken if we encounter a portability problem for a Lisp.
If set to :MIDPOINT, prints the midpoint of a cell.
T means that a newline is printed after each row.
If T, the polynomial variance is shown when printing a polynomial.
May be nil, :cells, :cells-of-highest-dimension.
When t, prints also the values of a skeleton.
Floating-point number type with which the quadrature rules is used externally.
High precision with which weights and points in our quadrature rules are calculated internally.
Depth up to which we store the refinements of the reference cell. The levels 0 and 1 are always memoized, becuause these are needed for refinement operations. NIL indicates no additional memoization beyond levels 0 and 1, T indicates infinite depth.
Table where refinements of reference cells are memoized.
If this variable is non-nil, it is funcalled for selecting a linear solver. An alternative way of handling this could be given by Pascal Costanza’s @code{AspectL}.
Set CPU affinity for kernel processes.
Show the DX window when something is plotted. This may be useful on Laptops when the window is hidden.
A transformation for projecting regular 4D structures from a skew perspective into 3D space. The result can then be viewed by a standard 3D plot program.
List of small Femlisp tests.
Streamline diffusion adds a certain velocity-dependent amount of numerical viscosity which depends on the size of the element and the size of convection.
Streamline diffusion parameter for convection problems. Note that we do not modify the right-hand side at the moment, so this is more comparable to an FE upwinding and it is of O(h) only.
Can be used for very rudimentary influence on GPS.
Function of an argument @arg{N} which returns a vector of size @arg{N} of a type that can be handled by the BLAS routines which are tested.
List of routines which still have to be tested.
List of Femlisp tests.
Pathname of the @program{tetgen} binary.
Path to the @program{triangle} executable.
Pathname of the @program{triangle} binary.
Observe the solution at position {0.25}^dim.
Does the external name contain an underscore.
Discretizes convection with upwinding when set to T.
Warning: This kind of upwinding based on ensuring the m-matrix property is
questionable and should be checked, if you rely on it. For example, I have
observed wrong results for outflow boundary conditions.
T if pool should be used.
This is an input stream for user input which is normally bound to *standard-input*. During testing this can be bound to a string stream to provide sample input.
Type of viscosity model. Can be either :GUGV or :DUDV.
The first corresponds to (grad(u), grad(v)), the second to (eps(u),
eps(v)), where eps denotes the symmetrized gradient.
Table of demos already visited during this Lisp session.
Anaphoric macro from @cite{(Graham 1993)}.
Anaphoric macro on the symbol _ which allows to express a chain of operations.
Collect objects into a list. Example:
@lisp
(collecting (collect 1) (collect 2))
@end lisp
Continuity equation coefficient with derivative on u. The coefficient value xi is 1.0 by default.
Defines a LAPACK template. The syntax is similar to the SBCL alien
interface, but keywords are used for specifying types. Furthermore, the
type of the matrix elements is not yet specified, but can be refered to
as :element-type, and its base-type as :base-type. There is also a :select
clause which allows to include arguments only for specific
situations. :select can dispatch
on :element-type (:float, :double, :complex-float, :complex-double),
:base-type (:float, :double),
:number-type (:real, :complex)
Delays the evaluation of @arg{form}.
Utility function which is not used at the moment. The idea was working around a CMUCL enum bug.
We discretize grad(p) or div(p*I) by differentiating the test function. The coefficient value eta is 1.0 by default.
Posted by Kent M. Pitman to cll, 13.3.2008.
This macro expands into a quasi-linear formulation of a quasi-Newton treatment of the momentum part of the Navier-Stokes equations. Which parts of the Newton linearization are included is determined by the special variables @var{*alpha*} and @var{*beta*}.
Pass arguments to FL.ELLSYS::INITIAL. The values returned should fit with what is required here. Note that it can make sense to set also the pressure to some reasonable initial value, if an iterative solver is used.
Removes the method for the generic function @arg{gf-name} which is
specified by @arg{qualifiers} and @arg{specializers}. Example:
@lisp
(short-remove-method m* (:before) (<sparse-matrix> <sparse-vector>))
@end lisp
Pass arguments to FL.ELLSYS::SIGMA. The sparse tensor returned should fit with what is required here.
Posted by Kent Pitman at cll,8.5.2007 as ’array-access’.
Multiple and write access to cell-information slots.
Multiple and write access to cell-information slots.
Anaphoric, because it works with the MG-DATA symbol.
Extracts the 1D-surface cells (maybe specialized to a certain part) for drawing a wire plot of the mesh.
Adds the parts for the specified indices from B to A. This operation is destructive for A!
Adds a new @arg{rule} to the refinement rules of @arg{cell}.
Register a bug test.
Adjoins a fiveam test suite to the Femlisp test suite.
The standard AMG solver for the demos in this file.
@arg{filter-matrix} projects orthogonally on the dimensions with refinement.
Create an anisotropic refinement rule.
Build up a dependency graph for each cell and makes a parallel heap for this graph.
The dependency graph is such that assembly of some specific cell C
blocks all subcells of C together with all neighbors
sharing a subcell with C.
Compute a vector of weights which gives the global position by taking the scalar product with the list of corners.
Binomial coefficient
Bisect a list of cells along the axis given by @arg{axis} and at the coordinate @arg{coord}.
From a given bounding box calculate a reasonable separating dimension and a separating coordinate.
Returns a mapping for the cell by interpolating the mappings of its boundary.
Returns the domain generated by oscillating-boundary-domain with identified lateral faces.
Returns a boundary layer problem for the given boundary layer cell domain. We assume that the oscillating boundary on which Dirichlet nodes are prescribed is identified by $x_n<1$ for its coordinates, and the patch for which the source is prescribed is $x_n=0$.
Performs the BPX demo.
Function performing the Bratu demo.
Construct a hash-table where each cell is mapped to the first level where it occurs. Copies get the same level as their parent.
Does work only for Lagrange fe. Otherwise there may be several masters.
Calculate a bounding box for the given point. The result is a pair of vectors where the first contains the minimal values and the second the maximal values.
Calculates effective cachesize in bytes.
Calls Hang Si’s Tetgen.
Calls Shewchuk’s triangle program.
Returns the canonical type name, for example it might return SINGLE-FLOAT or SHORT-FLOAT for an argument SINGLE-FLOAT.
Performs the bl-diffusion demo.
Returns the cell problem on the n-cell-domain of the given dimension. Gamma yields dim right hand sides of the form A e_k, i.e. the columns of the diffusion tensor.
Computes an effective diffusion tensor for different configurations. The approximation is done with isoparametric finite elements. Uniform refinement is used, the linear solver is a geometric multigrid scheme used in a nested iteration fashion. The solution to the cell problem is a vector field whose components are plotted one after the other. The setting has cubic symmetry, from which one can easily see that the effective tensor must be a scalar multiple of the identity.
Solves the given problem and returns a result on a blackboard.
Calculates the depth of an object -usually a list- and asserts that it is uniform.
Checks if comps is of the correct form, see the documentation of the slot @slot{components} in @class{domain-problem}.
Checks if comps is of the correct form, see the documentation of the slot @slot{components} in @class{domain-problem}.
Checks that indices don’t appear twice, and that the dimensions of every contracted index pair fit.
Checks for different vertices at the same location and
for cells of higher dimensions connecting the same vertices
in a possibly different order.
Warning: Up to now a quadratic algorithm is used.
Should checks correct identification. At the moment, it tests only if all identification-entries are eq.
Checks if arg-spec makes sense for the implementation. Should probably be done after replacing types for the implementation?
Returns cell problem on the n-cell-domain of the given dimension with a chequerboard pattern.
Computes the offsets for each component in the children’s data block.
Returns a classifier for identifying top, bottom, and lateral parts of a cube domain.
Clears the Femlisp bug register.
Clears the Femlisp test suite.
Checks if the boundary of @arg{skel} is empty. This should be the case for boundaries of skeletons.
Puts a local block in matlisp format into a <sparse-vector>.
Constructs a combined constraint tuple given old and new constraints.
Compiles a given list expression TEST into a test function acting on a blackboard. Keywords are replaced by macros accessing the blackboard.
If calculations with compressed matrices become more common, this routine must be optimized.
Computes the values at all positions and for all components.
Computes the values at the positions. @arg{depth} can be a number representing the number of cell subdivisions, or a function which yields this number for the actual cell.
Combines a set of vectors such that they are dual to a set of functionals wrt a given pairing.
Maybe there will be a general solution somewhen, but for the moment we delegate it to the specialized assembly.
Collects all vertices of surface cells into a hash-table and indexes them. When type is :continuous, then the key is the vertex, otherwise the key is the pair cell/vertex, which allows for the plotting of functions that are discontinuous across cell boundaries. @arg{depth} can be a number representing the number of cell subdivisions, or a function which yields this number for the actual cell.
Computes a curvature-adapted raster on a curved line. @arg{threshold} is controlling the allowed deviation from linearity, @arg{meshsize} is a maximally allowed mesh width. The user may also pass an @arg{indicator} which should be a function of patch, local position and meshwidth, or a function @arg{patch->raster} mapping patches to complete rasters.
Calculates a quadrature rule for a n-simplex by considering it as a cone over an n-1-dimensional base simplex. This follows @cite{(Stroud 1971)}, page 31. The result of this function is a list of the form @lisp{( (weight coordinates) ... )}.
Returns the connections in a list. Each list item is again a list consisting of the reference cell and the vertex indices extracted from the table @arg{position-indices}. @arg{depth} can be a number representing the number of cell subdivisions, or a function which yields this number for the actual cell.
Returns a vertex table with consistently numbered vertices - if possible.
Converts the (dim^2)x(dim^2) matrix returned as result of correction tensor into an (dim x dim)-array with (dim x dim)-matrix entries.
Converts @arg{x} to an alien type, if possible.
Return a copy of SEQUENCE which is EQUAL to SEQUENCE but not EQ.
copy-seq
.
Return a copy of SEQUENCE which is EQUAL to SEQUENCE but not EQ.
copy-seq
.
Creates a new copy refinement rule.
Create the boundary-paths for the <child-info> entry in the refine-info vector. We assume that the ordering of the simplex boundaries is opposite to the ordering of the corners.
Create the boundary-paths for the <child-info> entry in the refine-info vector.
Transforms an index in the vertex field of the cube into the corresponding vertex index in the product-cell with the dimension DIMS of its factors.
Transforms an index in the vertex field of the cube into the corresponding vertex index in the simplex.
Creates a domain by cutting out one cube from the uniform refinement of the unit cube.
The channel is a simple test problem which has for every Reynolds number a Hagen-Poiseuille solution with linear pressure. The corresponding velocity profile is a solution to @math{-Delta u = constant}.
A quarter of a unit disk.
Returns the number of daxpy-ops for vectors of size @arg{n}.
A polygon is a list of the form
@lisp
([title-string] {key value}* vec1 ...)
@end lisp
This function ensures the form of a property list
(:title title-string :type type :key1 :value1 ... :data (vec1 ...))
Tests @arg{solver} on the simple example from the SuperLU User Guide.
Local routine for testing purposes.
Discretizes an elliptic system with @arg{nr-comps} components on the @arg{dim}-dimensional unit cube with Lagrange fe of @arg{order}.
Shows the stiffness matrix of the model problem. Maybe you will have to use hscroll-mode in your Emacs buffer for comfortably looking at the matrix.
Result is a table mapping the keys from @arg{key-table} to their distance from @arg{key}.
Continuity equation coefficient with derivative on u
The substance of the domain as a hash-table of cells.
The boundaries of the substance cells as a hash-table of cells.
The idea is to discretize locally a special problem containing the stress tensor part of the momentum equation.
This is the coefficient for discretizing viscosity*eps(u):eps(v), where eps(u) is the symmetrized gradient of u. We call it DUDV like in the FEM-code Navier.
Initializes all tables which the preceding test needs for its default parameters. After this function has been executed such performance measurements can be done in a reasonable way.
Returns a right-hand side for an elasticity cell problem.
We want to have zero at the corners.
Generates the inlay cell problem. The coefficient is of the
form @math{A^{ij}_{lambda mu}}$, and the equation to be solved
is in variational form
@math{ 0 = partial_lambda phi^i A^{ij}_{lambda mu}
(partial_mu N^j_m + Gamma^j_{mu m}) }
With @math{k,nu} being such that @math{m= k n + nu} we have
@math{Gamma^{j_k}{munu}=delta_{jk}delta_{munu}} leading
to matrix-valued functions @math{N_nu} in the notation of
cite{Bakhvalov-Panasenko}. We should also have
@math{N^{jk}_nu = N^{jnu}_k} because of the symmetries of A.
The correction to the arithmetic average has to be computed as
@math{ A_{corr}^{kr}_{iq} := int_Y A^{kl}_{ij} grad_{x_j} N^{lr}_q = int_Y div_{x_j} A^{lk}_{ji} N^{lr}_q = F[k*dim+i] cdot N[r*dim+q].}
Computes the effective elasticity for a certain periodic
medium. The approximation is done with finite elements and
blending. Uniform refinement is used, the linear solver is a
geometric multigrid scheme used in a nested iteration fashion.
A subtle point here is that the coarse-grid smoother has to
treat the inlay as a block to be robust against the large
coefficient jump.
The solution to this cell problem is a tensor field of rank 3 with dim^3 components which are plotted one after the other.
Performs the model problem demo.
Eliminates the constraints destructively from A. directions is a list consisting of the two symbols :left and :right which determine if elimination is done wrt row or column indices. Returns t if constraints have been eliminated.
Return a coefficient list for the initial value interpolation problem to be solved at the beginning.
Return a coefficient list for the stationary problem to be solved at each time step.
Ensures a finite element ansatz space on the blackboard. If a discretization is not provided, it is selected depending on the problem. If a mesh is not provided and if the domain is curved, we use precise cell mappings if these are available. Otherwise, an isoparametric approximation is used with order @math{max(2,p+1)} where p is the discretization order. This is reasonable, because the dual problem for estimators based on duality is discretized with @math{p+1}, and because the refinement near the boundary works significantly better with @math{p>=2}.
Ensures the constraints for the ansatz space vector @arg{asv}.
Problematic, because, when applied to the convection contribution, it reduces the discretization to first order accuracy.
Preliminary. Maybe it would be better to update the boundary automatically when inserting cells. Unfortunately, it is not clear how this could be done in an easy way.
Returns the reference simplex of the given dimension.
Tests if @arg{type1} and @arg{type2} designate the same type.
Maps eta into a P2 ansatz function. This is used for plotting the error distribution. Note that for tetrahedra, no cell contributions are shown.
Returns a function which checks if a cell is on a boundary classified with the key :evaluate-force-boundary.
Shapes is a sequence of shapes, positions is a vector of positions. The result is a vector of values.
The precise value for x=1/2 is easily seen to be 1/8.
On the other hand it is equal to
1/pi^2 (4/pi)^d sum_{k odd} +/- 1/k^3
With the help of Fourier series we obtain the representation
1/pi^2 (4/pi)^d sum_{k_i odd} +/- 1/{k_1 k_2 (k_1^2+k_2^2)}
for the value u(1/2,1/2).
+/- means sin(k_1*pi/2) * sin (k_2*pi/2)
With the help of Fourier series we obtain the representation
1/pi^2 (4/pi)^d sum_{k_i odd} +/- 1/{k_1 k_2 k_3 (k_1^2+k_2^2+k_3^2)}
for the value u(1/2,1/2,1/2).
+/- means sin(k_1*pi/2) * sin (k_2*pi/2) * sin (k_3*pi/2)
Executes work in parallel distributed on @arg{number-of-threads} threads. The arguments for work are taken from the argument-lists in @arg{arguments}. Alternatively, @arg{distribute} may contain a function which generates the argument-lists by calling the function @function{work-on}.
Every function in @arg{jobs} produces arguments for the next one with the function @function{call-next}. Every job is run in a separate thread.
Converts a monomial given by a list of powers of its components into our
dense polynomial format.
Example: (exponents->monomial-list ’(1 2)) -> (() (0 0 1))
Adds one layer from surface-mat to mat.
Extends initial-mat by several layers from surface-mat.
Collect the next layer around keys in the matrix graph of asa.
Handles the @arg{case}-construct and converts :element-type to @arg{type}.
Extract a numbers or subvectors from the gradient vector.
Converts all ansatz-space objects in the parameters list into local value arrays corresponding to the finite element.
Short version of generating an arbitrary-dimensional FD discretization of the Laplace operator. n can be a number or a vector of dim numbers.
Finite element discretization for a linear problem or the linearization of a nonlinear problem.
Computes for a (vector) finite element the secondary information which is important when extracting data from ansatz-space vectors and matrices. For each dof in the fe, the access information to the global matrix in the form vblock/in-vblock-index and the access information to the local matrix in the form component-index/in-component-index is computed.
Should be called when restarting a saved Femlisp core.
This method may be inefficient with large bandwidths because it ignores the ordering of indices.
Finds the path to the DIRECTION-first node having an item
satisfying CONDITION.
CONDITION should specify an semi-open interval wrt the trees order!
Finds the position for index, which is the first position which is >= index in the sorted list.
Find key-list in tree.
Collects a block of keys for cells containing the vertex. Handles identification and hanging nodes.
Generate a CM matrix for the five-point stencil on a grid with the
given number of active grid points in each dimension.
If @arg{with-constraint-p} is true, a matrix corresponding to the
five-point discretization of a Neumann problem with an average zero
constraint is generated.
This routine is a specialized version of @function{fd-laplace-matrix}. It is several times faster, but can only handle the 2D stencil. However, it has also the possibility to add the constraint equation which was observed to be a problem for direct sparse solvers.
Copies domain identification to cells of dimension larger 0.
Observes the float quantity which can be found with @arg{id} on the blackboard under a name @arg{name} which should be a string.
Walks tree in the given range and calls worker on each datum.
Returns all sub-simplices resulting from regular refinement of an
n-dimensional simplex by Freudenthal’s algorithm. The simplices are
given by their corners in barycentric coordinates (multiplied by 2 to
work with integer coordinates).
Example: (freudenthal-refinement 1) -> ((#(2 0) #(1 1)) (#(1 1) #(0 2)))
This function provides further tests for Laplace problems, partially on non-structured meshes and/or on domains with curved boundary.
Match two strings allowing abbreviations of the form ‘h-2’ for ‘homogenization-2d’.
Returns a matrix whose columns are the vertex positions of the cell’s vertices.
The g-corners are the vertex positions of the cell’s vertices.
Calculates the coordinates for a Gauss-type quadrature rule on [-1,1] with respect to the weight @math{w(y)=(1+y)^beta}.
This function calculates a quadrature rule for an s^n-point method on the n-simplex following the procedure described in @cite{(Stroud 1971)}, page 29. The result is a list of interpolation points.
The result is an s-point quadrature rule on the interval [0,1] with respect to the weight function w(y)=(1-y)^n which is exact for polynomials of order 2s-1.
Generates the GEMM-XX! routine defined by JOB.
Generates the GEMM-XX! routine defined by JOB.
Defines a method for @arg{subcells}. This function should be called when the cell class is initialized.
Generates code for a @function{subcells} method for @arg{cell-class}.
Get the dependents of @arg{node} in @arg{graph}.
Returns a key from dic if nonempty.
Returns the value of the property.
Sets the value of the property.
Returns the path (see the description in the definition of <child-info>) to the sub-simplex given by its corners in barycentric coordinates. Additionally, if the sub-simplex cannot be found, it generates a new entry in the refine-info vector and fills the barycentric-corners field.
Returns a getter/setter pair for the specified location.
Returns a vector filled with all children of the subcells of @arg{cell}.
Computes the Gram matrix of vectors and functionals wrt pairing.
Orthogonalizes the columns of X wrt to the bilinear form given by the symmetric matrix B.
Unfortunately, this routine squares a bad condition number of X.
Hands over the arguments to the next worker job.
These are inter-level constraints.
Performs the heat equation demo.
Performs the Heuveline-Rannacher demo.
Only for testing purposes, otherwise such a problem is automatically generated inside the error estimator cycle.
Distributional rhs for the dual problem of the article by Heuveline&Rannacher. We distribute it to several points to ensure that all surrounding cells contribute.
Smooth rhs for the problem -Delta u = rhs in the H-R article.
Hierarchical search for a subtree of cells in @arg{h-mesh} satisfying @arg{test}. A leaf cell is returned, if successful, otherwise NIL.
Calculates a Histogram of Mandelbrot iteration numbers.
Returns inter-level constraints between level and level+1. ip-type=t sets the constraint matrix to identity for the level-unknowns.
Creates the interpolation matrix for identifying boundaries or other parts of the domain.
A refinement rule on refcell induces a refinement of all its subparts.
Parabolic inflow profile for y in [0,H] with maximum at 0.3
Initializes the per-class information for the given reference cell.
Initializes all local finite element data and local interpolation matrices for dimension @arg{dim} and finite elements of order @arg{order} on cubic cells. This file should be loaded before starting elahom performance measurements.
Block decomposition for obtaining a coarse-grid solver which is robust against the size of the coefficient jump.
Generates the inlay cell problem. Parameters are the coefficient of the inlay and the component of the cell vector.
Result of integrating a monomial given by a list of exponents in @arg{mono} over the reference simplex of dimension @arg{dim} as int_S(n) x^alpha = (alpha1! alpha2! ...) / (n+alpha1+...)!
Integrates a polynomial over the reference simplex by splitting them into monomials and integrating those.
The result is a table which maps each cell to a pair which consists of the minimum and the maximum index of an n-dimensional father.
Interpolates a vector of functions f of length n+1 on the reference n-simplex. The functions are understood as providing functional values for the n+1 n-1-dimensional boundary simplices.
Interpolates a coefficient function into a solution for @arg{ansatz-space}.
Interpolates @arg{func} with the ansatz-space @arg{as}.
mappings contains n+1 mappings from barycentric side coordinates of length n, s contains n+1 coordinates 0.0<s[i]<1.0
Generates a rather isotropic mesh on a domain consisting of rectangular patches.
Tests the linear iteration @var{linit} on a model problem specified via keyword parameters in @var{args}.
Construct a Jacobi polynomial of type (a,b) and degree s. Jacobi polynomials of type (a,b) are orthogonal polynomials with respect to the weight @math{(1-x)^a * (1-x)^b}. Note that this version of these polynomials is normalized in a non-standard way such that its leading coefficient is 1.
A k-variate zero coefficient
Returns a hash-table mapping keys to CCS offsets.
If cell is identified, its identification is the key.
Returns an evaluator for @arg{cell} which maps barycentric coordinates to g-coordinates.
Computes the Lagrange basis for a product-cell accelerated. The idea is to construct the shapes with their associated dof-coordinates as a product of lower-dimensional shapes and coordinates.
Computes the Lagrange basis for a cell. Should be applied only for simplices, because for product-cells the basis can be computed as a tensor product which is faster.
Returns a vector of polynomials representing the isoparametric mapping.
Computes an energy-minimizing extension to the interior for the boundary lagrangian.
@arg{name} is either a string denoting the LAPACK name without the number-type prefix, or a list of two strings denoting the names for the real and complex routines without the number-type prefix. This is useful when we have separate but similar routines for the real and complex case like, e.g., the LAPACK routines SPGV and HEGV.
Function performing the eigenvalue demo for the Laplace operator.
Returns the @{2*dim+1}-point stencil for the Laplace matrix on a uniform mesh as an array of rank @arg{dim}.
Returns the last key in a sorted hash table.
This function should be in the interface of the sorted hash table.
Returns the Legendre polynomial or order @arg{n} normalized in such a way that its leading coefficient is 1.
Loads foreign code for accessing SuperLU.
Loads foreign code for accessing UMFPACK.
Returns a local evaluation matrix for the refcell-refinement-vertices of the given depth.
Returns a local interpolation matrix for interpolating the given @arg{fe-class} from @arg{cell} to its children in @arg{h-mesh}. If @arg{type} is :local, interpolation extends only to the interior children.
Constructor of a geometric multigrid iteration of correction scheme type.
Returns a local projection matrix for projecting the given @arg{fe-class} from the children of @arg{cell} in @arg{h-mesh} to @arg{cell}.
Should not be used externally. Use WITH-REGION instead.
Creates a binary tree for indexing the relation in the appropriate order.
Returns a suitable hash-table key for the vertex of cell.
Constructs a reference simplex of the given dimension.
Calls fn repeatedly until it takes more than *mflop-delta* seconds. Returns the time in seconds together with the repetition count.
Returns an approximation to the memory used at this moment.
Returns the pathname for the mesh component @arg{kind} which may be :poly, :edge, :node, :element and :face.
Returns the pathname of the directory for @femlisp{} meshes.
Performs the model problem demo.
Returns stiffness matrix and right-hand side for the discretization of the Laplace model problem on a cube of dimension @var{dim} using a mesh of meshwidth 1/@var{size} cells in each dimension with Lagrange finite elements of order @var{order}.
Returns the stiffness matrix for the @arg{dim}-dimensional model problem discretized on level @arg{level} with finite elements of order @arg{order}.
Implements the diagonal modification for ILU_mod.
Returns a symbol of the form <matrix-symbol>-NCOLS.
Returns a symbol of the form <matrix-symbol>-NROWS.
Returns a symbol of the form <matrix-symbol>-POS.
Returns a symbol of the form <matrix-symbol>-SIZE.
Returns a vector of weight-vectors for the reference cell @arg{refcell} at @arg{local-positions}.
Returns a vector of weight-vectors for the reference cell @arg{refcell} at @arg{local-positions}.
Returns an order in which all fixed variables occur first, and also the number of fixed and variable positions.
Nest x into n levels of parentheses.
Generates a method which generates code for a type-specialized method.
This is an alternative to @function{gauss-rule-for-simplex} which is based on @function{cone-rule-for-simplex}.
Generates a vector-dof from a scalar dof.
Performs the driven cavity demo.
Returns the union of the number types in @arg{types}.
Returns a hash-table mapping each element of @arg{keys} to an index.
Old code. The optimal thread number depends on the kind of application and cannot really be determined in this simple way. Probably better is to use the introspection in @file{parallel.lisp}.
Pressure coefficient with derivative on test function
Returns a list of monomials of degree = deg or <= deg for a simplex.
Plots the first component of the diffusion tensor.
Plots the propagation of the error for some iteration. The iteration is applied to a finite element discretization with Lagrange finite elements of a given order of the Laplace model problem in dim space dimensions on a mesh with mesh-width 2^{-level}. This is done by plotting the approximation starting with an initial random guess and right-hand side 0.
Plots the 1D Lagrange basis of the given order and type.
The default plot transformation is simply a projection on R^3.
Collects all positions in the hash-table POSITION-INDICES into an array.
Lookup @arg{obj} from priority queue.
Set the value @arg{obj} from priority queue.
Always insert at highest priority.
Remove @arg{obj} from priority queue.
Returns stiffness matrix and rhs for a discretization of order @var{order} on a mesh with a mesh-size 2^@var{-level}.
Waits for @arg{process} to exit.
Projects vector on the subspace given by basis orthogonal to the scalar product in pairing.
Returns the coefficients for a basis representation of a projection of vector on the subspace given by basis wrt the scalar product pairing.
Builds the Qn = Pn-Pn-Pn ... on a product-cell.
Solves a scalar quasilinear equation of the form f(x)*x=r with a Newton iteration.
Reads the numbers from the next nonempty and uncommented line from @arg{stream}.
Reads the next nonempty line from @arg{stream} which does not begin with @code{#}. NIL indicates EOF.
Reads a mesh from Tetgen output.
Reads a mesh from Tetgen output.
Builds or extends @arg{mesh} using the output from Triangle for meshing @arg{interior-patch}.
Cells should be the ’substance’ cells, i.e. the highest dimensional cells of a mesh.
Returns the vertices of the @arg{level}-refinement of the reference cell of @arg{cell} as a vector.
Refines @arg{cell} by filling the first position of the vector @arg{subcell-refinements} with freshly generated children. The other positions should already be filled with the refinements of the cell’s boundary. Returns a vector of children.
This generates a refinement-rule from the older refine-info data.
Returns refinement information for the cell.
Removes the CL bindings to the LAPACK functions categorized by @arg{name}.
Removes @arg{thread} from @arg{group}.
Generates a sample domain which is a modified unit-cube whose upper side bends upwards in the x_0-direction.
Send a task to the work-group.
Sets an ansatz-space-vector to interpolate a given function. This is still a suboptimal implementation for vector functions.
Computes simultaneously shapes and dof-coords for a simplex-product-cell as products of the simplex factor shapes and dofs.
A simple Newton iteration for converting global to local coordinates.
This function is a preliminary version which works only for boundaries lying in a coordinate hyperplane.
Creates the i-th corner of a simplex of dimension dim. The 0-th corner is the zero-vector. The others are equal to (unit-vector dim 1-i).
Returns a boundary layer problem for a sinusoidally oscillating domain.
Setup the refinement rule from a refined skeleton.
The substance of a skeleton are those cells which are not boundary of a cell in @arg{skel}. This function returns those cells in the form of a hash-table.
Tests performance of smoother on a Laplace model problem. See make-smoother-demo for more information.
An old routine for solving the Laplace problem. You should use the interface provided by @code{solve} which provides automatic and more general solving together with a more flexible customization.
Solves moment system by Jacobi iteration.
Find a component list even in the case where there is a variable number of components across the domain.
Predicate checking if cell is on the cylinder boundary of the correct dimension.
@arg{stencil} should be an array of rank dim, each dimension being 3, @arg{sizes} is either an integer or an integer vector of length dim. Each size denotes the number of interior mesh-points in the respective dimension.
Returns the side mapping j for the intersection of the simplex with a level surface sk=const. @arg{dim} is the dimension of the original simplex.
Constructs an ordering of all subcells of the list @arg{cells}. All cells in this list should have the same dimension.
Find boundary of the ’flesh’ and build up a table mapping those cells to the neighboring substance cells.
Swaps rows j and k in an m x n-matrix.
Returns a symbol of the form <symbol>-STORE.
Synchronizes identification information between @arg{new-skel} and @arg{skel}. @arg{table} is a hash-table mapping cells from new-skel to skel.
Test the performance of BLAS routines.
Returns a mapping for cell transformed with f
Tests if numerical gradient and gradient agree.
Tests the given rule against monomials of increasing degree. As a by-product this determines the order of the rule.
Most tests can be found in linsolve.lisp.
Linear solving on different types of vector/matrix representations.
Solves with a V-cycle and prints the average convergence rate. If cr-max is provided, it is checked if the convergence rate is smaller than this value.
Maps the unit triangle to a circle segment. The triangle segment from (0,1) to (1,0) is mapped linearly to the arclength. The flipped-p parameter does a reflection across the y-axis.
Returns all partitions of {1,...,n} which consist of two sorted
parts. This is used in Freudenthal/Bey’s simplex refinement.
Example: (two-sorted-parts 2) -> ((() (1 2)) ((1) (2)) ((2) (1)) ((1 2) ()))
Return the fundamental array and the start and end positions into it of the displaced array. (Erik Naggum, c.l.l. 17.1.2004)
Tries to find a uniform type for the numbers contained in @arg{vec}.
Should not be used externally. Use WITH-REGION instead.
Returns the cell class without mapping mixin.
Computes the extreme values of @arg{x} on @arg{cell}. Note that the current implementation works correctly only for Lagrange finite elements, and even for those only approximate extrema are obtained.
Checks if all leaves have been visited. If yes, the demo is added to the visited demos.
For a given local refinement this updates interpolation and projection operators on the blackboard and interpolates the solution to the new surface. This is used in the strategy package.
Returns a hash-table vertices->indices for refinement skeletons of reference cells. This is needed for plotting.
Does not work - somehow Gnuplot does not print anything to its output stream in contrast to DX.
Returns a observe list for watching the velocity at the center of the driven cavity.
A list of weights for several simplices at once.
The result of this function are weight-lists with each weight-list corresponding to the weights for a partial derivative.
Writes out the 1d-skeleton for @arg{mesh} to a @code{.poly}-file. Returns a hash-table mapping the cells mesh to ids, a vector mapping ids to vertices and a vector mapping ids to lines. @arg{vertices} is a list of vertices defining the correct ordering of vertices.
Writes out the 2d-skeleton for @arg{mesh} to a @code{.poly}-file. Returns a hash-table mapping the cells mesh to ids, a vector mapping ids to vertices and a vector mapping ids to lines. @arg{vertices} is a list of vertices defining the correct ordering of vertices.
Write a header and all positions to the stream.
Returns a boundary layer cell with a sinusoidally oscillating lower boundary.
This function works on the assumption that p_0=const and the zeros of p_n-1 together with the interval boundaries separate the zeros of p_n. Then an interval method is performed for each zero. Of course, accuracy problems may occur for the inexact arithmetic.
Compute a finite element approximation within the setting given on the blackboard.
<fe-evp-strategy>
) blackboard) ¶Ensures accuracy of the solution and the error estimate.
<stationary-fe-strategy>
) blackboard) ¶Ensures accuracy of the solution and the error estimate.
<fe-interpolation>
) blackboard) ¶Interpolates a given function. Does only Lagrange interpolation at the moment.
Returns T, if domain and range are equal.
<matrix>
)) ¶The default method checks only if the matrix is quadratic.
<block-definition-mixin>
)) ¶Computes barycentric coordinates for @arg{refcell} at @arg{local-pos}.
Computes the gradients of the barycentric coordinates for @arg{refcell} at @arg{local-pos}.
Interns a BLAS macro for instances of @arg{object} with name being the symbol @arg{name}.
The default is no macro for this class.
<refinement-indicator>
)) ¶If block-p is T, all children of a parent cell are indicated for refinement together.
refinement-rule
)) ¶Refinement rules for the sides required by this rule.
Calls @arg{func} in an environment where problem is changed to a stationary interpolation problem.
<ellsys-problem>
) rothe) ¶Calls @arg{func} in an environment where problem is changed to calculate the stationary time-step problem.
<ellsys-problem>
) rothe) ¶Is implemented as an accessor for a per-class slot of the subclasses of class <cell>.
Is implemented as an accessor for a per-class slot of the subclasses of class <cell>.
Determines the refinement rule of the cell.
<largest-eta-indicator>
) cell) ¶<isotropizing-indicator>
) cell) ¶<cell-rule-indicator>
) cell) ¶<uniform-refinement-indicator>
) cell) ¶Default nothing is refined.
identification
)) ¶A list of identified cells.
Checks the data structure of @arg{obj}.
progn
.
:most-specific-first
<hierarchical-mesh>
) &key &allow-other-keys) ¶Performs some additional checks for hierarchical meshes.
<mesh>
) &key &allow-other-keys) ¶Performs some additional checks for mesh.
<skeleton>
) &key &allow-other-keys) ¶Checks the skeleton. An error is signaled if the skeleton looks bad.
<standard-cell>
) &key &allow-other-keys) ¶<cell-with-boundary>
) &key &allow-other-keys) ¶Default method does nothing
Pre-condition: an item :matrix has to be supplied on @arg{blackboard}. Post-condition: Items :matrix and :coarse-grid in the result. In the case of selection-amg this will be a set of selected indices of the fine-grid matrix graph. In the case of amg of aggregation type, this is a set of mutually disjoint sets of fine-grid indices.
chunk-queue
) (chunk list
) &optional finalizer) ¶Classifies a problem (e.g. linear/nonlinear,
self-adjoint or not, time-dependent or not, and puts possible results in
its property list, or even change the problem class to a more specialized
problem.
<ellsys-problem>
) &key start-time end-time &allow-other-keys) ¶<pde-problem>
) &key linear-p coercive &allow-other-keys) ¶Finds out nonlinearity of the problem by checking for nonlinear coefficients
<coefficient>
)) ¶The evaluation funtion. It accepts a list of
keyword parameters which should correspond to the list in DEMANDS.
eval
.
<mg-iteration>
)) ¶Switch between additive and multiplicative
combination of corrections from different levels. The additive version
should be used as a preconditioner.
computed-value-dictionary
)) ¶A (usually memoized) function computing the values
Calculates an approximation to the error.
<setup-enriched-ansatz-space>
) blackboard) ¶Setup of interpolated solution, matrix, and rhs in the enriched ansatz space.
<difference-with-projection>
) blackboard) ¶Computes solution-increment computed as difference solution on the finest mesh and a projection to the next-coarser level.
<standard-error-estimator>
) blackboard) ¶Computes an estimate for the local contributions to the global error.
<local-test-with-dual>
) blackboard) ¶Evaluates the duality error estimator given the dual solution and the approximate solution u. Works only for the :load-functional case at the moment, because the right-hand side is not assembled for the primal problem.
<global-and-local-norm>
) blackboard) ¶<standard-error-estimator>
) blackboard) ¶Returns a local interpolation matrix as a sparse matrix with standard-matrix entries.
<vector-fe>
) (child-disc <vector-fe-discretization>
) &key type &allow-other-keys) ¶Computes an interpolation matrix for the refinement rule @arg{rule} and the vector finite element @arg{vecfe}. The algorithm evaluates the nodal functionals of the children on the parent shape functions.
<scalar-fe>
) (child-disc <scalar-fe-discretization>
) &key shape-distortion type) ¶This function computes a local interpolation matrix for the coarse finite element @arg{fe}, the refinement rule @arg{rule} and the discretization @arg{child-disc} of the children. For each refined interior degree of freedom, it evaluates the corresponding degree of freedom on the basis polynomials of the father cell which yields the entry in the local interpolation matrix. @arg{shape-distorion} allows to modify the shape which can be used for implementing problem-dependent finite elements.
Computes a local projection matrix as a sparse vector
with standard-matrix entries. Note that projection is not as canonic as
interpolation. We implement here the injection of dof functionals,
i.e. each degree of freedom is evaluated for the refined fe function.
<vector-fe>
) child-disc) ¶Computes a local projection matrix for vector finite elements.
<scalar-fe>
) child-disc) ¶This function computes a local projection matrix for Lagrangian finite cells and maybe others. For each interior degree of freedom, it finds the child cell where the support of the node functional is contained and evaluates it on the basis polynomials of the child which yields the entry in the local projection matrix.
Computes a weight function used for weighting the error according in a desired way.
<solve-dual-problem>
) blackboard) ¶Solves a dual problem in an ansatz-space of higher order. This error estimator is computationally more intensive than the original problem.
<standard-error-estimator>
) blackboard) ¶Checks if the given local coordinates are inside the reference cell.
Copy constructor for cells. It is guaranteed that the cell boundary is copied.
<boundary-cell>
)) ¶<vertex>
)) ¶Copy constructor for vertex. The vertex position is freshly allocated.
<mapped-cell>
)) ¶<standard-cell>
)) ¶Copy constructor for cells.
Describe object and all sub-objects (e.g. a cell and all subcells).
@arg{task} contains an association list of a cell/rule combination.
Note that the task is assumed to be consistent, which means that this function should
usually not be called directly by the user. Its purpose is to allow for parallelization
to kick in, which needs to ensure consistent refinement of interfaces.
<skeleton>
) (refined-skel <skeleton>
) (task list
) &key refined-region) ¶<linearly-transformed-function>
)) ¶automatically generated reader method
<linearly-transformed-function>
)) ¶automatically generated reader method
<ldu-sparse>
) pool) ¶Ensure that the structure of the vector r is contained in the structure
of all following vectors such that the entries of those vectors can be
written to in parallel.
Since vectors are often generated as image or domain vectors of matrices ensuring the relevant entries, this function is not deeded very often.
For many types of vectors this operation does nothing.
<sparse-vector>
) &rest vecs) ¶It is necessary for extensible sparse vectors.
<refinement-indicator>
)) ¶If ensure-mesh-quality-p is T, the indicator ensures that the difference of mesh widths of neighboring cells does not become larger than a factor of 4.
Ensure residual on current-level.
<mg-iteration>
) mg-data) ¶Ensure allocation of sol/rhs/res on level.
<mg-iteration>
) mg-data level) ¶Generic evaluation of k-jets of C^k-functions. A k-jet combines all derivatives from 0..k.
polynomial
) (k integer
) (x vector
)) ¶<constant-function>
) k x) ¶<special-function>
) k x) ¶By default, the k-jet evaluation handles the cases K=0 and K=1 by calls to EVALUATE and EVALUATE-GRADIENT, respectively.
<special-function>
)) ¶automatically generated reader method
Extend an existing triangulation on the @arg{dim}-1-skeleton to the @arg{dim}-skeleton using @arg{program}.
(eql 3)
) (embedded-dim (eql 3)
) (program (eql :tetgen)
) &key meshsize &allow-other-keys) ¶Calls @program{tetgen} for each 3D patch of the domain. @arg{mesh} should already be generated for 0,1 and 2-dimensional patches.
(eql 2)
) (embedded-dim (eql 3)
) (program (eql :triangle)
) &key meshsize &allow-other-keys) ¶Triangle can only treat 2D domains, so we triangulate 2D reference patches in the 2D-embedded-in-3D case.
(eql 2)
) (embedded-dim (eql 2)
) (program (eql :triangle)
) &key meshsize &allow-other-keys) ¶Calls @program{triangle} for each 2D patch of the domain. @arg{mesh} should already be generated for 0 and 1-dimensional patches.
Does the setup of isoparametric mapping of boundary cells.
(eql 1)
) embedded-dim (program (eql :internal)
) &rest keys) ¶Generates a mesh on the 1-skeleton for domain. Identification is taken care of.
(eql 0)
) embedded-dim (program (eql :internal)
) &key &allow-other-keys) ¶Checks that no higher-dimensional cells already exist. This might be too restrictive later on.
Clear the specified part of X.
standard-matrix
) x-row-off x-col-off x-row-end x-col-end) ¶Inject a part of the matrix X specified by the last four parameters in matrix Y at the position given by Y-ROW-OFFSET and Y-COL-OFFSET.
standard-matrix
) (y standard-matrix
) y-row-off y-col-off x-row-off x-col-off x-row-end x-col-end) ¶Performs an F-cycle on current level.
<mg-iteration>
) mg-data) ¶<safe-linear-solver>
)) ¶The fallback iteration.
<safe-linear-solver>
)) ¶automatically generated reader method
<safe-linear-solver>
)) ¶automatically generated writer method
Copies the region in global-mat determined by cell to local-mat.
<sparse-matrix>
) local-mat (cell <cell>
) &optional domain-cell) ¶Copies the region in global-vec determined by cell to local-vec.
<cell>
) (svec <sparse-vector>
) local-vec) ¶Precondition: items :matrix. Postcondition: :matrix and :filtered-matrix.
Default method: Finds a nested disection ordering of @arg{keys} with respect to the graph given by @arg{mat}.
Force a delayed object.
<largest-eta-indicator>
)) ¶automatically generated reader method
<refinement-indicator>
)) ¶Below from-level, global refinement is used. If
from-level=NIL, regular global refinement is indicated, if no other
indication is available.
<solve-dual-problem>
)) ¶automatically generated reader method
<solve-dual-problem>
)) ¶automatically generated writer method
<geometric-mg>
)) ¶automatically generated reader method
<mg-iteration>
)) ¶automatically generated reader method
Generates the refinement information for the reference cell.
<product-cell>
)) ¶Allocates refine-info vector with barycentric-corners, then fills the boundary paths.
<simplex>
)) ¶Allocates an empty vector of children which is then filled calling GET-PATH-CREATE and CREATE-BOUNDARY-PATHS.
<vertex>
)) ¶Construction of the refinement information which is to copy the vertex.
Generates the transformation mappings.
Puts an estimate for the total error on the blackboard. Will usually need the result of the local estimate.
<local-test-with-dual>
) blackboard) ¶<global-norm>
) blackboard) ¶Computes the global error from the local error contributions.
Performs some operation interfacing global to local values.
<ansatz-space-automorphism>
) local-mat (image-cell <cell>
) (domain-cell <cell>
) operation &key image-subcells domain-subcells delay-p) ¶Performs an operation interfacing global to local values.
<sparse-vector>
) (cell <cell>
) local-vec operation) ¶Return the input stream for the graphic program.
(eql :gnuplot)
)) ¶Return the output stream for the graphic program.
integration-rule
)) ¶A list of ips where an <ip> is a list (weight
coordinate-vector). Both weight and coordinates are in the high precision
given by @var{*quadrature-rule-internal-precision*}.
<boundary-cell>
)) ¶automatically generated reader method
<linearly-transformed-function>
)) ¶automatically generated reader method
<linearly-transformed-function>
)) ¶automatically generated reader method
Precondition: items :mat and :prol in the rest parameters. Postcondition: same.
<selection-amg>
) blackboard) ¶Define P_{FC} in a Stueben like manner. For the fine grid point i we
have to solve for e_i in
$$ a_{ii} e_i = - sum_{j in N_i} a_{ij} e_j $$
with N_i being the neighborhood of $i$. Now $sum_{j in N_i} a_{ij} e_j$
is replaced by $alpha sum_{j in P_i} a_{ij} e_j$ where $alpha$ is
chosen as
$$ alpha = frac{sum_{j in N_i} a_{ij}}}{sum_{j in P_i} a_{ij}} $$
to make the prolongation exact for constant functions.
Function for calculating the key of an entry
Extract a stationary PDE problem for interpolating the initial values out of the given time-dependent PDE problem @arg{problem}.
Often the iteration uses another iteration in its loop.
In this case, this routine returns this inner iteration. Usually, this
will be another reader function for some slot.
<nonlinear-solver>
)) ¶<linear-solver>
)) ¶The inner iteration.
<block-iteration>
)) ¶Iteration which is used to solve for each block.
Default method returns nil, i.e. there is no inner iteration.
Assserts a correct form of @arg{func} for interpolation with the finite element @arg{fe}.
<scalar-fe>
) func &key &allow-other-keys) ¶Asserts a scalar value of @arg{func}.
<vector-fe>
) func &key dof) ¶Returns a function for the component of @arg{dof}.
Unmemoized ip-gradients for a single position.
<scalar-fe>
) pos) ¶<vector-fe>
) pos) ¶Slow and unmemoized ‘ip-values’ functionality for a single position.
<scalar-fe>
) pos) ¶<vector-fe>
) pos) ¶<safe-linear-solver>
)) ¶<linear-solver>
)) ¶The inner iteration.
<special-function>
)) ¶automatically generated reader method
jet
.
Calculates the k-jet of a function defined in R^dim.
polynomial
) (k integer
) (dim integer
)) ¶Returns a list of Lagrange coordinates on the cell @arg{cell}
for Lagrange finite elements of order @arg{order} and type @arg{type}.
<product-cell>
) order type) ¶Convert argument for use in a LAPACK routine.
standard-matrix
)) ¶number
)) ¶vector
)) ¶Before calling the alien routine, vectors will probably be converted
to a pointer to their store. However, this is done in the foreign-call routine.
<ldu-sparse>
)) ¶automatically generated reader method
<hierarchical-mesh>
)) ¶automatically generated reader method
<hierarchical-mesh>
)) ¶automatically generated writer method
<nonlinear-solver>
)) ¶The linear solver for solving the linearization.
Performs an lmgc cycle on current level.
<mg-iteration>
) mg-data) ¶Puts a hash-table of local error contributions on the blackboard.
<standard-error-estimator>
) blackboard) ¶locked-region-mixin
)) ¶automatically generated reader method
<ldu-sparse>
)) ¶automatically generated reader method
Allocates an instance for the product of X and Y^t.
Y <- X .* Y
standard-matrix
) (y standard-matrix
)) ¶static-store-vector
) (y static-store-vector
)) ¶Generates the product-cell product of cell1 and cell2. The
boundary is taken from the list of lower-dimensional products supplied in
table. The tensor product boundary is in the order de1 x e2, e1 x de2.
standard-matrix
) (y standard-matrix
) y-row-off y-col-off x-row-off x-col-off x-row-end x-col-end) ¶standard-matrix
) (y standard-matrix
) y-row-off y-col-off x-row-off x-col-off x-row-end x-col-end) ¶standard-matrix
) (y standard-matrix
) y-row-off y-col-off x-row-off x-col-off x-row-end x-col-end) ¶standard-matrix
) (y standard-matrix
) y-row-off y-col-off x-row-off x-col-off x-row-end x-col-end) ¶<algebraic-mg>
)) ¶automatically generated reader method
Computes the gradients at the local positions for @arg{cell}.
Computes the associated global positions by interpolation from the vertices of @arg{cell}.
Ordinary objects are not mutex-protected.
mutex-mixin
)) ¶A mutex for excluding access of other threads.
Name of the iteration.
<iteration>
)) ¶The default name of an iteration is either its class name or the class name together with the name of the inner iteration.
refinement-rule
)) ¶Names identifying the rule.
Notifies @arg{waitqueue-object}.
waitqueue-mixin
)) ¶<periodic-polygon>
)) ¶Number of stored entries of a sparse matrix pattern.
compressed-pattern
)) ¶full-tensor
)) ¶An initial offset into the store-vector which defaults to 0.
compressed-pattern
)) ¶Vector of offsets. This is only non-nil, if the pattern supports identification.
full-tensor
)) ¶The offsets for the different dimensions. This
is internal information computed at tensor construction time.
<block-iteration>
)) ¶automatically generated reader method
<block-iteration>
)) ¶automatically generated writer method
<ldu-sparse>
)) ¶automatically generated reader method
compressed-pattern
)) ¶Denotes if rows or columns are compressed.
<linearly-transformed-function>
)) ¶automatically generated reader method
Determines if status output is done.
<iteration>
) blackboard) ¶Checks if @var{*iteration-depth*} is smaller or equal @var{*output-depth*}.
Perform @arg{perform} while @arg{keys} are locked in @arg{object}.
No locking if @arg{object} is not a @class{locked-region-mixin}.
locked-region-mixin
) keys perform) ¶<largest-eta-indicator>
)) ¶automatically generated reader method
<skeleton>
) &key &allow-other-keys) ¶<hierarchical-mesh>
) &key part &allow-other-keys) ¶Add two polynomials P1 and P2.
number
) (y number
)) ¶number
) (y list
)) ¶list
) (x number
)) ¶list
) (y list
)) ¶polynomial
) (y polynomial
)) ¶Calculates number of entries in pool.
thread-safe-pool
)) ¶Returns a function which accesses the given collection in parallel. Calling this function yields a new argument list together with a second value which is either NIL or a finalizer that should be called when working on that argument list is finished.
parallel-heap
)) ¶<mg-iteration>
)) ¶automatically generated reader method
<mg-iteration>
)) ¶automatically generated reader method
Prints the element @arg{element} of @arg{matrix} to the stream @arg{stream}.
standard-matrix
) element stream) ¶Print a matrix in Matlab/Octave format.
<sparse-matrix>
)) ¶Convert the Femlisp sparse matrix into a full matrix and print it in Matlab format.
standard-matrix
)) ¶Print Femlisp full matrices in Matlab/Octave format.
Prolongation from current level. The current level is incremented after the operation.
<mg-iteration>
) mg-data) ¶<fas>
) mg-data) ¶This version of FAS prolongation uses the res_ field on the coarser level for computing the correction to be prolongated.
<correction-scheme>
) mg-data) ¶Helper function for extracting all vertices of @arg{cell} in a reasonable order.
<product-cell>
) (factor <simplex>
)) ¶priority-table
)) ¶automatically generated reader method
Checks if @arg{obj} is in the priority table @arg{pt}.
priority-table
) obj) ¶Insert @arg{obj} in a priority-table.
priority-table
) obj index) ¶Gets the node with the highest priority from the priority table.
priority-table
)) ¶Removes @arg{obj} from the priority table.
priority-table
) obj) ¶Changes the priority of @arg{obj}.
priority-table
) obj shift) ¶priority-table
)) ¶automatically generated reader method
Generic interface for reading a sparse matrix.
@arg{class} is a symbol denoting the sparse matrix class with the sole
purpose of allowing dispatch, @arg{entries} is a list of triplets of the
form (row-index column-index element). Other key arguments can provide
more specifications like the format.
(eql fl.matlisp:compressed-matrix)
) entries &rest keyword-args &key nrows ncols) ¶This local refinement function is used to assemble a
global refinement mapping which is represented by the skeleton
‘refinement’. It needs and ensures that the boundary of ‘cell’ is
already refined. An existing refinement of ‘cell’ is simply kept.
<cell>
) (mesh <mesh>
) (refined-mesh <mesh>
) refined-region) ¶This :AFTER-method for cell refinement copies the domain patch to the children. For meshes approximating smooth boundaries, the mappings from interior children are abandoned and finer parametric ones for the boundary neighbors are generated.
<cell>
) (skel <skeleton>
) (refined-skel <skeleton>
) refined-region) ¶This after method ensures the refinement of identified cells and identifies the children.
<cell>
) (skel <skeleton>
) (refined-skel <skeleton>
) refined-region) ¶refinement-rule
)) ¶Vector of refinement information for the children.
Remove @arg{cells} from a cell container like <skeleton>,
<mesh> or <hierarchical-mesh>.
N.B.: Due to our choice of data structure, this is not a local operation with
cost O(n) (n=number of cells to be removed) but O(N) (N=total number of cells).
list
)) ¶<skeleton>
) (cells-to-remove hash-table
)) ¶<discrete-iterative-solver>
)) ¶automatically generated reader method
<preconditioned-krylow>
)) ¶For many Krylow methods a restart is necessary after some steps.
Restriction from current level. The current level is decremented after the operation.
<correction-scheme>
) mg-data) ¶<mg-iteration>
) mg-data) ¶<mg-iteration>
) mg-data) ¶The basic method for restriction restricts the residual, decrements the level and clears the residual-p flag.
integration-rule
)) ¶automatically generated reader method
Select an error estimator.
Select a refinement indicator.
<cdr-problem>
) blackboard) ¶For CDR problems, solving with local refinement works. If an error is estimated, we refine those cells within some factor of the maximum error.
For systems, there is still a problem with multigrid and local refinements. Therefore, we do not allow local refinement here.
Select a suitable solver depending on size of the matrix and the information on the blackoard.
Computes the constraint matrices for this ansatz-space.
Constraints arise partially because of the discretization, e.g. hanging
nodes, and partially because of essential boundary conditions. Of course,
these matrices change when mesh or discretization are adapted.
cache-dictionary
)) ¶automatically generated reader method
size
.
small-cache-dictionary
)) ¶automatically generated reader method
size
.
Extracts a slice of TENSOR
full-tensor
) index-settings) ¶Smooth on current level. The argument which should be
one of the keywords :pre or :post and determines which smoothing is
to be performed.
<mg-iteration>
) mg-data which) ¶Returns smoothness of function. :INFINITY is returned for infinitely differentiable functions.
<linear-function>
)) ¶<constant-function>
)) ¶<geometric-mg>
)) ¶automatically generated reader method
<geometric-mg>
)) ¶automatically generated writer method
<special-solver>
)) ¶automatically generated reader method
compressed-pattern
)) ¶Vector with start indices of compressed columns/rows.
small-cache-dictionary
)) ¶automatically generated reader method
<block-iteration>
)) ¶T if diagonal can be stored.
work-group
)) ¶automatically generated reader method
Precondition: the items :matrix and
:coarse-grid-nodes have to be supplied on the blackboard. Post-condition:
Items :matrix and :tentative-prolongation on the blackboard. In the case
of selection-amg this will usually be injection, in the case of
aggregation-amg this will be the piecewise constant prolongation.
<selection-amg>
) blackboard) ¶Simply injection, i.e. P_{CC}=Id_{CC}.
work-group
)) ¶automatically generated reader method
work-group
)) ¶automatically generated writer method
Extract a stationary PDE problem for performing one step of the given Rothe method out of the given time-dependent PDE problem @arg{problem}.
Transforms the cell according to the transformation.
Note that this will not work, if unmapped cells are transformed
nonlinearly.
<boundary-cell>
) transformation) ¶<mapped-cell>
) transformation) ¶Default method returns @arg{cell}.
Generates a unit of the same kind as @arg{F}.
number
)) ¶list
)) ¶polynomial
)) ¶Low-level interface to refinement. @arg{region} is
either NIL or a skeleton giving the region to be refined. @arg{indicator}
is a function returning the refinement rule for each cell. In the skeleton
@arg{refined} the actually refined cells can be collected, and
@arg{highest} determines if the indicator gives refinement for every cell
or only the highest-dimensional cells.
<skeleton>
) (refined-skel <skeleton>
) &key region indicator refined highest) ¶<ldu-sparse>
)) ¶automatically generated reader method
<constant-function>
)) ¶automatically generated reader method
Waits on @arg{waitqueue-object} while @arg{while} is
satisfied or until @arg{until} is satisfied. After a successful waiting,
the function given in @arg{perform} is called.
The default method for objects does not wait at all.
waitqueue-mixin
) &key while until perform finish) ¶waitqueue-mixin
)) ¶automatically generated reader method
work-group
)) ¶automatically generated reader method
work
.
chunk-queue
)) ¶Set x to the identity matrix.
Returns a coefficient function which constrains all system components to zero.
This structure contains information about the children, their factor
simplices, and how to find their boundary sides. The slots are:
class: the child’s cell-class
barycentric-corners:
A list of the child’s corners in barycentric coordinates
boundary-paths:
For each side of the child this list contains a path in the form (i_1,
..., i_l, j): here i_1, ..., i_l are positions in subsequent boundary lists
starting from the boundary of the child’s parent, and j is the position in
the refine-info vector of the boundary’s parent.
transform-A, transform-b: determine the transformation mapping for the child
structure-object
.
fl.mesh:<cell>
(fl.utilities:required-argument)
list
list
Structure containing information necessary for cell handling.
structure-object
.
fixnum
-1
fl.mesh:<cell>
(error "reference cell has to be provided")
fixnum
-1
fixnum
-1
fixnum
-1
#()
(compressed-matrix⎵(store-vector⎵double-float⎵dynamic⎵nil))
.
(standard-matrix⎵double-float)
.
This variant of algebraic multigrid coarsens in a
special way by collecting fine-grid nodes into aggregates. These are put
into a set which is then used by the method build-ip to build the actual
interpolation matrix.
The algebraic multigrid iteration is a multigrid
iteration where the hierarchy of problems is derived from the fine-grid
matrix. Usually, an algebraic multigrid will use the same iterator as its
geometric counterpart.
most-positive-fixnum
:max-depth
This slot is read-only.
fl.multigrid::*amg-cg-max-size*
:cg-max-size
This slot is read-only.
:output
Mixin for an anisotropic refrule. This type of rule includes copy and regular refinement as special cases.
:types
Mixin for objects to which an ansatz-space is associated.
fl.discretization:<ansatz-space>
:ansatz-space
This slot is read-only.
function
:key->size
, :row-key->size
This slot is read-only.
function
:key->size
, :col-key->size
This slot is read-only.
Function determining the pattern of a block.
function
:keys->pattern
This slot is read-only.
This is an abstract class which is a base for standard-cell and boundary-cell.
Femlisp demo node.
A short description.
:short
A long description.
:long
The child nodes of the demo.
list
A function performing the demo.
:execute
Sample string of user input for testing.
:test-input
This is a mixin to <standard-error-estimator> which
adapts project-solution to compute the difference between the solution and
its projection to a coarser level in the quantity :solution-increment on
the blackboard.
The base class of solvers for discrete linear and nonlinear problems.
A mixin which distinguishes if the cell mapping is a distortion of the multilinear mapping.
fl.discretization:<ansatz-space>
:domain-ansatz-space
This slot is read-only.
fl.discretization:<ansatz-space>
:image-ansatz-space
This slot is read-only.
An error estimator is used as first argument in the
generic functions local-estimate, global-estimate, and estimate which work
on a blackboard.
General class for a solver of eigenvalue problems.
This class is a modification of
@class{<stationary-fe-strategy>} for solving PDE eigenvalue problems by a
Wielandt iteration.
Abstract base class for finite elements.
fl.mesh:<cell>
:cell
This slot is read-only.
The factor FEs, if the FE is of product type, that is,
its basis and dofs are products of FE bases and dofs on the reference
cells. Using such a factor representation can speed up several
calculations considerably.
:fe-factors
This slot is read-only.
:discretization
This slot is read-only.
Determines if the block choice is centered on cells or
vertices. The latter choice can be shown to be robust in the order p for
finite elements of Lagrange type [Pavarino 1994].
common-lisp
.
:vertex-centered
:type
The geometric multigrid iteration is a multigrid
iteration where the hierarchy of problems is obtained by discretizing on a
sequence of refined meshes. It is an abstract class and should be merged
with either <correction-scheme> or <fas>.
This is a mixin to <standard-error-estimator> which computes a local cell norm.
2
:local-p
This is a mixin to <standard-error-estimator> which
leads to computation of a p-norm of the local contributions. If global-p
is :identity a simple summation is performed.
2
:global-p
Preconditioned GMRES iteration
The <ht-sparse-matrix> represents an unordered matrix graph indexed by general keys.
(quote eql)
:test
Table of rows
(or null hash-table)
:row-table
Table of columns
(or null hash-table)
:column-table
Sparse block vector class implemented using a hash-table.
(quote eql)
:test
Marks anisotropic product cells in such a way that they become isotropic.
A mixin which is not used up to now, because the same functionality is provided using information from the ansatz-space.
<linearly-transformed-function> calls the original
function evaluation on linearly transformed coordinates and linearly
transforms also the result.
Knyazev’s LOBPCG iteration.
Local geometric multigrid of correction scheme type.
A mixin testing the residual with an approximation of a
dual solution. To localize we subtract a local projection on lower order
polynomials.
At the moment, this class is not needed because vertices are not mapped.
Class for general nonlinear iterative solvers.
The linear solver for solving the linearization.
:linear-solver
This slot is read-only.
A linear iteration used as a preconditioner
:preconditioner
For many Krylow methods a restart is necessary after some steps.
:restart-cycle
This slot is read-only.
Executes the given function for determining the block decomposition.
Contains NIL or a function which is called for block setup.
:block-setup
A mixin leading to the assembly of interpolated solution, matrix and rhs in an enriched ansatz space.
A mixin leading to the computation of the solution of
the dual problem for the given functional. The result is put in
:error-weight-function.
Sparse matrices defined via dictionaries.
access-type
.
col-keys
.
(setf column-table)
.
column-table
.
for-each-col-key
.
for-each-entry-in-col
.
for-each-entry-in-row
.
for-each-key-and-entry-in-col
.
for-each-key-and-entry-in-row
.
for-each-key-in-col
.
for-each-key-in-row
.
for-each-row-key
.
matrix-block
.
(setf matrix-column)
.
matrix-column
.
(setf matrix-row)
.
matrix-row
.
remove-key
.
row-keys
.
(setf row-table)
.
row-table
.
Table of row dictionaries.
:row-table
Table of column dictionaries.
:column-table
Sparse block vector class indexed with general keys.
The standard cell in Femlisp is defined via its boundary.
<1-1-1-1-product-cell>
.
<1-1-1-product-cell>
.
<1-1-product-cell>
.
<1-2-product-cell>
.
<1-simplex>
.
<2-1-product-cell>
.
<2-simplex>
.
<3-simplex>
.
For this form of error estimator the local estimate is
further decomposed in the steps project-solution, compute-weight-function,
and compute-local-estimate, all of them acting on the blackboard.
Wielandt iteration.
Queue for chunk work. A chunk is a list of thunks, which can be enqueued only if the queue is empty.
A superclass for user-defined dictionaries.
Relation for objects.
This object describes a cluster of identified cells. At
the moment, it is used to describe identified boundaries and might be used
later on for parallelization purposes. Those identifications are refered
to in the properties of each cell.
:skeleton
This class implements a heap for traversing a set of objects in parallel in such a way that the operation does not conflict with other threads working on the same set. While the parallel operation works on some object, all dependents are blocked. Furthermore, after the operation on an object is finished its dependents are priorized for being operated on for optimizing cache use.
(make-instance (quote fl.dictionary:sorted-hash-table) :insertion-order :heap)
(fl.patches:make-hash-table)
A function returning all dependents of an object.
:dependents
A pool from which matrix-blocks may be obtained fast.
:pool
tables is a dll of hash-tables, at the start is the
highest priority, at the end the lowest. objects is a hash-table from
objects in the pq pointing to the dll-item where the object is.
Objects of this class are a dictionary for object/priority
pairs. It allows to pop objects of maximum or minimum priority. Objects can
also be deleted.
Internally, table is an adjustable vector with fill-pointer being either 0 or larger than 0, if there is an entry in the doubly-linked list at the corresponding index.
Queue class accessed with @function{enqueue} and @function{dequeue}.
A superclass for sorted dictionaries.
Subclass of @class{dynamic-store-vector} for which fast
BLAS operations are possible because the store is a simple and uniform
array.
When calling dic-ref from inside a thread, first an
unlocked access to the thread-local dictionary is done, and only if this
does not succed, the global dictionary is accessed with a lock.
For use in global memoization tables for short list keys.
A dof of a vector finite element.
A class representing a group of threads working on a queue.
Jump to: | (
1
<
?
^
_
A B C D E F G H I J K L M N O P Q R S T U V W X Z |
---|
Jump to: | (
1
<
?
^
_
A B C D E F G H I J K L M N O P Q R S T U V W X Z |
---|
Jump to: | *
+
A B C D E F G H I J K L M N O P R S T U V W |
---|
Jump to: | *
+
A B C D E F G H I J K L M N O P R S T U V W |
---|
Jump to: | (
<
A B C D E F G H I K L M N P Q R S T U V W |
---|
Jump to: | (
<
A B C D E F G H I K L M N P Q R S T U V W |
---|