discretizes the part with dependence dep of the boundary condition data bcdata based on method data mdata and solution data sd to generate a DiscretizedBoundaryConditionData object.


  • DiscretizeBoundaryConditions discretizes partial differential equation boundary conditions.
  • DiscretizeBoundaryConditions returns a DiscretizedBoundaryConditionData object.
  • The boundary condition data bcdata is a BoundaryConditionData object generated by InitializeBoundaryConditions.
  • The method data mdata is a PDE method data object, such as FEMMethodData, generated through InitializePDEMethodData.
  • The dependence dep can be one of the following:
  • "Discrete"linear coefficients depending on discrete variables
    "IndexedDiscrete"linear coefficients depending on indexed discrete variables
    "Parametric"linear coefficients depending on parameters but not on time
    "Stationary"linear coefficients depending on spatial independent variables but not on time or parameters
  • linear coefficients depending on time
  • DiscretizeBoundaryConditions[bcs,mdata,sd] is equivalent to DiscretizeBoundaryConditions[bcs,mdata,sd,"Stationary"].
  • The "Space" component of vd and sd should be set to the spatial variables and the spatial mesh represented as an NumericalRegion object, respectively.
  • The "DependentVariables" component of vd should be set to the list of unknown function names without arguments.
  • For time-dependent problems, the "Time" component of vd and sd should be set to the temporal variable and the current integration time, respectively.
  • For time-dependent problems with discrete or indexed discrete variables that only change at discrete times during the time integration, the "Discrete" and/or "IndexedDiscrete" component of vd and sd should be set to the discrete variables and the initial discrete values, respectively.
  • For problems with parameters that do not change during the solution process, the "Parameters" component of vd and sd should be set to the parametric variables and the initial parametric values, respectively.
  • The following option can be given:
  • "PartialBoundaryAssembly"Automaticwhich parts of the boundary to assemble


open allclose all

Basic Examples  (1)

Load the finite element package:

Set up a NumericalRegion:

Set up variable and solution data:

Set up boundary condition data:

Discretize initialized boundary conditions based on method data and solution data:

Scope  (1)

The default is to discretize the stationary components:

Options  (1)

"PartialBoundaryAssembly"  (1)

To partially discretize boundary conditions, the boundary mesh elements and point mesh elements need to be split into the same number of groups:

Visualize the mesh. The blue and green edge elements each form a boundary element group, and so do the orange and red point elements:

Set up a NumericalRegion, variable and solution data, and method data:

Initialize a DirichletCondition on x=0 and a NeumannValue on x=1:

Partially discretize the boundary condition over the boundary element groups:

Initialize and discretize a PDE:

Extract the system matrices and deploy each of the partially assembled boundary conditions:

For comparison, discretize the boundary conditions over the entire boundary:

Verify that the load vector and stiffness matrix contribution add up:

Verify that the system matrices are the same: