DirichletCondition
DirichletCondition[beqn,pred]
represents a Dirichlet boundary condition given by equation beqn, satisfied on the part of the boundary of the region given to NDSolve and related functions where pred is True.
Details
- DirichletCondition is used together with differential equations to describe boundary conditions in functions such as DSolve, NDSolve, DEigensystem, NDEigensystem, and GreenFunction.
- In NDSolve[eqns,{u1,u2,…},{x1,x2,…}∈Ω], xi are the independent variables, uj are the dependent variables, and Ω is the region with boundary ∂Ω.
- Locations where Dirichlet conditions might be specified are shown in blue. They appear (in light blue) on the boundary ∂Ω of the region Ω and also possibly (in dark blue) on interior boundaries of Ω, and they specify that solution values at those points satisfy the condition beqn.
- DirichletCondition expressions should be included with the equations eqns.
- Any logical combination of equalities and inequalities in the independent variables x1, … may be used for the predicate pred.
- DirichletCondition[u1r,pred] is used to prescribe that values of ui on the boundary ∂Ω should be r. In general, the boundary equation beqn needs to be affine linear in the dependent variables, i.e. h1 u1+…r, where hi and r can depend on any of the independent variables {x1,x2,…}.
- For time-dependent equations, both beqn and pred may depend on time, and pred is only considered for spatial boundaries.
- Typically, at least one Dirichlet-type boundary condition needs to be specified to make the differential equation uniquely solvable. Dirichlet conditions are also called essential boundary conditions.
- Dirichlet conditions are enforced at each point in the discretization of ∂Ω where pred is True.
- DirichletCondition[{eqn1,eqn2,…},pred] is equivalent to {DirichletCondition[eqn1,pred],DirichletCondition[eqn2,pred],…}.
- DirichletCondition[eqn,{pred1,pred2,…}] is equivalent to {DirichletCondition[eqn,pred1],DirichletCondition[eqn,pred2],…}.
- For finite element approximations, DirichletCondition always operates on nodes, never on edges or faces.
- A DirichletCondition and a NeumannValue should not be specified on the same part of the boundary.
- Multiple DirichletCondition instances must not overlap on the boundary.
Examples
open allclose allBasic Examples (2)
Scope (4)
Set multiple Dirichlet conditions, on the inner boundary and on the outer boundary, and solve the Laplace equation over the region:
Solve on a region with a hole and Dirichlet conditions. Specify the region:
Plot the density of the solution:
Find the wave equation Green function constrained to 0 at the endpoints on an interval of length d:
Specify a DirichletCondition partially inside a region. Create and visualize a boundary mesh:
Solve a PDE with a DirichletCondition set on :
Applications (11)
1D Problems (1)
2D Problems (1)
Time-Dependent Problems (4)
Solve a time-dependent problem with initial and boundary conditions:
Solve the time-dependent problem with boundary conditions specified as Dirichlet boundary conditions:
Solve a time-dependent problem with initial and time-dependent boundary conditions:
Solve a 2D time-dependent heat flow problem with initial and boundary conditions specification:
Plot temperature distribution at t==0.5:
Viewed over time, the temperature distribution rapidly dissipates toward zero:
Find the vibrations of a circular drumhead clamped down at the edges:
Multiple Boundary Conditions (1)
Boundary Conditions for Coupled Systems (3)
Specify coupled differential equations:
Specify Dirichlet boundary conditions for both equations:
Solve the system of equations:
Specify coupled equations and :
Specify two Dirichlet boundary conditions for each dependent variable:
Solve coupled equations over a disk:
Specify a plane stress operator with Young's modulus Y and Poison's ratio ν over a bar:
Compute the deformation of a rod that is fixated at the left edge and moved to a negative position in the direction at the right edge but held at its direction:
Contour plot the deformation of the bar in the direction:
Properties & Relations (1)
Possible Issues (6)
Specifying at least one Dirichlet-type boundary condition is essential:
Specifying a Dirichlet condition gives the expected result:
Specifying a Robin boundary condition as an essential condition can be sufficient:
When boundary conditions have no intersection with the boundary, a warning is generated and the non-intersecting boundary, when possible, is ignored:
Adjusting the boundary corrects this:
Specifying True as a predicate will apply the value of a DirichletCondition at all boundaries, including internal material boundaries.
Generate and visualize a mesh with an internal boundary:
Set up an equation for a multi-material domain:
Solve the equation where all values of the dependent variable at all the boundaries are set to zero:
Solve the equation where values of the dependent variable at the outer boundaries are set to zero:
Specifying True as a predicate will apply the value of a DirichletCondition at all spatial boundaries:
Inspect that the boundary conditions are satisfied at both ends. The initial condition is also satisfied. There is no boundary condition at , since the time domain is not considered as a spatial boundary:
NDSolve by default treats this PDE as a time-dependent problem. A purely spatial discretization can be specified using Method->{"PDEDiscretization"->"FiniteElement"}:
When solving the same PDE as a purely spatial problem, the DirichletCondition has been applied at all of the boundaries:
Sometimes an imported mesh or even a generated mesh may have numerical imprecision. For example, an intended region is a rectangle , but the discretized version of the region has an imprecision such that it is actually . If in such cases a predicate of the form is specified, an error message will be generated because does not exist. Consider this constructed example:
One way to deal with this is to formulate the predicate as a bound: , where is the thickness of the bound:
This technique can also be used for more complicated predicates such as circular parts of a boundary, where the numerical precision issue is more likely to come up.
Text
Wolfram Research (2014), DirichletCondition, Wolfram Language function, https://reference.wolfram.com/language/ref/DirichletCondition.html (updated 2022).
CMS
Wolfram Language. 2014. "DirichletCondition." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2022. https://reference.wolfram.com/language/ref/DirichletCondition.html.
APA
Wolfram Language. (2014). DirichletCondition. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/DirichletCondition.html