Next: Package FL.CDR, Previous: Package FL.MESH, Up: Reference manual [Contents][Index]

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`

.

- Class:
**<COEFFICIENT>** -
The coefficient class.

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`

,`:cell`

are possible choices. One element can also be a list starting with the keyword`:fe-parameters`

and 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.

- Class:
**<DOMAIN-PROBLEM>** -
An instance of this class describes a problem posed on

`domain`

with coefficients given on each patch of the domain. The slot`multiplicity`

is 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.

- Class:
**<EVP-MIXIN>** -
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.

- Class:
**<EVP>** -
Standard class for discrete eigenvalue problems.

Superclasses: <EVP-MIXIN> <NONLINEAR-PROBLEM>

- Class:
**<INTERPOLATION-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>

- Class:
**<LS-EVP>** -
Generalized eigenvalue problem for matrices.

Superclasses: <EVP>

Direct slots:

- STIFFNESS-MATRIX: Self-explanatory.
- MASS-MATRIX: Self-explanatory.

- Class:
**<LSE>** -
Standard form of a linear system of equations.

Superclasses: <PROBLEM>

Direct slots:

- MATRIX: Self-explanatory.
- RHS: Self-explanatory.

- Class:
**<NLSE>** -
Class for nonlinear system of equations.

Superclasses: <NONLINEAR-PROBLEM>

- Class:
**<NONLINEAR-PROBLEM>** -
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.

- Class:
**<PDE-PROBLEM>** -
Base-class for a pde-problem.

Superclasses: <DOMAIN-PROBLEM>

- Class:
**<PROBLEM>** -
Base class for all problems.

Superclasses: PROPERTY-MIXIN

- Class:
**<TIME-DEPENDENT-PROBLEM>** -
A mixin which should be used together with a <PDE-PROBLEM> in a call to MAKE-PROGRAMMATIC-INSTANCE.

- Function:
**ADD-FE-PARAMETERS-DEMAND**`DEMANDS``NEW-PARAS` -
Adds a list of fe-functions to the demands.

- Macro:
**COEFF**`NAME``ARGS`&BODY`BODY` -
A local

`coeff`

defines a coefficient function inside`setup-coefficients`

. It is defined here at the toplevel such that the Lisp editor indents the definitions correctly.

- Function:
**COEFFICIENTS-OF-CELL**`CELL``MESH``PROBLEM` -
Returns the coefficients of

`problem`on`cell`.

- Function:
**COEFFICIENTS-OF-PATCH**`PATCH``PROBLEM` -
Reader for the coefficients of

`patch`for`problem`.

- Function:
**COMPONENT-POSITION**`COMPONENTS``COMP` -
Translates a symbol denoting a component to a position.

- Function:
**COMPONENTS-OF-CELL**`CELL``MESH``PROBLEM` -
Returns the components of

`problem`on`cell`.

- Function:
**COMPONENTS-OF-PATCH**`PATCH``PROBLEM` -
Reader for the components of

`problem`on`patch`.

- Function:
**CONSTANT-COEFFICIENT**`NAME``VALUE`&REST`OTHER-VALUES` -
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.

- Function:
**CONSTRAINT-COEFFICIENT**`COMPONENTS``MULTIPLICITY` -
Returns a coefficient function which sets Dirichlet zero boundary conditions for all components of a PDE system.

- Macro:
**CREATE-PROBLEM**`TYPE`(&KEY`DOMAIN``COMPONENTS`(`MULTIPLICITY`1)`PROPERTIES`) &BODY`BODY` -
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 with`setup-components`

.

- Function:
**DUAL-PROBLEM**`PROBLEM``FUNCTIONAL` -
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.

- Function:
**ENERGY**`EVP``X` -
Evaluates the energy bilinear form for a generalized eigenvalue problem.

- Function:
**ENSURE-COEFFICIENT**`NAME``OBJ` -
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.

- Function:
**ENSURE-RESIDUAL**`PROBLEM``BLACKBOARD` -
Ensures that the field :RESIDUAL is computed and that the flag :RESIDUAL-P is set on the blackboard.

- Function:
**ENSURE-SOLUTION**`PROBLEM``BLACKBOARD` -
Ensures that the field :SOLUTION is set on the blackboard.

