Next: Package FL.CDR, Previous: Package FL.MESH, Up: Reference manual
The FL.PROBLEM package introduces the
general class <problem> and some subclasses. The most interesting
subclass is <pde-problem>. A <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 <pde-problem> are defined in own packages,
e.g. <cdr-problem> in FL.CDR,
<elasticity-problem> in FL.ELASTICITY and
<navier-stokes-problem in FL.NAVIER-STOKES.
Direct slots:
- DIMENSION: 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.
- DEMANDS: A list indicating which information the evaluation function needs. Possible choices depend on problem and discretization, e.g.
:local,:global,:fe,:cellare possible choices. One element can also be a list starting with the keyword:fe-parametersand followed by symbols indicating names of finite element functions on the discretization blackboard.- EVAL: The evaluation funtion. It accepts a list of keyword parameters which should correspond to the list in DEMANDS.
- RESIDUAL: T means evaluation for computing the residual.
- JACOBIAN: T means evaluation for computing the Jacobian.
An instance of this class describes a problem posed on the domain
domain. The slotcoefficientscontains a table mapping domain patches to property lists of the form (identifier1coefficient1identifier2coefficient2...). Here identifiers are special symbols and the coefficients are objects of type<coefficient>. When the problem instance is initialized this table is usually set up by calling the functionpatch->coefficientswhich has to be provided as a key argument. The slotmultiplicitycan be chosen as a positive integer n if the problem is posed with n different right hand sides simultaneously.Note also that for nonlinear problems, where the coefficients depend on the solution, an approximate solution can be found as a property of the problem.
Superclasses: <PROBLEM>
Direct slots:
- DOMAIN: NIL
- COEFFICIENTS: Hash table which maps domain patches to coefficients.
- MULTIPLICITY: NIL
A mixin for eigenvalue problems.
Direct slots:
- LAMBDA: The multiplier for the mass matrix, usually equal to the eigenvalue.
- MU: The multiplier for the system matrix.
Standard class for discrete eigenvalue problems.
Superclasses: <EVP-MIXIN> <NONLINEAR-PROBLEM>
Interpolation problem on a domain. The function which is to be interpolated is given as a coefficient with key FUNCTION in the coefficient list.
Superclasses: <DOMAIN-PROBLEM>
Generalized eigenvalue problem for matrices.
Superclasses: <EVP>
Direct slots:
- A: (Energy) matrix A.
- B: (Mass) matrix B.
Standard form of a linear system of equations.
Superclasses: <PROBLEM>
Direct slots:
- MATRIX: NIL
- RHS: NIL
Class for nonlinear problems. The linearization contains a function returning a linear problem.
Superclasses: <PROBLEM>
Direct slots:
- LINEARIZATION: A function linearizing the problem.
- INITIAL-GUESS: An initial guess for a solution.
The base class of linear, nonlinear and whatever iterative solvers.
Direct slots:
- OUTPUT: NIL
A mixin which should be used together with a <PDE-PROBLEM> in a call to MAKE-PROGRAMMATIC-INSTANCE.
Returns a list of possible boundary coefficients for problem.
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 coefficient function which sets Dirichlet zero boundary conditions for all components of a PDE system.
Returns the dual problem for problem with the right-hand side given by functional. The solution of this problem measures the sensitivity of functional applied to the solution of problem with respect to errors in the solution.
Returns obj if it is a coefficient, converts obj into a coefficient depending on the space variable if obj is a function; otherwise, obj is made into a constant coefficient.
Ensures that the field :RESIDUAL is computed and that the flag :RESIDUAL-P is set on the blackboard.
Filters out the applicable coefficients for the respective cell with the given patch.
The function argument func is transformed into a coefficient depending on the solution.
The function argument func is transformed into a coefficient depending on position and solution.
The function argument func is transformed into a coefficient depending on global coordinates.
Returns a list of possible interior coefficients for problem.
Linearize the nonlinear problem PROBLEM at the point SOLUTION. The result should be a linear problem.
Maps a given coefficient list coeffs into a new coefficient list. func takes coefficient name and coefficient and returns two values for new coefficient name and coefficient. If the first value returned is
NIL, this coefficient is not collected.
We allow multiple vectors, for solving linear problems in parallel.
Returns a list of finite element functions required by the coefficients in the property list coeffs.
Selects a linear solver for OBJECT. OBJECT is usually a matrix or a linear problem with certain characteristics.
Selects a solver for OBJECT. OBJECT is usually a problem with certain characteristics.
Returns two values. The first says if problem is self-adjoint, the second says if that value has really been checked.
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.