model.pair()
Create and define identity pairs, contact pairs, general contact pairs, and sector symmetry pairs for assemble geometries.
Syntax
model.component(<ctag>).pair().create(<tag>,type,<gtag>);
model.component(<ctag>).pair(<tag>).type(type);
model.component(<ctag>).pair(<tag>).type();
model.component(<ctag>).pair(<tag>).pairName(<pname>);
model.component(<ctag>).pair(<tag>).pairName();
model.component(<ctag>).pair(<tag>).source().selMethod;
model.component(<ctag>).pair(<tag>).source().named(<seltag>);
model.component(<ctag>).pair(<tag>).source().named();
model.component(<ctag>).pair(<tag>).destination().selMethod;
model.component(<ctag>).pair(<tag>).destination().named(<seltag>);
model.component(<ctag>).pair(<tag>).destination().named();
model.component(<ctag>).pair(<tag>).swap();
model.component(<ctag>).pair(<tag>).manualFrame(manual);
model.component(<ctag>).pair(<tag>).manualFrame();
model.component(<ctag>).pair(<tag>).srcFrame(<frame>);
model.component(<ctag>).pair(<tag>).srcFrame();
model.component(<ctag>).pair(<tag>).dstFrame(<frame>);
model.component(<ctag>).pair(<tag>).dstFrame();
model.component(<ctag>).pair(<tag>).hasAutoSelection();
model.component(<ctag>).pair(<tag>).manualSelection(manual);
model.component(<ctag>).pair(<tag>).manualSelection();
model.component(<ctag>).pair(<tag>).searchMethod(method);
model.component(<ctag>).pair(<tag>).searchMethod();
model.component(<ctag>).pair(<tag>).manualDist(manual);
model.component(<ctag>).pair(<tag>).manualDist();
model.component(<ctag>).pair(<tag>).searchDist(<dist>);
model.component(<ctag>).pair(<tag>).searchDist();
model.component(<ctag>).pair(<tag>).opName(src2dst);
model.component(<ctag>).pair(<tag>).mphOpName(src2dst);
model.component(<ctag>).pair(<tag>).gapName(src2dst);
model.component(<ctag>).pair(<tag>).extTol(tol);
model.component(<ctag>).pair(<tag>).manualSectorSymmetry(boolean);
model.component(<ctag>).pair(<tag>).nSector(integer);
model.component(<ctag>).pair(<tag>).basePoint(string[]);
model.component(<ctag>).pair(<tag>).axis(string[]);
model.component(<ctag>).pair(<tag>).active(boolean);
model.component(<ctag>).pair(<tag>).isActive();
model.component(<ctag>).pair().remove(<tag>);
 
