Personal tools
You are here: Home / openCMISS / Wiki / cm field parameters
Navigation
Log in


Forgot your password?
 

cm field parameters

The meaning of parameters describing fields in cm can be summarised by observing how they are used to calculate the parameters for interpolation over an element in the subroutine 'XPXE'. A simplified XPXE is below:

! nj identifies a field (called "variable" in cm).
! ne identifies an element.
! nb identifies the interpolation used for this field over the
!    element.  It is called the "basis function" in cm.
nb=NBJ(nj,ne)
IF(nb.GT.0) THEN
  ! ns identifies a parameter for the interpolation of the field over
  ! the element.
  ns=0
  ! nn contains an element-local identifier for a node in the element.
  DO nn=1,NNT(nb)
    ! np contains a global node identifier.
    np=NPNE(nn,nb,ne)
    ! nv identifies what is called a "version" of the node.
    nv=NVJE(nn,nb,nj,ne)
    ! mk contains an interpolation-parameter identifier in the scope of
    !    element-local node nn.
    !    When there is more than one parameter, these typically represent
    !    derivative parameters for Hemite interpolation.
    DO mk=1,NKT(nn,nb)
      ns=ns+1
      ! nk contains a field parameter identifier in the scope of
      ! global node np.
      nk=NKJE(mk,nn,nj,ne)
      ! XP contains the global-nodal field parameters.
      ! SE contains what are called "scale factors".
      ! XE contains the parameters for interpolation of the field over
      ! the element.
      XE(ns,nj)=XP(nk,nv,nj,np)*SE(ns,nb,ne)
    ENDDO !mk
  ENDDO !nn
  ! na identifies a field/interpolation parameter that is not associated
  ! with any node but with the element itself.
  DO na=1,NAT(nb) !for each auxilliary parameter
    ns=ns+1
    XE(ns,nj)=XA(na,nj,ne)
  ENDDO !na
ENDIF !nb.GT.0

While the above applies to independent variables, the process for dependent variables is similar with all 'j's in the variable names above replaced with 'h's.

Versions

  • There is little difference between having multiple versions of one node and

using multiple nodes.

Different fields can use different versions of a node, but they cannot use

different nodes if they use the same interpolation in the element.

  • Versions are usually used when multiple values for a field parameter are

required at one geometric location.

  • Versions are often used when there is limited continuity (usually C0) near

a node so some (derivative) nodal parameters differ in the adjacent elements.

However using a different version requires that all nodal parameters are

specified independently for each adjacent element, and so other measures need to be used to ensure that the desired continuity is provided (i.e. the appropriate (derivative) parameters match between the appropriate versions for adjacent elements.

  • The same functionality could be implemented through the NKJE mapping from global-nodal parameters to the element-node-local set of parameters.

Scale factors

  • The scale factors 'SE' were initially introduced so that the same

global-nodal (derivative) parameters could be used by adjacent elements even when the elements were of quite different sizes while maintaining the required continuity. In practice however the complicated requirements of the relationships between these parameters for the desired continuity have meant that the scale factors are very rarely used in this way.

Scale factors are usually equal in adjacent elements and are therefore usually redundant because the degrees of freedom are already provided by the nodal parameters. They are often used however to scale the nodal parameters such that their values are similar to arc-length derivatives.
  • The same scale factor is used for all fields that use the same

interpolation in the element.

  • A matrix mapping between the global-nodal field parameters and the local-element-node set of interpolation parameters may provide a mechanism for minimizing the number of derivative parameters that must be specified and the number of constraints required to ensure continuity for first derivatives at vertices between non-regular numbers of elements.