parameters: (self, Model, settings)
docstring: The default constructor of the class
  
          Keyword arguments:
          self -- It signifies an instance of a class.
          Model -- the container of the different model parts.
          settings -- Kratos parameters containing solver settings.
docstring_summary: The default constructor of the class
docstring_tokens: The default constructor of the class
function: def __init__(self, Model, settings):
          """ The default constructor of the class
  
          Keyword arguments:
          self -- It signifies an instance of a class.
          Model -- the container of the different model parts.
          settings -- Kratos parameters containing solver settings.
          """
  
          # NOTE: Due to recursive check "contact_model_part" and "assume_master_slave" requires to pre-define configurations, if more that 10 pairs of contact are required, just add. I assume nobody needs that much
          # Settings string in json format
          default_parameters = KM.Parameters("""
          {
              "help"                          : "This class is used in order to compute the contact using a mortar ALM formulation. This class constructs the model parts containing the contact conditions and initializes parameters and variables related with the contact. The class creates search utilities to be used to create the contact pairs",
              "mesh_id"                       : 0,
              "model_part_name"               : "Structure",
              "contact_model_part"            : {"0":[],"1":[],"2":[],"3":[],"4":[],"5":[],"6":[],"7":[],"8":[],"9":[]},
              "assume_master_slave"           : {"0":[],"1":[],"2":[],"3":[],"4":[],"5":[],"6":[],"7":[],"8":[],"9":[]},
              "contact_property_ids"          : {"0": 0,"1": 0,"2": 0,"3": 0,"4": 0,"5": 0,"6": 0,"7": 0,"8": 0,"9": 0},
              "friction_coefficients"         : {"0": 0.0,"1": 0.0,"2": 0.0,"3": 0.0,"4": 0.0,"5": 0.0,"6": 0.0,"7": 0.0,"8": 0.0,"9": 0.0},
              "contact_type"                  : "Frictionless",
              "not_normal_update_frictional"  : false,
              "interval"                      : [0.0,"End"],
              "normal_variation"              : "no_derivatives_computation",
              "frictional_law"                : "Coulomb",
              "tangent_factor"                : 1.0e-3,
              "operator_threshold"            : 1.0e-3,
              "slip_augmentation_coefficient" : 0.0,
              "slip_threshold"                : 2.0e-2,
              "zero_tolerance_factor"         : 1.0,
              "integration_order"             : 2,
              "consider_tessellation"         : false,
              "normal_check_proportion"       : 0.1,
              "clear_inactive_for_post"       : true,
              "slip_step_reset_frequency"     : 1,
              "search_parameters"             : {
                  "type_search"                         : "in_radius_with_obb",
                  "simple_search"                       : false,
                  "adapt_search"                        : false,
                  "search_factor"                       : 3.5,
                  "active_check_factor"                 : 0.01,
                  "max_number_results"                  : 1000,
                  "bucket_size"                         : 4,
                  "dynamic_search"                      : false,
                  "static_check_movement"               : false,
                  "database_step_update"                : 1,
                  "normal_orientation_threshold"        : 1.0e-1,
                  "consider_gap_threshold"              : false,
                  "debug_mode"                          : false,
                  "predict_correct_lagrange_multiplier" : false,
                  "check_gap"                           : "check_mapping",
                  "octree_search_parameters" : {
                      "bounding_box_factor"             : 0.1,
                      "debug_obb"                       : false,
                      "OBB_intersection_type"           : "SeparatingAxisTheorem",
                      "build_from_bounding_box"         : true,
                      "lower_bounding_box_coefficient"  : 0.0,
                      "higher_bounding_box_coefficient" : 1.0
                  }
              },
              "advance_explicit_parameters"  : {
                  "manual_max_gap_theshold"  : false,
                  "automatic_gap_factor"     : 1.0e-1,
                  "max_gap_threshold"        : 5.0e-2,
                  "max_gap_factor"           : 1.0e2,
                  "logistic_exponent_factor" : 6.0
              },
              "advance_ALM_parameters" : {
                  "manual_ALM"                  : false,
                  "stiffness_factor"            : 1.0,
                  "penalty_scale_factor"        : 1.0,
                  "use_scale_factor"            : true,
                  "penalty"                     : 1.0e16,
                  "scale_factor"                : 1.0e0,
                  "adapt_penalty"               : false,
                  "max_gap_factor"              : 5.0e-4
              },
              "alternative_formulations" : {
                  "axisymmetric"                : false
              }
          }
          """)
  
          # Overwrite the default settings with user-provided parameters
          self.contact_settings = settings
          self.contact_settings.RecursivelyValidateAndAssignDefaults(default_parameters)
  
          # Construct the base process.
          super().__init__(Model, self.contact_settings)
