Most of the solvers have some boundary conditions. They differ by name or type, but all share the same structure: some value is set at mesh points in some region (usually the edge of the whole geometry, or the edge of some geometrical object. Hence, the structure of boundary conditions is usually the same and looks as follows [1]:
<boundary_conditions>
Some boundary conditions specifications.
<condition>
¶Specification of one boundary condition.
Attributes: 


One of the following tags can be used instead of the place
attribute if more detailed description of the boundary condition location is required:
<place>
¶Set location of boundary condition. Its attributes are meshspecific. Below there are most common examples of attribute sets for rectangular or triangular meshes:
Boundary conditions at the side of some object or the whole mesh:
Attributes: 


Boundary conditions at some line (2D meshes) [supported by rectangular meshes only]:
Attributes: 


<union>
¶Set location of boundary condition to union of two places given as child nodes (each must be of type: <place>
, <union>
, <intersection>
, or <difference>
).
<intersection>
¶Set location of boundary condition to intersection of two places given as child nodes (each must be of type: <place>
, <union>
, <intersection>
, or <difference>
).
<difference>
¶Set location of boundary condition to difference of two places given as child nodes (each must be of type: <place>
, <union>
, <intersection>
, or <difference>
).
Footnotes
[1]  In some cases where structure of boundary conditions description is different, it is shown in the reference of particular solver. 