[Insight-users] RE: itk::fem Applying Boundary Conditions

Aljaz Noe noe@grasp.cis.upenn.edu
Wed, 22 Jan 2003 10:57:49 +0100


Essential and Dirichlet boundary condition are the same thing and are
defined with objects of class LoadBC. The basic design idea is that one
LoadBC object is used (stored in load array of the Solver) to fix exactly
one DOF in a system. So, to quickly answer your question, in your case you
would need TWO LoadBC objects acting on Node 2 in your system. One LoadBC
will act on the 1st DOF in that node, and the other one on the second.

To define which DOF is fixed, you must specify a pointer to an element
(m_element member), which contains the DOF, dof number within that element
(m_dof) and a constant value to which that DOF will be fixed (m_value). Note
that you specify the DOF in terms of elements, so you must know the number
of DOF within an element. And yes, you can specify the same DOF, which is
shared be two elements, in two equivalent ways. Furthermore, m_value is
(confusingly? :-) a vector. In most cases you can simply ignore that and use
only one value in a vector. But if you have isotropic element, you can
specify different fixed value for each dimension.

LoadNode objects are used to specify a simple external force that acts on a
node in the system. It is defined again in terms of elements, but this time,
you specify a node (not DOF) in an element (member m_pt). The external force
is a vector (member F), which must have the same number of dimensions as
there are DOFs at that node.

This may sound complicated, but it's really quite simple and is best
understood by looking at the example truss.cxx.

Aljaz

> -----Original Message-----
> From: insight-users-admin@public.kitware.com
> [mailto:insight-users-admin@public.kitware.com] On Behalf Of
> Chad Washington
> Sent: Tuesday, January 21, 2003 11:12 AM
> To: insight-users@public.kitware.com
> Subject: [Insight-users] itk::fem Applying Boundary Conditions
>
>
> I am trying to use the fem Solver class with itpack as the
> Linear Wrapper.  I
> want to apply a Dirchlet(essential) boundary condition
> nodally to a specific
> DOF.  Example:
> Element 0 defined by Nodes 1 and 2.
> Each node has 2 degrees of freedom.
> I want to apply an essential BC of value1 to DOF 1 for Node 1
> Apply an essential BC of value2 to DOF 1 for Node 2
> And a Dirchlet to the second DOF for both Nodes.
>
> It appears that LoadBC defines this on an element basis, and
> LoadNode only
> handles Neumann boundary conditions.  Can this be done or
> will I have to
> develop a new Load class to handle these?
> Thanks in advance
>
> Chad Washington
> Biomedical Modeling Lab
> Vanderbilt University _______________________________________________
> Insight-users mailing list
> Insight-users@public.kitware.com
> http://public.kitware.com/mailman/listinfo/ins> ight-users
>