fedoo.constraint.PeriodicBC.initialize

PeriodicBC.initialize(problem, dic_closest_points_on_boundaries=None)

Initialize a periodic boundary condition object using several multi-point constraints. The constraint drivers are constructed as follows, depending on periodicity_type and dim: - For periodicity_type=”small_strain”:

  • dim=1:
    • global_dof is created for [‘E_xx’] (1 DOF).

    • node_cd = [problem.virtual_dof[‘E_xx’]]

    • var_cd = [‘E_xx’]

  • dim=2:
    • virtual_dof is created for [‘E_xx’, ‘E_yy’, ‘E_xy’] (3 DOF).

    • node_cd = [[problem.virtual_dof[‘E_xx’], problem.virtual_dof[‘E_xy’]], [problem.virtual_dof[‘E_xy’], problem.virtual_dof[‘E_yy’]]]

    • var_cd = [[‘Virtual’, ‘Virtual’], [‘Virtual’, ‘Virtual’]]

  • dim=3:
    • virtual_dof is created for [‘E_xx’, ‘E_yy’, ‘E_zz’, ‘E_xy’, ‘E_xz’, ‘E_yz’] (6 DOF).

    • node_cd = [[problem.virtual_dof[‘E_xx’], problem.virtual_dof[‘E_xy’], problem.virtual_dof[‘E_xz’]], [problem.virtual_dof[‘E_xy’], problem.virtual_dof[‘E_yy’], problem.virtual_dof[‘E_yz’]], [problem.virtual_dof[‘E_xz’], problem.virtual_dof[‘E_yz’], problem.virtual_dof[‘E_zz’]]]

    • var_cd = [[‘Virtual’, ‘Virtual’, ‘Virtual’], [‘Virtual’, ‘Virtual’, ‘Virtual’], [‘Virtual’, ‘Virtual’, ‘Virtual’]]

  • For periodicity_type=”finite_strain”:
    • dim=1:
      • virtual_dof is created for [‘DU_xx’] (1 DOF).

      • node_cd = [problem.virtual_dof[‘DU_xx’]]

      • var_cd = [‘Virtual’]

    • dim=2:
      • virtual_dof is created for [‘DU_xx’, ‘DU_xy’, ‘DU_yx’, ‘DU_yy’] (4 DOF).

      • node_cd = [[problem.virtual_dof[‘DU_xx’], problem.virtual_dof[‘DU_xy’]], [problem.virtual_dof[‘DU_yx’], problem.virtual_dof[‘DU_yy’]]]

      • var_cd = [[‘Virtual’, ‘Virtual’], [‘Virtual’, ‘Virtual’]]

    • dim=3:
      • virtual_dof is created for [‘DU_xx’, ‘DU_xy’, ‘DU_xz’, ‘DU_yx’, ‘DU_yy’, ‘DU_yz’, ‘DU_zx’, ‘DU_zy’, ‘DU_zz’] (9 DOF).

      • node_cd = [[problem.virtual_dof[‘DU_xx’], problem.virtual_dof[‘DU_xy’], problem.virtual_dof[‘DU_xz’]], [problem.virtual_dof[‘DU_yx’], problem.virtual_dof[‘DU_yy’], problem.virtual_dof[‘DU_yz’]], [problem.virtual_dof[‘DU_zx’], problem.virtual_dof[‘DU_zy’], problem.virtual_dof[‘DU_zz’]]]

      • var_cd = [[‘Virtual’, ‘Virtual’, ‘Virtual’], [‘Virtual’, ‘Virtual’, ‘Virtual’], [‘Virtual’, ‘Virtual’, ‘Virtual’]]

The node_cd and var_cd structures define the virtual DOFs and their associated variables for the constraint drivers, depending on the periodicity type and dimension.