Not all of the syntaxes above are available for all pair types. See the following section for more information.
Description
model.component(<ctag>).pair().create(<tag>,type,<gtag>) creates a pair with tag <tag> in the geometry with tag <gtag> in the component with tag <ctag>. The type type is Contact, GeneralContact, Identity, or SectorSymmetry.  model.component(<ctag>).pair(<tag>).type() returns the pair type as a string. model.component(<ctag>).pair(<tag>).type(type) changes the pair type.
model.component(<ctag>).pair(<tag>).pairName(<pname>) sets the pair name, which is used as a suffix in operator names and variable names. By default, the pair name is the same as the tag. model.component(<ctag>).pair(<tag>).pairName() returns the pair name.
model.component(<ctag>).pair(<tag>).source().named(<seltag>) assigns the source boundaries to the named selection <seltag>.
model.component(<ctag>).pair(<tag>).source().set(...) defines a local selection that assigns the source boundaries to geometric entities. For a complete list of methods available under model.component(<ctag>).pair(<tag>).source(), see model.selection().
model.component(<ctag>).pair(<tag>).destination().named(<seltag>) assigns the destination boundaries to the named selection <seltag>.
model.component(<ctag>).pair(<tag>).destination().set(...) defines a local selection that assigns the destination boundaries to geometric entities. For a complete list of methods available under model.component(<ctag>).pair(<tag>).destination(), see model.selection().
model.component(<ctag>).pair(<tag>).swap() swaps the source and destination selections.
model.component(<ctag>).pair(<tag>).srcFrame(<frame>) and model.pair(<tag>).dstFrame(<frame>) sets the source and destination frames for the identity mapping; the srcFrame property is also available for the frame setting for sector symmetry pairs. Manual control of frames is automatically activated when these methods are used. The argument <frame> can have the values geometry, material, mesh or spatial. The default is spatial. These frames are only used for identity pairs. model.component(<ctag>).pair(<tag>).srcFrame() and model.component(<ctag>).pair(<tag>).dstFrame() returns the frame tags.
model.component(<ctag>).pair(<tag>).hasAutoSelection() returns true if the contact pair was created automatically, using the create pairs checkbox in the finalize geometry node.
model.component(<ctag>).pair(<tag>).manualFrame(manual) enables or disables manual control of the frames for source and destination of an identity pair. The argument manual is a boolean. model.component(<ctag>).pair(<tag>).manualFrame() returns true if manual control of frames is enabled, and false otherwise. Note that model.component(<ctag>).pair(<tag>).srcFrame(<frame>) and model.component(<ctag>).pair(<tag>).dstFrame(<frame>) enables manual control of frames.
model.component(<ctag>).pair(<tag>).manualSelection(manual) enables or disables manual control of the selections for a pair that was created automatically. model.component(<ctag>).pair(<tag>).manualSelection() returns true if manual control of selections is enabled, and false otherwise.
model.component(<ctag>).pair(<tag>).searchMethod(method) sets the search method for a contact pair. The argument method can be hierarchical, fast, or direct. The default is hierarchical in 2D and 3D and fast in 1D, where hierarchical is not available.
model.component(<ctag>).pair(<tag>).searchMethod() returns the search method.
model.component(<ctag>).pair(<tag>).manualDist(manual) enables or disables manual control of the search distance for a pair. The argument manual is a boolean. The default value false means that the search distance is determined automatically. model.component(<ctag>).pair(<tag>).manualDist() returns true if manual control of search distance is enabled and false otherwise.
model.component(<ctag>).pair(<tag>).searchDist(<dist>) sets the search distance for a contact or identity pair when manual control of the search distance is enabled. The argument <dist> is a string whose default unit is the geometry’s length unit. The default is 1e-2. model.component(<ctag>).pair(<tag>).searchDist() returns the search distance as a string.
model.component(<ctag>).pair(<tag>).opName(src2dst) returns the name of the operator transferring an expression from source to destination (if src2dst=true) or from destination to source (if src2dst=false).
model.component(<ctag>).pair(<tag>).mphOpName(src2dst) returns the name of the multiphysics operator transferring an expression from source to destination (if src2dst=true) or from destination to source (if src2dst=false). When the test operator is applied on this operator, it does not give any contribution (reaction force) for the structural mechanics interfaces’ degrees of freedom due to the variable point mapping. These operators are available only for contact pairs.
model.component(<ctag>).pair(<tag>).gapName(src2dst) returns the name of the geometric gap variable seen from the destination (if src2dst=true) or seen from the source (if src2dst=false). These variables are available only for contact pairs.
model.component(<ctag>).pair(<tag>).elementwise(mapping) controls the element mapping for compatible meshes. mapping can be on, off, or require, where you use the last option to require compatible meshes.
model.component(<ctag>).pair(<tag>)).compatibleMeshesTol(tol) provides the ability to specify a user-defined relative tolerance tol for compatible meshes, if the elementwise property is set to on or require. The default tolerance is 0.001.
model.component(<ctag>).pair(<tag>)).contactSelectionType(type) specifies if the contact selection should be all, for all selections, or manual, for determining selections manually for general contact pairs.
model.component(<ctag>).pair(<tag>)).excludeSource(boolean) specifies if source boundaries should be excluded from selections from other pairs (if true) for general contact pairs.
model.component(<ctag>).pair(<tag>)).excludeDestination(boolean) specifies if destination boundaries should be excluded from selections from other pairs (if true) for general contact pairs.
model.component(<ctag>).pair(<tag>)).mapping(type) specifies if the mapping method for general contact pairs: deformed for a deformed configuration or initial for an initial configuration.
model.component(<ctag>).pair(<tag>)).contactSearchDist(type) specifies the search distance for general contact pairs: automatic, manual, or tolerance. For all three types, an extrapolation tolerance value can be given as model.component(<ctag>).pair(<tag>)).searchTol(tol). For manual, you can also specify a search distance as model.component(<ctag>).pair(<tag>)).searchDist(dist). For tolerance, you can also specify a contact search tolerance as model.component(<ctag>).pair(<tag>)).contactSearchTol(tol);
model.component(<ctag>).pair(<tag>)).selfIntersectionType(type) specifies the type of self-intersection check for general contact pairs: automatic, exhaustive, or off.
model.component(<ctag>).pair(<tag>)).manualSectorSymmetry(boolean) specifies if the sector symmetry settings are set automatically (if false) or manually (if true) for sector symmetry pairs. If set to true, the following three properties are available:
model.component(<ctag>).pair(<tag>)).nSector(integer) specifies the number of sector for sector symmetry pairs.
model.component(<ctag>).pair(<tag>)).basePoint(string[]) species the axis base point for the rotation for sector symmetry pairs. Give an x-coordinate in 1D, x- and y-coordinates in 2D, and x-, y-, and z-coordinates in 3D.
model.component(<ctag>).pair(<tag>)).axis(string[]) species the axis of rotation for sector symmetry pairs in 3D. Give the x-, y-, and z-coordinates.
model.component(<ctag>).pair(<tag>)).extTol(tol) species the extrapolation tolerance for sector symmetry pairs.
model.component(<ctag>).pair(<tag>).active(boolean) enables or disables the pair.
boolean enabled = model.component(<ctag>).pair(<tag>).isActive() returns true if the pair is enabled, and false otherwise.
model.component(<ctag>).pair().remove(<tag>) deletes the pair.
Example
Create a contact pair in the geometry geom1 with source boundaries 4 and 6 and destination boundaries 10 and 12.
Code for Use with Java
Model model = ModelUtil.create("Model");
model.component().create("comp1");
GeomSequence g = model.component("comp1").geom().create("geom1", 3);
g.create("blk1", "Block");
g.create("blk2", "Block");
g.feature("blk2").set("pos", new String[]{"0.5", "0.5", "1"});
g.feature("fin").name("Form Assembly");
g.feature("fin").set("action", "assembly");
g.feature("fin").set("imprint", true);
g.feature("fin").set("createpairs", false);
g.run();
model.component("comp1").pair().create("p1", "Contact", "geom1");
model.component("comp1").pair("p1").source().set(new int[]{4, 6});
model.component("comp1").pair("p1").destination().set(new int[]{10, 12});
Code for Use with MATLAB
model = ModelUtil.create('Model');
model.component.create('comp1');
g = model.component('comp1').geom.create('geom1', 3);
g.create('blk1', 'Block');
g.create('blk2', 'Block');
g.feature('blk2').set('pos', {'0.5', '0.5', '1'});
g.feature('fin').name('Form Assembly');
g.feature('fin').set('action', 'assembly');
g.feature('fin').set('imprint', true);
g.feature('fin').set('createpairs', false);
g.run;
model.component('comp1').pair.create('p1', 'Contact', 'geom1');
model.component('comp1').pair('p1').source().set([4, 6]);
model.component('comp1').pair('p1').destination.set([10, 12]);