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.
Superclasses: PROPERTY-MIXIN
Direct slots:
- NAME: Self-explanatory.
- 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. The default value NIL means that it is active on cells with the same dimension as 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
domainwith coefficients given on each patch of the domain. The slotmultiplicityis a positive integer which denotes the number of right-hand sides and solutions (e.g. when computing several eigenvectors at once).Superclasses: <PROBLEM>
Direct slots:
- DOMAIN: Self-explanatory.
- COMPONENTS: A list whose elements are lists of the form (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.
- MULTIPLICITY: Multiplicity of the right-hand side.
- COEFFICIENTS: A function mapping patches to coefficient lists.
A mixin for eigenvalue problems.
Direct slots:
- MULTIPLICITY: The multiplicity of the eigenspace.
- EIGENVALUES: The current approximation of the eigenvalues.
- 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:
- STIFFNESS-MATRIX: Self-explanatory.
- MASS-MATRIX: Self-explanatory.
Standard form of a linear system of equations.
Superclasses: <PROBLEM>
Direct slots:
- MATRIX: Self-explanatory.
- RHS: Self-explanatory.
Class for nonlinear problems. The linearization contains a function returning a linear problem.
Superclasses: <PROBLEM>
Direct slots:
- LINEARIZATION: A function linearizing the problem.
- SOLUTION: An approximation to the solution.
The base class of linear, nonlinear and whatever iterative solvers.
Direct slots:
- OUTPUT: Self-explanatory.
A mixin which should be used together with a <PDE-PROBLEM> in a call to MAKE-PROGRAMMATIC-INSTANCE.
A local
coeffdefines a coefficient function insidesetup-coefficients. It is defined here at the toplevel such that the Lisp editor indents the definitions correctly.
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.
Creates a PDE problem. type is the type of the problem which can be the name of a problem class or a list of class names. domain is the domain for this problem, multiplicity is the multiplicity of the solution, e.g. the number of eigenvectors we search for. In body, patch-dependent coefficients should be defined with
setup-coefficients. It is also possible to define patch-dependent components withsetup-components.
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.
If component is in components, a triple consisting of position, length, and a flag is returned. The flag is true, if the component is a scalar.
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 global coordinates.
The function argument func is transformed into a coefficient depending on position and solution.
Gets property for object. Returns NIL also if property is not available.
A special coefficient used for identifying parts of the domain. The coefficient evaluation returns the master coordinates.
Linearize the nonlinear problem PROBLEM at the point SOLUTION. The result should be a linear problem.
Generates a coefficient while dispatching on problem and coefficient name. May return a single coefficient or a list of several coefficients.
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.