# rc/sfepy forked from sfepy/sfepy

### Subversion checkout URL

You can clone with
or
.
Fetching contributors…

Cannot retrieve contributors at this time

124 lines (86 sloc) 4.068 kb

# Linear Combination Boundary Conditions

By linear combination boundary conditions (LCBCs) we mean conditions of the following type:

where a_i are given coefficients, u_i(\ul{x}) are some components of unknown fields evaluated point-wise in points \ul{x} \in \omega , and \omega is a subset of the entire domain \Omega (e.g. a part of its boundary). Note that the coefficients a_i can also depend on \ul{x} .

A typical example is the no penetration condition \ul{u}(\ul{x}) \cdot \ul{n}(\ul{x}) = 0 , where \ul{u} are the velocity (or displacement) components, and \ul{n} is the unit normal outward to the domain boundary.

## Enforcing LCBCs

There are several methods to enforce the conditions:

• penalty method
• substitution method

We use the substitution method, e.i. we choose j such that a_j \neq 0 and substitute

into the equations. This is done, however, after the discretization by the finite element method, as explained below.

Let us denote c_i = \frac{a_i}{a_j} ( j is fixed). Then

## Weak Formulation

We multiply :eq:eq_lcbc_subs by a test function v_j and integrate the equation over \omega to obtain

where H(\omega) is some suitable function space (e.g. the same space which u_j belongs to).

## Finite Element Approximation

On a finite element T_K (surface or volume) we have u_i(\ul{x}) = \sum_{k=1}^{N} u_i^k \phi^k (\ul{x}) , where \phi^k are the local (element) base functions. Using the more compact matrix notation \ub_i = [u_i^1, \dots, u_i^N] , \vphib = [\vphib^1, \dots, \vphib^N]^T we have u_i(\ul{x}) = \vphib(\ul{x}) \ub_i and similarly v_i(\ul{x}) = \vphib(\ul{x}) \vb_i .

The relation :eq:eq_lcbc_subs, restricted to T_K , can be then written (we omit the \ul{x} arguments) as

As :eq:eq_lcbc_weak_fe holds for any \vb_j , we have a linear system to solve. After denoting the "mass" matrices \Mb = \int_{T_K} \vphib^T \vphib , \Mb_i = \int_{T_K} c_i \vphib^T \vphib the linear system is

Then the individual coefficients \ub_j can be expressed as

## Implementation

Above is the general treatment. The code uses its somewhat simplified version described here. If the coefficients c_i are constant in the element T_K , i.e. c_i(\ul{x}) = \bar c_i for x \in T_K , we can readily see that \Mb_i = \bar c_i \Mb . The relation :eq:eq_lcbc_weak_fe_m_s then reduces to

hence we can work with the individual components of the coefficient vectors (= degrees of freedom) only, as the above relation means, that u_j^k = \bar c_i u_i^k for k = 1, \dots, N .

Something went wrong with that request. Please try again.