Mixed Dirichlet-Neumann axis aligned symmetry plane.  
 | 
| subroutine  | symmetry_init (this, coef, json) | 
|   | Constructor.  
  | 
|   | 
| subroutine  | symmetry_init_from_components (this, coef) | 
|   | Constructor from components.  
  | 
|   | 
| subroutine  | symmetry_finalize (this, only_facets) | 
|   | Finalize. Marks the appropriate faces for application of a homogeneous Dirchlet condition based on the direction of the axis normal.  
  | 
|   | 
| subroutine  | symmetry_get_normal_axis (this, sx, sy, sz, facet, el) | 
|   | Compute the average normal for a facet of an element.  
  | 
|   | 
| subroutine  | symmetry_apply_scalar (this, x, n, time, strong) | 
|   | No-op scalar apply.  
  | 
|   | 
| subroutine  | symmetry_apply_vector (this, x, y, z, n, time, strong) | 
|   | Apply symmetry conditions (axis aligned)  
  | 
|   | 
| subroutine  | symmetry_apply_scalar_dev (this, x_d, time, strong, strm) | 
|   | No-op scalar apply (device version)  
  | 
|   | 
| subroutine  | symmetry_apply_vector_dev (this, x_d, y_d, z_d, time, strong, strm) | 
|   | Apply symmetry conditions (axis aligned) (device version)  
  | 
|   | 
| subroutine  | symmetry_free (this) | 
|   | Destructor.  
  | 
|   | 
◆ symmetry_apply_scalar()
  
  
      
        
          | subroutine symmetry::symmetry_apply_scalar  | 
          ( | 
          class(symmetry_t), intent(inout)  | 
          this,  | 
         
        
           | 
           | 
          real(kind=rp), dimension(n), intent(inout)  | 
          x,  | 
         
        
           | 
           | 
          integer, intent(in)  | 
          n,  | 
         
        
           | 
           | 
          type(time_state_t), intent(in), optional  | 
          time,  | 
         
        
           | 
           | 
          logical, intent(in), optional  | 
          strong  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
private   | 
  
 
- Parameters
 - 
  
    | x | The field for which to apply the boundary condition.  | 
    | n | The size of x.  | 
    | time | Current time state.  | 
    | strong | Whether we are setting a strong or a weak bc.  | 
  
   
Definition at line 206 of file symmetry.f90.
 
 
◆ symmetry_apply_scalar_dev()
  
  
      
        
          | subroutine symmetry::symmetry_apply_scalar_dev  | 
          ( | 
          class(symmetry_t), intent(inout), target  | 
          this,  | 
         
        
           | 
           | 
          type(c_ptr), intent(inout)  | 
          x_d,  | 
         
        
           | 
           | 
          type(time_state_t), intent(in), optional  | 
          time,  | 
         
        
           | 
           | 
          logical, intent(in), optional  | 
          strong,  | 
         
        
           | 
           | 
          type(c_ptr), intent(inout)  | 
          strm  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
private   | 
  
 
- Parameters
 - 
  
    | x_d | Device pointer to the field.  | 
    | time | The time state.  | 
    | strong | Whether we are setting a strong or a weak bc.  | 
  
   
Definition at line 249 of file symmetry.f90.
 
 
◆ symmetry_apply_vector()
  
  
      
        
          | subroutine symmetry::symmetry_apply_vector  | 
          ( | 
          class(symmetry_t), intent(inout)  | 
          this,  | 
         
        
           | 
           | 
          real(kind=rp), dimension(n), intent(inout)  | 
          x,  | 
         
        
           | 
           | 
          real(kind=rp), dimension(n), intent(inout)  | 
          y,  | 
         
        
           | 
           | 
          real(kind=rp), dimension(n), intent(inout)  | 
          z,  | 
         
        
           | 
           | 
          integer, intent(in)  | 
          n,  | 
         
        
           | 
           | 
          type(time_state_t), intent(in), optional  | 
          time,  | 
         
        
           | 
           | 
          logical, intent(in), optional  | 
          strong  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
private   | 
  
 
- Parameters
 - 
  
    | x | The x comp of the field for which to apply the bc.  | 
    | y | The y comp of the field for which to apply the bc.  | 
    | z | The z comp of the field for which to apply the bc.  | 
    | n | The size of x, y, and z.  | 
    | time | Current time state.  | 
    | strong | Whether we are setting a strong or a weak bc.  | 
  
   
Definition at line 221 of file symmetry.f90.
 
 
◆ symmetry_apply_vector_dev()
  
  
      
        
          | subroutine symmetry::symmetry_apply_vector_dev  | 
          ( | 
          class(symmetry_t), intent(inout), target  | 
          this,  | 
         
        
           | 
           | 
          type(c_ptr), intent(inout)  | 
          x_d,  | 
         
        
           | 
           | 
          type(c_ptr), intent(inout)  | 
          y_d,  | 
         
        
           | 
           | 
          type(c_ptr), intent(inout)  | 
          z_d,  | 
         
        
           | 
           | 
          type(time_state_t), intent(in), optional  | 
          time,  | 
         
        
           | 
           | 
          logical, intent(in), optional  | 
          strong,  | 
         
        
           | 
           | 
          type(c_ptr), intent(inout)  | 
          strm  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
private   | 
  
 
- Parameters
 - 
  
    | x_d | Device pointer to the values to be applied for the x comp.  | 
    | y_d | Device pointer to the values to be applied for the y comp.  | 
    | z_d | Device pointer to the values to be applied for the z comp.  | 
    | time | The time state.  | 
    | strong | Whether we are setting a strong or a weak bc.  | 
  
   
Definition at line 263 of file symmetry.f90.
 
 
◆ symmetry_finalize()
◆ symmetry_free()
◆ symmetry_get_normal_axis()
  
  
      
        
          | subroutine symmetry::symmetry_get_normal_axis  | 
          ( | 
          class(symmetry_t), intent(inout), target  | 
          this,  | 
         
        
           | 
           | 
          real(kind=rp), intent(out)  | 
          sx,  | 
         
        
           | 
           | 
          real(kind=rp), intent(out)  | 
          sy,  | 
         
        
           | 
           | 
          real(kind=rp), intent(out)  | 
          sz,  | 
         
        
           | 
           | 
          integer, intent(in)  | 
          facet,  | 
         
        
           | 
           | 
          integer, intent(in)  | 
          el  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
private   | 
  
 
The normal direction is the one for which s is 0, so e.g for a y normal, sx and sz will be unity, and sy will be 0. 
Definition at line 153 of file symmetry.f90.
 
 
◆ symmetry_init()
- Parameters
 - 
  
    | [in] | coef | The SEM coefficients.  | 
    | [in,out] | json | The JSON object configuring the boundary condition.  | 
  
   
Definition at line 76 of file symmetry.f90.
 
 
◆ symmetry_init_from_components()
- Parameters
 - 
  
    | [in] | coef | The SEM coefficients.  | 
  
   
Definition at line 87 of file symmetry.f90.