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 appliedload_case: Name of the load caseload_group (default=""): Load group nameload_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 nodereference_node (default=None): Node ID whose coordinate alongload_gradient_diraxis defines the zero-pressure level. IfNone, the highest/lowest point of the selected elements is used automaticallyreference_level (default=None): Explicit value (float) that defines the zero-pressure level. Takes precedence overreference_nodeif both are provided. If both areNone, 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()