| 
template<typename S , typename X , typename  = std::enable_if_t<std::is_convertible_v<S, T>                               or std::is_convertible_v<S, std::span<const T>>>>  
requires std::is_convertible_v<std::remove_cvref_t<X>, std::vector<std::int32_t>> | 
|   | DirichletBC (const S &g, X &&dofs, std::shared_ptr< const FunctionSpace< U > > V) | 
|   | Create a representation of a Dirichlet boundary condition constrained by a scalar- or vector-valued constant.  
  | 
|   | 
template<typename X >  
requires std::is_convertible_v<std::remove_cvref_t<X>, std::vector<std::int32_t>> | 
|   | DirichletBC (std::shared_ptr< const Constant< T > > g, X &&dofs, std::shared_ptr< const FunctionSpace< U > > V) | 
|   | Create a representation of a Dirichlet boundary condition constrained by a fem::Constant.  
  | 
|   | 
template<typename X >  
requires std::is_convertible_v<std::remove_cvref_t<X>, std::vector<std::int32_t>> | 
|   | DirichletBC (std::shared_ptr< const Function< T, U > > g, X &&dofs) | 
|   | Create a representation of a Dirichlet boundary condition where the space being constrained is the same as the function that defines the constraint Function, i.e. share the same fem::FunctionSpace.  
  | 
|   | 
| template<typename X >  | 
|   | DirichletBC (std::shared_ptr< const Function< T, U > > g, X &&V_g_dofs, std::shared_ptr< const FunctionSpace< U > > V) | 
|   | Create a representation of a Dirichlet boundary condition where the space being constrained and the function that defines the constraint values do not share the same fem::FunctionSpace.  
  | 
|   | 
|   | DirichletBC (const DirichletBC &bc)=default | 
|   | 
|   | DirichletBC (DirichletBC &&bc)=default | 
|   | 
| 
  | ~DirichletBC ()=default | 
|   | Destructor. 
  | 
|   | 
| DirichletBC &  | operator= (const DirichletBC &bc)=default | 
|   | 
| 
DirichletBC &  | operator= (DirichletBC &&bc)=default | 
|   | Move assignment operator. 
  | 
|   | 
| std::shared_ptr< const FunctionSpace< U > >  | function_space () const | 
|   | 
| std::variant< std::shared_ptr< const Function< T, U > >, std::shared_ptr< const Constant< T > > >  | value () const | 
|   | 
| std::pair< std::span< const std::int32_t >, std::int32_t >  | dof_indices () const | 
|   | 
| void  | set (std::span< T > x, T scale=1) const | 
|   | 
| void  | set (std::span< T > x, std::span< const T > x0, T scale=1) const | 
|   | 
| void  | dof_values (std::span< T > values) const | 
|   | 
| void  | mark_dofs (std::span< std::int8_t > markers) const | 
|   | 
template<
dolfinx::scalar T, std::floating_point U = dolfinx::scalar_value_type_t<T>>
class dolfinx::fem::DirichletBC< T, U >
Object for setting (strong) Dirichlet boundary conditions 
\f$u = g \ \text{on} \ G\f$,
 where \(u\) is the solution to be computed, \(g\) is a function and \(G\) is a sub domain of the mesh.
A DirichletBC is specified by the function \(g\), the function space (trial space) and degrees of freedom to which the boundary condition applies. 
 
template<
dolfinx::scalar T, std::floating_point U = dolfinx::scalar_value_type_t<T>> 
 
template<typename S , typename X , typename  = std::enable_if_t<std::is_convertible_v<S, T>                               or std::is_convertible_v<S, std::span<const T>>>> 
requires std::is_convertible_v<std::remove_cvref_t<X>, std::vector<std::int32_t>>
 
Create a representation of a Dirichlet boundary condition constrained by a scalar- or vector-valued constant. 
- Precondition
 dofs must be sorted.
- Parameters
 - 
  
    | [in] | g | The boundary condition value (T or convertible to std::span<const T>)  | 
    | [in] | dofs | Degree-of-freedom block indices to be constrained. The indices must be sorted.  | 
    | [in] | V | The function space to be constrained  | 
  
   
- Note
 - Can be used only with point-evaluation elements. 
 
- 
The indices in 
dofs are for blocks, e.g. a block index corresponds to 3 degrees-of-freedom if the dofmap associated with g has block size 3.  
- 
The size of of 
g must be equal to the block size if V. Use the Function version if this is not the case, e.g. for some mixed spaces.