SolidBoundaryLoadValue[pred,vars,pars]
represents a boundary load condition for PDEs with predicate pred indicating where it applies, with model variables vars and global parameters pars.
SolidBoundaryLoadValue[pred,vars,pars,lkeys]
represents a boundary load condition with local parameters specified in pars[lkey].
SolidBoundaryLoadValue
SolidBoundaryLoadValue[pred,vars,pars]
represents a boundary load condition for PDEs with predicate pred indicating where it applies, with model variables vars and global parameters pars.
SolidBoundaryLoadValue[pred,vars,pars,lkeys]
represents a boundary load condition with local parameters specified in pars[lkey].
Details
- SolidBoundaryLoadValue specifies a boundary condition for SolidMechanicsPDEComponent and is used as part of the modeling equation:
- SolidBoundaryLoadValue is typically used to apply a pressure or force at a boundary.
- SolidBoundaryLoadValue forces the movement of a solid with dependent variables
,
and
, independent variables
and time variable
. - Stationary variables vars are vars={{u[x1,…,xn],v[x1,…,xn],…},{x1,…,xn}}.
- Time-dependent variables vars are vars={{u[t,x1,…,xn],v[t,x1,…,xn],…},t,{x1,…,xn}}.
- Frequency-dependent variables vars are vars={{u[x1,…,xn],v[x1,…,xn],…},ω,{x1,…,xn}}.
- Model parameters pars are specified as for SolidMechanicsPDEComponent.
- The following model parameters pars can be given:
-
parameter default symbol "DampingConstant" 0
, damping constant in ![TemplateBox[{InterpretationBox[, 1], {"s", , "N", , "/", , "m"}, second newtons per meter, {{(, {"Newtons", , "Seconds"}, )}, /, {(, "Meters", )}}}, QuantityTF] TemplateBox[{InterpretationBox[, 1], {"s", , "N", , "/", , "m"}, second newtons per meter, {{(, {"Newtons", , "Seconds"}, )}, /, {(, "Meters", )}}}, QuantityTF]](Files/SolidBoundaryLoadValue.en/9.png)
"Force" {0,0,0}
, force in 
"NormalForce" 0
, force in
normal to surface"NormalPressure" 0
, pressure in
normal to surface"Pressure" {0,0,0}
, pressure in 
"SpringConstant" 0
, spring constant in ![TemplateBox[{InterpretationBox[, 1], {"N", , "/", , "m"}, newtons per meter, {{(, "Newtons", )}, /, {(, "Meters", )}}}, QuantityTF] TemplateBox[{InterpretationBox[, 1], {"N", , "/", , "m"}, newtons per meter, {{(, "Newtons", )}, /, {(, "Meters", )}}}, QuantityTF]](Files/SolidBoundaryLoadValue.en/19.png)
"Thickness" -
, thickness in 
- Forces are automatically converted to a pressure.
- Forces or pressures acting normal to a surface can be modeled with NeumannBoundaryUnitNormal.
- Specifying a spring constant
adds a force on the boundary
. - Specifying a damping constant
adds a force on the boundary
. - In two dimensions, the parameter "Thickness" is taken into account to convert the pressure from units
to
. - A boundary load value can be used with:
-
analysis type applicable Transient Yes Frequency Response Yes Eigenfrequency No Stationary Yes - SolidDisplacementCondition evaluates to a NeumannValue.
- The boundary predicate pred can be specified as in NeumannValue.
Examples
open all close allBasic Examples (1)
Compute the deflection of a spoon held fixed at the end and with a force applied at the top in the negative
direction. Set up variables and parameters:
vars = {{u[x, y, z], v[x, y, z], w[x, y, z]}, {x, y, z}};
pars = <|"Material" -> Entity["Element", "Silver"]|>;Set up the PDE and the geometry:
spoon = \!\(\*Graphics3DBox[«5»]\);
displacement = NDSolveValue[{SolidMechanicsPDEComponent[vars, pars] == SolidBoundaryLoadValue[x >= 1 / 10, vars, pars, <|"Force" -> {0, 0, Quantity[-100, "Newtons"]}|>],
SolidFixedCondition[x <= -1 / 10, vars, pars]}, {u[x, y, z], v[x, y, z], w[x, y, z]}, {x, y, z}∈spoon];VectorDisplacementPlot3D[displacement, {x, y, z}∈spoon]Scope (9)
Create a pressure boundary load:
SolidBoundaryLoadValue[x == 0, {{u[x, y, z], v[x, y, z], w[x, y, z]}, {x, y, z}}, <|"Pressure" -> {1, 0, 2}|>]Create a pressure boundary load normal to a surface:
SolidBoundaryLoadValue[x == 0, {{u[x, y, z], v[x, y, z], w[x, y, z]}, {x, y, z}}, <|"NormalPressure" -> 10|>]This is equivalent to specifying:
SolidBoundaryLoadValue[x == 0, {{u[x, y, z], v[x, y, z], w[x, y, z]}, {x, y, z}}, <|"Pressure" -> 10 * {Indexed[NeumannBoundaryUnitNormal[{x, y, z}], 1], Indexed[NeumannBoundaryUnitNormal[{x, y, z}], 2], Indexed[NeumannBoundaryUnitNormal[{x, y, z}], 3]}|>]SolidBoundaryLoadValue[x == 0, {{u[x, y, z], v[x, y, z], w[x, y, z]}, {x, y, z}}, <|"Force" -> {1, 0, 2}|>]Create a force boundary load normal to a surface:
SolidBoundaryLoadValue[x == 0, {{u[x, y, z], v[x, y, z], w[x, y, z]}, {x, y, z}}, <|"NormalForce" -> 10|>];This is equivalent to specifying:
SolidBoundaryLoadValue[x == 0, {{u[x, y, z], v[x, y, z], w[x, y, z]}, {x, y, z}}, <|"Force" -> 10 * {Indexed[NeumannBoundaryUnitNormal[{x, y, z}], 1], Indexed[NeumannBoundaryUnitNormal[{x, y, z}], 2], Indexed[NeumannBoundaryUnitNormal[{x, y, z}], 3]}|>];SolidBoundaryLoadValue[0 <= x <= 0.1 && y == 0, {{u[x, y], v[x, y]}, {x, y}}, <|"YoungModulus" -> 200 * 10 ^ 9, "PoissonRatio" -> 1 / 3, "Thickness" -> 1, "SolidMechanicsModelForm" -> "PlaneStrain"|>, <|"SpringConstant" -> Quantity[10, "Kilonewtons"/"Millimeters"]|>]SolidBoundaryLoadValue[0 <= x <= 0.1 && y == 0, {{u[t, x, y], v[t, x, y]}, t, {x, y}}, <|"MassDensity" -> 7850, "YoungModulus" -> 200 * 10 ^ 9, "PoissonRatio" -> 1 / 3, "Thickness" -> 1, "SolidMechanicsModelForm" -> "PlaneStrain"|>, <|"DampingConstant" -> Quantity[10, ("Newtons"*"Seconds")/"Meters"]|>]Create a time-dependent boundary load:
SolidBoundaryLoadValue[x == 0, {{u[t, x, y, z], v[t, x, y, z], w[t, x, y, z]}, t, {x, y, z}}, <|"Force" -> {0, 0, -Quantity[1, "Millinewtons"] * Sin[t]}|>]Create a time-dependent parametric boundary load:
SolidBoundaryLoadValue[x == 0, {{u[t, x, y, z], v[t, x, y, z], w[t, x, y, z]}, t, {x, y, z}}, <|"Force" -> {0, b, Quantity[-100, "Newtons"] * c}|>]Compute the deflection of a beam held fixed at the left end and with a pressure applied in the negative
axis at the right end:
vars = {{u[x, y, z], v[x, y, z], w[x, y, z]}, {x, y, z}};
pars = <|"Material" -> ["Iron"]|>;Set up a geometry and the PDE:
Ω = Cuboid[{0, 0, 0}, {1, 2 / 10, 1 / 10}];
model = SolidMechanicsPDEComponent[vars, pars];
Subscript[Γ, wall] = SolidFixedCondition[x == 0, vars, pars];Solve the equation with a pressure load:
displacementFromPressure = NDSolveValue[{
model == SolidBoundaryLoadValue[x == 1, vars, pars, <|"Pressure" -> {0, 0, Quantity[-(10000/0.02), "Pascals"]}|>], Subscript[Γ, wall]}, {u, v, w}, {x, y, z}∈Ω];Solve the equation with a force load:
displacementFromForce = NDSolveValue[{
model == SolidBoundaryLoadValue[x == 1, vars, pars, <|"Force" -> {0, 0, Quantity[-10000, "Newtons"]}|>], Subscript[Γ, wall]}, {u, v, w}, {x, y, z}∈Ω];Because the surface area that the pressure and force act on is 0.02
and since the force is equal to pressure per area
, the displacements are the same:
Plot[displacementFromPressure[[3]][1, 0.1, z] - displacementFromForce[[3]][1, 0.1, z], {z, 0, 0.1}]Applications (2)
Apply a pressure normal to the inside of a pipe. The model domain
is a quarter–cross section through a pipe, with matching units of an inner radius
, an outer radius
and a thickness
. At the left boundary, a symmetry constraint is added such that the pipe can move up and down, and at the right bottom, a second symmetry constraint is added such that the pipe can move left and right. A pressure of
is acting within the pipe in an outward direction. The remaining boundaries are free to move. Young's modulus is given as
and Poisson's ratio is
.
r1 = 5;r2 = 15;
Ω = Annulus[{0, 0}, {r1, r2}, {0, π / 2}];Define the model variables and parameters:
vars = {{u[x, y], v[x, y]}, {x, y}};
pars = <|"YoungModulus" -> 30 * 10 ^ 3, "PoissonRatio" -> 3 / 10, "Thickness" -> 1, "SolidMechanicsModelForm" -> "PlaneStrain"|>;Set up a 2D steady-state solid mechanics model:
op = SolidMechanicsPDEComponent[vars, pars]Specify a symmetry condition on the left in the
direction:
Subscript[Γ, sym1] = SolidDisplacementCondition[x == 0, vars, pars, <|"Displacement" -> {0, None}|>]Specify a symmetry condition on the bottom in the
direction:
Subscript[Γ, sym2] = SolidDisplacementCondition[y == 0, vars, pars, <|"Displacement" -> {None, 0}|>]Set up a boundary load acting inside in an outward direction:
Subscript[Γ, load] = SolidBoundaryLoadValue[x ^ 2 + y ^ 2 <= r1 ^ 2, vars, pars, <|"Pressure" -> -20 * {Indexed[NeumannBoundaryUnitNormal[{x, y}], 1], Indexed[NeumannBoundaryUnitNormal[{x, y}], 2]}|>]Solve the PDE and compute the strain and stress:
pde = {op == Subscript[Γ, load], Subscript[Γ, sym1], Subscript[Γ, sym2]};
displacement = NDSolveValue[pde, {u[x, y], v[x, y]}, {x, y}∈Ω];Visualize an exaggeration of the deformation:
VectorDisplacementPlot[displacement, {x, y}∈Ω]Sometimes a fixed-condition boundary is too rigid a boundary condition. For example, when a beam is pressed into soil, he soil will give in. This giving in can be modeled with a spring at the boundary.
Define the model geometry, variables and parameters:
Ω = Rectangle[{0, 0}, {0.5, 0.01}];
vars = {{u[x, y], v[x, y]}, {x, y}};
pars = <|"YoungModulus" -> 200 * 10 ^ 9, "PoissonRatio" -> 1 / 3, "Thickness" -> 1, "SolidMechanicsModelForm" -> "PlaneStrain"|>;Define the operator, a fixed condition and a load:
op = SolidMechanicsPDEComponent[vars, pars];
fixed = SolidFixedCondition[0 <= x <= 0.1 && y == 0, vars, pars];
load = SolidBoundaryLoadValue[0.15 <= x <= 0.35 && y == 0.01, vars, pars, <|"Pressure" -> {0, -10 ^ 4}|>];springBC = SolidBoundaryLoadValue[0.4 <= x <= 0.5 && y == 0, vars, pars, <|"SpringConstant" -> Quantity[10, "Kilonewtons" / "Millimeters"]|>];displacement = NDSolveValue[{op == load + springBC, fixed}, vars[[1]], {x, y}∈Ω];Show[Graphics[...], Graphics[...], VectorDisplacementPlot[displacement, {x, y}∈Ω]]Solve and visualize the equation without the spring:
displacement = NDSolveValue[{op == load, fixed}, vars[[1]], {x, y}∈Ω];
Show[Graphics[...], VectorDisplacementPlot[displacement, {x, y}∈Ω]]Possible Issues (1)
In the case where boundary load values have predicates that do not overlap with the region boundary, results may be inaccurate. Set up a PDE:
vars = {{u[x, y, z], v[x, y, z], w[x, y, z]}, {x, y, z}};pars = <|"YoungModulus" -> 210000, "PoissonRatio" -> 0.3, "MassDensity" -> 7.85 * 10^-6|>;
model = SolidMechanicsPDEComponent[vars, pars];
Subscript[Γ, wall] = SolidFixedCondition[x == 0, vars, pars];Set up a boundary load with a discontinuity at
and at
:
Subscript[Γ, load] = SolidBoundaryLoadValue[z == 40 && 18 <= y <= 22, vars, pars, <|"Pressure" -> {0, 0, -10}|>];If the geometry does not reflect the discontinuity in the boundary condition, the result will be less accurate. The solution will be more accurate if the region
reflects the discontinuities at
and at
. Set up two meshes:
ΩBad = Cuboid[{0, 0, 0}, {200, 40, 40}];
ΩGood = RegionUnion[RegionBoundary /@ {Cuboid[{0, 0, 0}, {200, 18, 40}], Cuboid[{0, 18, 0}, {200, 22, 40}], Cuboid[{0, 22, 0}, {200, 40, 40}]}];Solve the equation with two different geometries:
method = Method -> {"FiniteElement", "MeshOptions" -> {"MeshElementType" -> "TetrahedronElement", "MaxCellMeasure" -> 50}};
inacurrate = NDSolveValue[{model == Subscript[Γ, load], Subscript[Γ, wall]}, {u, v, w}, {x, y, z}∈ΩBad, method];
accurate = NDSolveValue[{model == Subscript[Γ, load], Subscript[Γ, wall]}, {u, v, w}, {x, y, z}∈ΩGood, method];Compare the
direction displacement along
and
:
Plot[{inacurrate[[3]][x, 20, 20], accurate[[3]][x, 20, 20]}, {x, 0, 200}, PlotLegends -> {"Inacurrate", "Accurate"}]Related Guides
Text
Wolfram Research (2021), SolidBoundaryLoadValue, Wolfram Language function, https://reference.wolfram.com/language/ref/SolidBoundaryLoadValue.html (updated 2026).
CMS
Wolfram Language. 2021. "SolidBoundaryLoadValue." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2026. https://reference.wolfram.com/language/ref/SolidBoundaryLoadValue.html.
APA
Wolfram Language. (2021). SolidBoundaryLoadValue. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SolidBoundaryLoadValue.html
BibTeX
@misc{reference.wolfram_2026_solidboundaryloadvalue, author="Wolfram Research", title="{SolidBoundaryLoadValue}", year="2026", howpublished="\url{https://reference.wolfram.com/language/ref/SolidBoundaryLoadValue.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_solidboundaryloadvalue, organization={Wolfram Research}, title={SolidBoundaryLoadValue}, year={2026}, url={https://reference.wolfram.com/language/ref/SolidBoundaryLoadValue.html}, note=[Accessed: 12-June-2026]}