.. _ref_index_matchmorph: ************** Match morphing ************** :func:`Morpher.match_morph() ` method performs face to face entity matching, providing the ability to match face pairs using match pairs. The method allows the source face to match with the corresponding target face. :class:`MatchPair ` allows you to specify sources and targets for match morphing. .. note:: Match pairs should have the same type of entities for matching. :func:`Morpher.match_morph() ` performs the following: - Matches the boundaries of the source and targets using the specified boundary condition pairs. - Matches the source entities to the target entities using the specified match pairs. - Ensures the adjacent entities to the boundaries of the matched entities are adjusted to provide a quality mesh. The below example shows how to match morph a cube of hexahedral mesh with quadratic elements to the shape of a sphere: Get the source and target faces from the source part and target part respectively. .. code-block:: python source_part = model.get_part_by_name("hex-mesh") target_part = model.get_part_by_name("sphere-topo") source = target_part.get_face_zonelets() target = source_part.get_topo_faces() .. figure:: ../images/matchmorph_source.png :width: 800pt :align: center **Source part (mesh)** .. figure:: ../images/matchmorph_target.png :width: 800pt :align: center **Target part (topology)** Initialize match morph parameters, morpher boundary condition parameters and morpher solver parameters. .. code-block:: python match_morph_params = prime.MatchMorphParams(model=model) bc_params = prime.MorphBCParams( model=model, morph_region_method=prime.BCsVolumetricModality.ALL, morphable_layers=1, morph_region_box_extension=0, ) solver_params = prime.MorphSolveParams(model=model) Set the source and target pairs for matching and specify the entity type of target surfaces. .. code-block:: python match_pairs = [] match_pair = prime.MatchPair( model=model, source_surfaces=source, target_surfaces=target, target_type=prime.MatchPairTargetType.TOPOFACE, ) match_pairs = [match_pair] Perform match morphing using the match pairs, match morph parameters, boundary condition parameters and solver parameters. .. code-block:: python morpher = prime.Morpher(model=model) morpher.match_morph( part_id=source_part.id, match_pairs=match_pairs, match_morph_params=match_morph_params, bc_params=bc_params, solve_params=solver_params, ) .. figure:: ../images/matchmorphafter.png :width: 800pt :align: center **Mesh morphed and displayed (topology deleted)**