Name

nbc — Natural boundary conditions block

Synopsis

nbc id [type t] [system s] [title "..."]
  ...
  ...
end

Description

The nbc command specifies one or more natural boundary conditions (NBC), which are concentrated or distributed loads and which will be part of the right-hand side of the problem to be solved. A nbc set is identified by id, a non-negative integer which must be unique for the nbc conditions of the current model. id is the number which is referenced by the nbc option of the case definition. Sets with an id of 0 will be active for all analysis cases.

A NBC set is of a certain type (i.e. concentrated forces, line loads, surface tractions) and specified either in the branch-global reference frame, the node-local reference frame, the element edge or face reference frame, or the deformed element edge or face reference frame.

type concentrated_loads | line_loads | surface_tractions | pressure | body_loads | accelerations | body_heat

Specifies the type of the natural boundary conditions defined in the current set. Default is concentrated_loads.

system branch | local | local_deformed

Specifies the reference frame in which the conditions are formulated. The default reference frame depends on the chosen type.

title "..."

Specifies an optional title for the nbc set.

Concentrated Loads

Synopsis:

nbc id [type concentrated_loads] [system s] [title t]
  value v
  dof list
  nodes...
  value v
  dof list
  nodes...
  ...
end

Specifying type concentrated_loads (default) means that concentrated loads (i.e. forces in stress analysis and heat transfer rate = power in heat analysis) are assigned to degrees-of-freedom at individual nodes or multiple nodes.