- Function:
**EXTRACT-FROM**`SOLUTION``FROM``NCOMPS`&OPTIONAL`SCALAR-P``INDEX` -
Extracts numbers or subvectors from the solution vector.

- Function:
**EXTRACTION-INFORMATION**`COMPONENTS``COMPONENT` -
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.

- Function:
**FILTER-APPLICABLE-COEFFICIENTS**`COEFFS``CELL``PATCH`&KEY (`CONSTRAINTS``T`) -
Filters out the applicable coefficients for the respective cell with the given patch.

- Function:
**FU->COEFFICIENT**`NAME``FUNC` -
The function argument

`func`is transformed into a coefficient depending on the solution.

- Function:
**FX->COEFFICIENT**`NAME``FUNC` -
The function argument

`func`is transformed into a coefficient depending on global coordinates.

- Function:
**FXU->COEFFICIENT**`NAME``FUNC` -
The function argument

`func`is transformed into a coefficient depending on position and solution.

- Function:
**GET-COEFFICIENT**`COEFFS``NAME` -
Get coefficient

`name`from the list`coeffs`.

- Function:
**GET-PROPERTY**`OBJECT``PROPERTY` -
Gets

`property`for`object`. Returns NIL also if`property`is not available.

- Function:
**IDENTIFICATION-COEFFICIENT**`MASTER``MAPPING` -
A special coefficient used for identifying parts of the domain. The coefficient evaluation returns the master coordinates.

- Function:
**LINEAR-P**`PROBLEM` -
Predicate determining if a problem is linear or nonlinear.

- Function:
**LINEARIZE**`PROBLEM``SOLUTION` -
Linearize the nonlinear problem PROBLEM at the point SOLUTION. The result should be a linear problem.

- Function:
**LSE***&REST*`ARGS` -
Constructs a standard LSE.

- Function:
**MAKE-COEFFICIENTS-FOR**`PROBLEM``NAME``PATCH``DEMANDS``EVALUATOR` -
Generates a coefficient while dispatching on problem and coefficient name. May return a single coefficient or a list of several coefficients.

- Function:
**MASS**`EVP``X` -
Evaluates the mass bilinear form for a generalized eigenvalue problem.

- Function:
**MULTIPLICITY**`VEC` -
We allow multiple vectors, for solving linear problems in parallel.

- Function:
**NLSE***&REST*`ARGS` -
Constructs a standard NLSE.

- Function:
**NR-OF-COMPONENTS**`PROBLEM` -
Returns the number of components for

`problem`.

- Function:
**PREPARE-COEFFICIENT-ARGUMENTS**`COMPONENTS``ARGS` -
Prepares arguments for the given coefficient function.

- Function:
**REQUIRED-FE-FUNCTIONS**`COEFFS` -
Returns a list of finite element functions required by the coefficients in the property list

`coeffs`.

- Function:
**SELECT-LINEAR-SOLVER**`OBJECT``BLACKBOARD` -
Selects a linear solver for OBJECT. OBJECT is usually a matrix or a linear problem with certain characteristics.

- Function:
**SELECT-SOLVER**`OBJECT``BLACKBOARD` -
Selects a solver for OBJECT. OBJECT is usually a problem with certain characteristics.

- Function:
**SELF-ADJOINT-P**`PROBLEM` -
Returns two values. The first says if

`problem`is self-adjoint, the second says if that value has really been checked.

- Macro:
**SETUP-COEFFICIENTS***(*`PATCH`) &BODY`PATCH-DEFINITIONS` -
Defines coefficients dispatching on

`patch`.

- Macro:
**SETUP-COMPONENTS***(*`PATCH`) &BODY`PATCH-DEFINITIONS` -
Defines components dispatching on

`patch`.

- Function:
**STATIONARY-PROBLEM-CLASS**`TDP` -
Finds the stationary pde problem for the time-dependent problem TDP.

- Function:
**ZERO-CONSTRAINTS**`PROBLEM` -
Returns a coefficient function which constrains all system components to zero.

Next: Package FL.CDR, Previous: Package FL.MESH, Up: Reference manual [Contents][Index]