Skip to content

Hydrostatic Pressure Load

A nested class within Load used to calculate and assign hydrostatic (linearly varying) pressure loads to plate element faces. It automatically computes the pressure at each node of the specified elements based on the gradient value, then internally creates Load.Pressure entries. All standard Load.Pressure methods (create, get, json, sync, delete, clear) are used to manage the resulting loads.

Constructor


Load.HydrostaticPressure(element, load_case, load_group="", load_dir='GX', load_gradient_dir='-Z', constant_intensity=0, gradient_intensity=0, reference_node=None, reference_level=None)

Calculates hydrostatic pressure at each node of the specified plate elements and populates Load.Pressure with the computed values.

Parameters

  • element: Element ID or list of Element IDs where the hydrostatic load is applied
  • load_case: Name of the load case
  • load_group (default=""): Load group name
  • load_dir (default='GX'): Direction of the applied pressure load. Options: 'GX', 'GY', 'GZ', 'LX', 'LY', 'LZ'
  • load_gradient_dir (default='-Z'): Direction along which depth increases. Options: '-X', '-Y', '-Z', 'X', 'Y', 'Z'. Negative sign indicates pressure increases in the negative axis direction (e.g. '-Z' means pressure increases downward)
  • constant_intensity (default=0): Uniform pressure added across all nodes regardless of depth (e.g. surface surcharge)
  • gradient_intensity (default=0): Unit weight used to calculate pressure gradient — pressure at each node
  • reference_node (default=None): Node ID whose coordinate along load_gradient_dir axis defines the zero-pressure level. If None, the highest/lowest point of the selected elements is used automatically
  • reference_level (default=None): Explicit value (float) that defines the zero-pressure level. Takes precedence over reference_node if both are provided. If both are None, the extreme point of the selected elements is used automatically

Methods


Since Load.HydrostaticPressure populates Load.Pressure internally, all operations are performed using Load.Pressure methods:

json

Returns JSON representation of all pressure loads (including those generated by HydrostaticPressure).

Load.HydrostaticPressure([1, 2, 3, 4], "TEST", "", "GY", "-Z", 0, 9.81)
print(Load.Pressure.json())

create

Sends the computed pressure loads to Civil NX or GEN NX.

Load.Pressure.create()

get

Fetches pressure loads from Civil NX or GEN NX.

print(Load.Pressure.get())

sync

Synchronizes pressure loads from Civil NX or GEN NX.

Load.Pressure.sync()

delete

Deletes all pressure loads from both Python and Civil NX.

Load.Pressure.delete()

clear

Clears all pressure load data locally in Python.

Load.Pressure.clear()

Examples

Basic Hydrostatic Pressure (Auto Reference Level)

The zero-pressure surface is automatically detected as the highest Z-coordinate among all nodes of the specified elements.

# Create Nodes
Element.Beam.SDL([0,0,0],[1,0,0],10,10,group='SG1')
Element.Beam.SDL([0,0,1],[1,0,0],10,10,group='SG2')
Element.Beam.SDL([0,0,3],[1,0,0],10,10,group='SG3')
Element.Plate.loftGroups(['SG1','SG2','SG3'],group="Plate")

Node.create()
Element.create()
Group.create()

Load_Case("USER", "Hydrostatic")
Load_Case.create()

plate_element_list = elemsInGroup("Plate")
Load.HydrostaticPressure(plate_element_list, "Hydrostatic", "", "GY", "-Z", 0, 9.81)
Load.Pressure.create()

With a Fixed Reference Level

Specify an explicit water surface elevation as the zero-pressure level.

#Create Node
Node(0, 0,  1)
Node(5, 0,  1)
Node(0, 0, -4)
Node(5, 0, -4)
Node.create()

# Create Plate Element
Element.Plate([1, 2, 4,3])
Element.create()

# Define Load Case
Load_Case("USER", "Water Pressure")
Load_Case.create()

# Water surface is at Z = 4.0 (above top of wall)

Load.HydrostaticPressure(
    element=1,
    load_case="Water Pressure",
    load_group="",
    load_dir="GY",
    load_gradient_dir="-Z",
    constant_intensity=0,
    gradient_intensity=10,
    reference_level=4.0
)
Load.Pressure.create()

With Complex Plate Mesh

Specify an explicit water surface elevation as the zero-pressure level.

#Create Plate Mesh
outerBoundary = [(-10,0,-10),(10,0,-10),(10,0,10),(-10,0,10)]
Element.Plate.fromPoints(outerBoundary,1,'Tri',sect=1,group='Pile Cap')

Node.create()
Element.create()

# Define Load Case
Load_Case("USER", "Pressure Load")
Load_Case.create()

elem = elemsInGroup("Pile Cap")

Load.HydrostaticPressure(
    element=elem,
    load_case="Pressure Load",
    load_group="",
    load_dir="GY",
    load_gradient_dir="-Z",
    gradient_intensity=10
)
Load.Pressure.create()