This assignment is done as follows: The directive value is used to specify the magnitude of a concentrated load. This value is then assigned to one or several degrees-of-freedom by means of the directive dof. The couple (value, degrees-of-freedom is then assigned to individual nodes or collections of nodes.

The directive value v takes a single floating-point number.

value 3.8e-3

The directive dof is followed by a list which identifies the degrees-of-freedom:

  • In stress analysis, FX, FY, and FZ represent a force in the x-, y-, and z-direction, respectively.

  • In stress analysis, MX, MY, and MZ represent a moment about the x-, y-, and z-axes, respectively.

  • In heat analysis, Q means the rate of heat flow (power).

With concentrated loads, a single degree-of-freedom rather than a list of degrees-of-freedom is usually involved. In this case, the square brackets can be omitted:

value 3.8e-3 dof FX

The degrees-of-freedom that are present at a given node depend on the elements to which this node is connected. Specifying a value for a degree-of-freedom that does not exist will have no effect.

The following directives are available to assign concentrated loads to individual nodes and to collections of nodes:

allnodes

Assign the concentrated loads to all defined nodes of the current branch.

branch br

For models that consist of several branches. Specifies the external branch number br. To be used in conjunction with the allnodes and nodes directives.

epatch id p1-p8|e1-e12|f1-f6|b

When the discretization of a part of the discretization was created by means of the epatch command, a number of pre-defined nodelists are available for use with the nbc command. The epatch is identified by id.

Individual patch vertex nodes are specified with p1 to p8.

The collection of nodes that are located at a patch edge are specified with e1 to e12.

The collection of nodes that are located at a patch face are specified with f1 to f6.

The collection of nodes of the whole patch body are specified with b.

nodes list

Specifies a list of nodes (of the current branch) to which the concentrated loads will be assigned.

nodelist name

Specifies the name of the node list to which the concentrated loads will be assigned.

nodeset name

Specifies the name of the node set to which the concentrated loads will be assigned.

Examples:

  • In set 1, for mesh node 5, set the force in the y-direction to 25.0. For mesh nodes 9,10,11,12, set the moment in the y-direction to 60.0. Since the default reference frame is node-local, the directions will be the node-local directions if there are local coordinate system defined for these nodes. Otherwise, the directions will be aligned with the branch reference frame.

    In set 2, a moment of 5.0 about the y-axis in the branch reference frame is applied to node 20.

    nbc 1
      value 25.0 dof FY nodes 5
      value 60.0 dof MY nodes [9 10 11 12]
    end
    
    nbc 2 system branch
      value 5.0 dof MY nodes 20
    end
  • In set 1, a concentrated force in z-direction is applied to the centre (p5) of a square plate that is discretized with the epatch command. The centre node is defined only if the number of elements in the patch directions (ne1 and ne2) are even.

    epatch 1
      geometry plate
      p1 0. 0. 0.
      p2 1. 0. 0.
      p3 1. 1. 0.
      p4 0. 1. 0.
      thickness 0.01
      eltype Q9.S.MITC
      mid 1
      ne1 10
      ne2 10
    end
    
    nbc 1
      value 5. dof FZ epatch 1 p5
    end

Line Loads

Synopsis:

nbc id type line_loads [system s] [title t]
  line_loads l1 l2 l3
  edges...
  line_loads l1 l2 l3
  edges...
  ...
end

Specifying type line_loads means that the set consists of line loads (force per length in stress analysis), which will be integrated along the element edges during the analysis by the element implementations. The element thickness is not taken into account.

Line loads are meaningful for shell elements (edges 1-4), 2D elements (edges 1-4), and cable/rod and beam elements (edge 1). Irrespective of the element type, line loads are specified with 3 components line_loads l1 l2 l3.

The default reference frame is local. For cable/rod elements and beam elements, this means the element axis. Only the value of l1 is used while l2 l3 will be ignored. For shell elements and 2D elements, the edge-local reference frames will be used. They are identical to the face-local reference frames of a corresponding solid element:

  • l1 coincides with the edge direction.

  • l2 coincides with the element surface normal. For cable/rod elements, beam elements, and 2D elements, l2 will be ignored.

  • l3 coincides with the outward-pointing face/edge normal. For cable/rod and beam elements, l3 will be ignored.

The reference frame local_deformed is intended for geometrically nonlinear stress analysis and otherwise identical to local. The reference frame branch means that l1 l2 l3 is in the branch-global x-, y-, and z-direction, respectively.

The following directives are available to assign line loads to collections of edges:

edgelist name

Specifies the name of the edge list to which the line loads will be assigned.

edgeset name

Specifies the name of the edge set to which the line loads will be assigned.

epatch id e1-e12

When the discretization of a part of the discretization was created by means of the epatch command, a number of pre-defined edgelists are available for use with the nbc command. The epatch is identified by id, and the edgelists are specified with e1 to e12.

Example: A line load in y-direction is applied to the outer edge of a clamped cantilever beam.

epatch 1
  geometry plate
  p1 0.   0.  0.
  p2 100. 0.  0.
  p3 100. 10. 0.
  p4 0.   10. 0.
  thickness 0.01
  eltype Q9.S.2D.TL
  mid 1
  ne1 10
  ne2 1
end

ebc 1
  value 0. dof [UX UY] epatch 1 e4
end

nbc 1 type line_loads
  line_loads 0 .1 0
  epatch 1 e2
end

Surface Traction and Pressure Loads

Synopsis:

nbc id type surface_tractions [system s] [title t]
  surface_tractions t1 t2 t3
  faces...
  surface_tractions t1 t2 t3
  faces...
  ...
end

or

nbc id type pressure [system s] [title t]
  pressure p
  faces...
  pressure p
  faces...
  ...
end

Specifying type surface_tractions means that the set consists of tractions (force per area in stress analysis), which will be integrated along the element faces during the analysis by the element implementations. In case of 2D elements and shell elements, the element thickness is taken into account.

Surface traction loads are meaningful for 3D elements (faces 1-6), shell elements (faces 1-4 for the sides, face 5 for the lower surface, face 6 for the upper surface, and face 7 for the mid-surface), and 2D elements (faces 1-4 for the sides). Surface traction load are specified with 3 components surface_tractions t1 t2 t3.

Specifying type pressure is equivalent to surface tractions in the opposite of the face-normal direction. Hence, pressure p is equivalent to surface_tractions 0 0 -p.

The default reference frame is local, which means that the face-local reference frames of the initial configuration will be used (see also Element Naming and Numbering Conventions):

  • t1 coincides with the edge direction in case of 2D and shell elements.

  • l2 coincides with the element surface normal in case of 2D and shell elements.

  • l3 coincides with the outward-pointing face normal.

The reference frame local_deformed is intended for geometrically nonlinear stress analysis and otherwise identical to local. The reference frame branch means that t1 t2 t3 is in the branch-global x-, y-, and z-direction, respectively.

The following directives are available to assign surface traction loads to collections of faces:

facelist name

Specifies the name of the face list to which the loads will be assigned.

faceset name

Specifies the name of the face set to which the loads will be assigned.

epatch id f1-f7

When the discretization of a part of the discretization was created by means of the epatch command, a number of pre-defined facelists are available for use with the nbc command. The epatch is identified by id, and the facelists are specified with f1 to f7.

Example: A uniform pressure is applied to the mid-surface of a square plate which is simply-supported. Set 2 is equivalent to set 1.

epatch 1
  geometry plate
  p1 0. 0. 0.
  p2 1. 0. 0.
  p3 1. 1. 0.
  p4 0. 1. 0.
  thickness 0.01
  eltype Q9.S.MITC
  mid 1
  ne1 4
  ne2 4
end

ebc 1
  value 0. dof [UX UY UZ]
  epatch 1 e1
  epatch 1 e2
  epatch 1 e3
  epatch 1 e4
end

nbc 1 type surface_tractions
  surface_tractions 0. 0. -1.
  epatch 1 f7
end

nbc 2 type pressure
  pressure 1.
  epatch 1 f7
end

Body Loads

Synopsis:

nbc id type body_loads [system s] [title t]
  body_loads f1 f2 f3
  elements...
  body_loads f1 f2 f3
  elements...
  ...
end

Specifying type body_loads means that the current set consists of body loads (force per volume). During the analysis, these will be integrated by the element implementations over the volumes of the specified elements.

body loads are meaningful for 3D elements, shell elements, 2D elements, rod/cable elements, and beam elements, but should not be used with point-mass elements (the type accelerations should be used instead).

body loads are specified with 3 components body_loads f1 f2 f3, defined in the branch-global reference frame (local reference frames are not permitted).

The default reference frame is branch, which means that f1 f2 f3 are specified in the branch-global x-, y-, and z-direction, respectively. If the reference frame local is specified, the element-local reference frame will be used (see also Element Naming and Numbering Conventions). The reference frame local_deformed is intended for geometrically nonlinear stress analysis and otherwise identical to local.

The following directives are available to assign body loads to collections of elements:

allelements

Assign the body loads to all defined elements of the current branch.

branch br

For models that consist of several branches. Specifies the external branch number br. To be used with the allelements directive.

elementlist name

Specifies the name of the element list to which the body loads will be assigned.

elementset name

Specifies the name of the element set to which the body loads will be assigned.

epatch id b

When the discretization of a part of the discretization was created by means of the epatch command, the pre-defined element list is available for use with the nbc command. The epatch is identified by id, followed by b.

Example: A body load in -y direction is applied to a clamped cantilever beam.

epatch 1
  geometry plate
  p1 0.   0.  0.
  p2 100. 0.  0.
  p3 100. 10. 0.
  p4 0.   10. 0.
  thickness 0.01
  eltype Q9.S.2D.TL
  mid 1
  ne1 10
  ne2 1
end

ebc 1
  value 0. dof [UX UY] epatch 1 e4
end

nbc 1 type body_loads
  body_loads 0 -1. 0
  epatch 1 b
end

Acceleration Loads

Synopsis:

nbc id type accelerations [system s] [title t]
  accelerations a1 a2 a3
  elements...
  accelerations a1 a2 a3
  elements...
  ...
end

Specifying type accelerations means that the current set consists of acceleration loads (length per square-second).

Acceleration loads are meaningful for 3D elements, shell elements, 2D elements, rod/cable elements, beam elements, and point-mass elements. During the analysis, the accelerations will be multiplied with the material density and integrated by the element implementations over the volumes of the specified elements. For point-mass elements, the accelerations will simply be multiplied by the element mass.

Acceleration loads are specified with 3 components accelerations a1 a2 a3.

The default reference frame is branch, which means that a1 a2 a3 are specified in the branch-global x-, y-, and z-direction, respectively. If the reference frame local is specified, the element-local reference frame will be used (see also Element Naming and Numbering Conventions). The reference frame local_deformed is intended for geometrically nonlinear stress analysis and otherwise identical to local.

The following directives are available to assign acceleration loads to collections of elements:

allelements

Assign the acceleration loads to all defined elements of the current branch.

branch br

For models that consist of several branches. Specifies the external branch number br. To be used with the allelements directive.

branch br

For models that consist of several branches. Specifies the external branch number br. Is used for the allelements directive.

elementlist name

Specifies the name of the element list to which the acceleration loads will be assigned.

elementset name

Specifies the name of the element set to which the acceleration loads will be assigned.

epatch id b

When the discretization of a part of the discretization was created by means of the epatch command, the pre-defined element list is available for use with the nbc command. The epatch is identified by id, followed by b.

Example: An acceleration load in -z direction is applied to a thin clamped cantilever plate consisting of two regions with different materials. The length unit is mm, and the mass unit is tons.

epatch 1
  geometry plate
  p1 0.   0.  0.
  p2 50.  0.  0.
  p3 50.  10. 0.
  p4 0.   10. 0.
  thickness 1.
  eltype Q9.S.MITC
  mid 1
  ne1 5
  ne2 1
end

epatch 2
  geometry plate
  p1 50.  0.  0.
  p2 100. 0.  0.
  p3 100. 10. 0.
  p4 50.  10. 0.
  thickness 1.
  eltype Q9.S.MITC
  mid 2
  ne1 5
  ne2 1
end

join 0
  automatic
end

material 1
  # aluminium
  type isotropic
  e 70e3
  nu 0.3
  density 2.77e-9
end

material 2
  # steel
  type isotropic
  e 200e3
  nu 0.3
  density 8e-9
end

ebc 1
  value 0. dof [UX UY UZ RX RY RZ] epatch 1 e4
end

nbc 1 type accelerations
  accelerations 0 -9.806e3 0
  allelements
end

Body Heat Loads

Synopsis:

nbc id type body_heat [title t]
  body_heat h
  elements...
  body_heat h
  elements...
  ...
end

Specifying type body_heat means that the current set consists of body heat loads (power per volume), i.e., the element volume acts as a heat source or heat sink.

Body heat loads are meaningful for all heat conduction elements.

[Note] Note

To specify heat convection or heat radiation boundary conditions (von-Neumann boundary conditions), the nbc command cannot be used. Instead, specific heat convection and heat radation elements are provided for that purpose, these are 'overlay' elements. See also Elements for Heat Transfer Analysis.

The following directives are available to assign body heat loads to collections of elements:

allelements

Assign the body heat loads to all elements.

branch br

For models that consist of several branches. Specifies the external branch number br. To be used with the allelements directive.

elementlist name

Specifies the name of the element list to which the body heat loads will be assigned.

elementset name

Specifies the name of the element set to which the body heat loads will be assigned.

epatch id b

When the discretization of a part of the discretization was created by means of the epatch command, the pre-defined element list is available for use with the nbc command. The epatch is identified by id, followed by b.

Example: A body heat load is applied to a square plate. A fixed temperature is imposed at boundary of the plate.

epatch 1
  geometry plate
  p1 0. 0. 0.
  p2 1. 0. 0.
  p3 1. 1. 0.
  p4 0. 1. 0.
  thickness 0.01
  eltype Q9.HEAT.CONDUCTION.2D
  ne1 4 ne2 4
  mid 1
end

material 1
  type heat
  k 0.7
end

ebc 1
  value 20. dof 1
  epatch 1 e1
  epatch 1 e2
  epatch 1 e3
  epatch 1 e4
end

nbc 1 type body_heat
  body_heat 10.e5 allelements
end

Application of Loads in Nonlinear Analysis

In nonlinear analysis, all loads are scaled by the load factor by default. This scaling can be altered by means of the sfactor and sfunction directives in the case command.

Examples:

  • Gravitational forces are applied to all elements. A load of 3.5g is applied:

    nbc 1 type accelerations
      accelerations 0.0 0.0 -9.806 # [m/s^2]
      allelements
    end
    
    case 1
      analysis nonlinear
      nbc 1 sfactor 3.5
    end
  • Mainting a constant loading throughout the analysis, can be achieved by means of the "sfunction 1" suffix. Note that this may cause convergence problems.

    nbc 1 sfunction 1
  • Specify a smooth load function. The parameter t is the load factor (between 0 and 1 by default):

    nbc 1 sfunction "0.5*(1-cos(PI*t))"

Additional information

case command: Activates natural boundary condition sets.

Node-local coordinate systems can be defined with the transformations command. The B2000++ coordinate systems are described in the programming manual.

Essential boundary conditions can be defined with the ebc command.