function_tokens: def __init__ ( self , Model , settings ) : # NOTE: Due to recursive check "contact_model_part" and "assume_master_slave" requires to pre-define configurations, if more that 10 pairs of contact are required, just add. I assume nobody needs that much # Settings string in json format default_parameters = KM . Parameters ( """
          {
              "help"                          : "This class is used in order to compute the contact using a mortar ALM formulation. This class constructs the model parts containing the contact conditions and initializes parameters and variables related with the contact. The class creates search utilities to be used to create the contact pairs",
              "mesh_id"                       : 0,
              "model_part_name"               : "Structure",
              "contact_model_part"            : {"0":[],"1":[],"2":[],"3":[],"4":[],"5":[],"6":[],"7":[],"8":[],"9":[]},
              "assume_master_slave"           : {"0":[],"1":[],"2":[],"3":[],"4":[],"5":[],"6":[],"7":[],"8":[],"9":[]},
              "contact_property_ids"          : {"0": 0,"1": 0,"2": 0,"3": 0,"4": 0,"5": 0,"6": 0,"7": 0,"8": 0,"9": 0},
              "friction_coefficients"         : {"0": 0.0,"1": 0.0,"2": 0.0,"3": 0.0,"4": 0.0,"5": 0.0,"6": 0.0,"7": 0.0,"8": 0.0,"9": 0.0},
              "contact_type"                  : "Frictionless",
              "not_normal_update_frictional"  : false,
              "interval"                      : [0.0,"End"],
              "normal_variation"              : "no_derivatives_computation",
              "frictional_law"                : "Coulomb",
              "tangent_factor"                : 1.0e-3,
              "operator_threshold"            : 1.0e-3,
              "slip_augmentation_coefficient" : 0.0,
              "slip_threshold"                : 2.0e-2,
              "zero_tolerance_factor"         : 1.0,
              "integration_order"             : 2,
              "consider_tessellation"         : false,
              "normal_check_proportion"       : 0.1,
              "clear_inactive_for_post"       : true,
              "slip_step_reset_frequency"     : 1,
              "search_parameters"             : {
                  "type_search"                         : "in_radius_with_obb",
                  "simple_search"                       : false,
                  "adapt_search"                        : false,
                  "search_factor"                       : 3.5,
                  "active_check_factor"                 : 0.01,
                  "max_number_results"                  : 1000,
                  "bucket_size"                         : 4,
                  "dynamic_search"                      : false,
                  "static_check_movement"               : false,
                  "database_step_update"                : 1,
                  "normal_orientation_threshold"        : 1.0e-1,
                  "consider_gap_threshold"              : false,
                  "debug_mode"                          : false,
                  "predict_correct_lagrange_multiplier" : false,
                  "check_gap"                           : "check_mapping",
                  "octree_search_parameters" : {
                      "bounding_box_factor"             : 0.1,
                      "debug_obb"                       : false,
                      "OBB_intersection_type"           : "SeparatingAxisTheorem",
                      "build_from_bounding_box"         : true,
                      "lower_bounding_box_coefficient"  : 0.0,
                      "higher_bounding_box_coefficient" : 1.0
                  }
              },
              "advance_explicit_parameters"  : {
                  "manual_max_gap_theshold"  : false,
                  "automatic_gap_factor"     : 1.0e-1,
                  "max_gap_threshold"        : 5.0e-2,
                  "max_gap_factor"           : 1.0e2,
                  "logistic_exponent_factor" : 6.0
              },
              "advance_ALM_parameters" : {
                  "manual_ALM"                  : false,
                  "stiffness_factor"            : 1.0,
                  "penalty_scale_factor"        : 1.0,
                  "use_scale_factor"            : true,
                  "penalty"                     : 1.0e16,
                  "scale_factor"                : 1.0e0,
                  "adapt_penalty"               : false,
                  "max_gap_factor"              : 5.0e-4
              },
              "alternative_formulations" : {
                  "axisymmetric"                : false
              }
          }
          """ ) # Overwrite the default settings with user-provided parameters self . contact_settings = settings self . contact_settings . RecursivelyValidateAndAssignDefaults ( default_parameters ) # Construct the base process. super ( ) . __init__ ( Model , self . contact_settings )