MSC Nastran & Patran Contact Tipsheet
Start by: Mica Parks ([email protected])
Update 1-22-16
Collection of notes and suggesting pertaining to Nastran contact. Primarily newer 3D Contact but also including older
contact methods and suggestions. Intended to be used AFTER a training class or watching contact videos. This is not a
standalone ‘Quick Start’ yet. Modify this document as you see fit and send me suggestion how to make it better.
Preliminary outline of videos in SimCompanion DOC10729. If you are new to Pairs and/or Contact suggest start with
What’s New Patran/Nastran 2013 LnL Contact Pairs.
General contact methods vs Nastran Solutions plus mixing ‘old’ and ‘new’ contact. See 1st Tipsheet video:
Newer 3D general body to body contact ~Nastran 2008+
Linear Gap
P/CGAP
Slideline
Variation
Segment To Segment (S2S)
Glue
Glue
Touch
node-tonode old
Mix newer 3D
contact with old
No*1
Yes
No contact,
No FATAL
SOL 101
Yes
No
No
Yes
Yes
Yes
Nastran
2014
SOL 106, 129
No
Yes
Yes
No
No
No
No
SOL 103, 105, 108,
109, 111, 112
(linear or linear
dynamic solutions)
No
No
No
Yes
Permanent
Glue Only
No
Nastran 2014.1
Permanent Glue
Only
No
SOL 200
No
No
No
Yes
No
No, maybe
Nastran 2014.1
No
SOL 400
No
Yes
No contact,
No FATAL
Yes
Yes
Yes
Yes
SOL 700
No
No
No
Deck Edit
Yes
Deck Edit
Yes
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
SOL 144, 145, 146
Master-Slave Relationship,
mesh independent
Touch
node-tonode old
Comment
1D lines of
nodes, old
Node To Segment (N2S)
(Pre-Nastran 2014 too) New
Mesh Independent
N2S = NTS = Node To Segment
S2S = STS = Segment To Segment
General Debugging
 ~49% of problem contact model issues are not with contact. Something else.
o Suggest remove all contact, use unintended/unrealistic constraints to stabilize model and run to verify
setup.
o If touch contact in model change it to glue and run. Again, verify there aren’t other problems. SOL
103/modes can be very helpful.
 Displacement is a good indication what or where a problem(s) might be.
o Plotting in Patran is nice but looking at F06 or STS can also give an idea what’s the problem.
o NLPARM or NLSTEP settings to get intermediate output is another method to get at displacement. Also
using ITER (non-automatic) convergence methods can make a difference with marginally un-runnable
models. But iteration settings are not magic cure all.
1
“Permanent Glue” with Linear Gaps does work. Given both must be small displacement I can’t find fault with mixing the two. But
this isn’t a combination development has acknowledged. Use at your own risk.
All “Traditional” methods below can be replace with new 3D Contact
SOL 101 Traditional
 Linear gaps can’t be mixed with any other contact. Unlikely to ever happen.
 Linear gaps are binary, on or off. No springs involved, not differential spring like P/CGAP. With large number of
linear gaps, thousands, convergence can be difficult or impossible. Your millage may vary but adding stiff springs
1e6 to 1e8 (regardless of units) in series (not parallel) with gap may help.
 Linear gaps have no NLPARM or equivalent. Only number of times to let it iterate and user can pre-set
open/close based on previous run.
SOL 106, 129, 400 Traditional
 P/CGAP is a differential spring. For unstable or difficult to converge models suggest giving an open stiffness of
1.0 to 10.0 (default is 1e-20). If that works likely the problems is contact related and not some other issue in the
model. Your call if open stiffness should be removed for final results or substantially lowering open stiffness
value is acceptable.
 2-D Slidelines are list of nodes that make a curve, contact is essentially curve-curve contact. Often times need
constraints on both curves so they don’t fall off of one another (constraints in non-sliding direction). Not a very
general contact method.
 ‘new’ 3D Contact will not be added to SOL 106/129. Instead use SOL 101, SOL 400 or SOL 700.
‘new’ 3D General Body To Body Contact Information
 N2S stabilized in Nastran 2010. Using it prior to this version may be problematic.
o Nastran 2013.1 LMFACT and PENFM set to 0.05% of the average diagonal terms of the stiffness (Kgg).
Pre-2013.1 was 5% of ave stiffness and too stiff in some cases (NAS-14547). Has to do with Lagrange
calculation. This smaller value is much better if contact nodes/mesh match. If using older Nastran,
meshes match and touch contact doesn’t look correct, find LMFACT/PENFM in F06 divide by 100 or
more and set as PARAMs.
 N2S has concept of slave-master bodies.
o Slave = soft material (foam on steel) or more likely criteria finer mesh/more nodes on contact interface.
o Master = Coarse mesh or less nodes on contact interface.
 S2S mesh density and hard/soft material isn’t a concern, with regard to slave-master. But slave-master is still
relevant to settings, COPTS/M for example. But it’s missing some N2S output and can behave softer or harder
than expected. Suggest ignoring until Nastran 2014.1 or latter except for special cases; edge-edge touch is an
example or if you do not need to recover forces/stress at contact boundary but need better/smoother stress
distribution at contact interface.
o S2S turned on with BCPARA,0,METHOD, SEGTOSEG (SEGLARGE also an option)..
 SEGSMALL instead of SEGTOSEG is supported but not documented. May run a bit faster but at
some point may be remove.
 SEGLARGE is effectively what SEGTOSEG is. Should still be supported but like SEGSMALL may go
away at some point.
o Consider system cell SEGLOG to control segment-to-segment stiffness calculation. Generally only
needed for corner or odd cases:
 =0 (default) based on average elastic stiffness of the two contact bodies and the default error
tolerance.
 =1 uses PARAM PENALT and other criteria. See QRG.
 General high level video of when to use N2S, S2S, turn off shell thickness, how edges or 1Ds are considered.
 N2S & S2S default is touch contact and shell thickness is taken into account for actual contact face.
o This is for all solutions, 101, 103, 400, 700, etc. SOL 700 would seem to have different rules but it works
like the others.
 “Contact Pair” is a newer Patran/Nastran setup method than older “Contact Table”.
o Same functionality but easier to setup and modify (in Patran and BDF). Not N2S & S2S dependent.
o Pair setup far more likely to pass Patran circle test (Patran read Nastran BDF with contact and correctly
regenerated)






Linear (SOL 101) Touch Contact does not consider material nonlinearity nor large displacement. This also means
it doesn’t re-compute element location which can produce strange/bad results. Run in SOL 400 if in doubt.
Linear (SOL 101) multiple subcases with touch or glue is okay for standard cases.
o Tested mix but none changing combo of touch/glue across multiple cases. Answers were the same if run
multiple cases at once or run as separate jobs.
o Conjecture on non-standard cases would be modifying ERROR, ICOORD or similar contact parameter
from case to case.
SOL 400 is required for Breaking Glue (JGLUE), Progressive Failure Analysis (PFA), Virtual Crack Closure
Technique (VCCT), Cohesive Zone Modeling (CZM). Technically JGLUE could be run in 101 but by nature of
behavior it should 400, nonlinear.
RBE2/3 mix with 3D Contact is okay. But there can be various problems if large number of RBEs are mixed with
contact. Handles case by case.
o N2S will back away from RBEs depending on independent/dependent.
o S2S does not need to back away.
PCOMP nor PCOMPG Z0 offset is accounted for in contact face. Total ply stack is accounted for if COPTS
B=1(default). If you need to account for element offset use ZOFF (offset on element).
1D element contact requires BCBMRAD card and only works with Node-to-Segment (up to ~Nastran 2014).
o For Touch this imparts a user defined radius regardless of 1D property cross section shape. Based on
documentation it can be used with CROD, CBAR, CBEAM, CBEAM3.
o For Glue (yes this is odd) radius is ignored. I have no idea why. You must move the nodes onto
shell/solid face/edge, with the ERROR.
o 1D should be slave if mixing with 2D/3D. If 1D to 1D fall back to finer mesh slave but need for this is not
confirmed.
o BCPARA BEAMB=1 is also required for beam-beam contact. In SOL 101/400 it is off by default. It can be
written from Patran.
o 1D to 2D/shell edge (N2S) is effectively beam-beam. Both BCBMRAD and BEAMB are required.
 It is important to realize 2D edge is a bullnose, pshell/pcomp t/2 is used as the radius. This can
lead to some unexpected contact proximity scenarios. S2S, 2D edge anyway, does not work this
way when it becomes available.
o 1D to 3D Touch contact has come up lately. Yes this works. But you must have 1D nodes at or near
contact face. Another way to say it, it would seem the 1D node proximity check or radius is a ball about
the 1D node and not a tube along the 1D. This is unconfirmed but testing confirms this.
o If edge-edge or face-edge is a problem given current radius limitation, consider making dummy shell
elements to represent the edge(s). Then rules go back to face-edge or face-face.
o Future Nastran will derive contact definition from cross section. Likely seg-seg only. Not available as of
Nastran 2014.1
Nastran Setting You Are Likely To Modify (roughly in order and highlights in this video)
 ERROR is contact distance above and below patch. If not set Nastran automatically will set ERROR to be smallest
of all bodies; 1/20th smallest edge or ¼ thickness (PSHELL/PCOMP) of shells.
o BCPARA ERRBAS=1 will use ERROR per contact pair base on two bodies used. Nastran 2012.
 BIAS default is 0.0 for glue, 0.9 for touch. Set to 0.99 for models that seem to chatter or if big ERROR is needed.
 ISEARCH control Master-Slave relationship between bodies.







o =0 is terrible (default). Double search with priority based on BCBODY IDS. 50% chance of being correct.
o =1 good. Search is from Slave to Master as set on BCONECT. But you have to get Master-Slave correct.
o =2 okay if BCPARA THKOFF=1 is set. Nastran bases Slave to Master on mesh density. Still iffy though.
IGLUE’s = Touch or Glue + my $0.02 (3rd Patran/Nastran Contact Pair video):
o IGLUE = 0 is touch (default). Patran doesn’t write it.
o IGLUE=2 is glue, no moment, retains initial gaps & overlaps which avoids potential grounding.
o IGLUE=4 is IGLUE=2 but includes moments. Also retains initial gaps & overlaps which avoids potential of
grounding.
o IGLUE=1 is glue no moment, IGLUE=3 is glue with moment. Slave nodes are moved onto Master which
can cause grounding if meshes not perfectly aligned. Add ICOORD=1 or =3 if you want Nastran to move
nodes and avoid grounding. ICOORD=1 or =3 is okay with IGLUE=2,4 too.
ICOORD = Stress free Initial Contact and Delayed Slide Off
o Works for Touch or Glue but key is its ‘initial’ modification of nodes. If you want to artificially move
contact boundary use CINTERF.
o ICOORD=1 will move Slave nodes onto Master if they meet ERROR+BIAS requirements. Nodes moved
along Slave vector direction. Stops grounding with IGLUE=1,3.
 This setting is particularly useful for tube in tube, bolt in hole type situations or lumpy FEM.
 (N2S) Can only see where the nodes are moved to by reading results with BOTH into Patran
(regenerate model from binary results, XDB, MASTER).
 (S2S) does NOT move nodes. Patran read results with BOTH you will not see a difference.
Instead the contact location is moved via polygons that represent the contact. This also means
the elastic foundation (formulation) is at original FEM location.
o ICOORD=2 in conjunction with SLIDE increases the footprint of the Master elements/patch. By default,
without ICOORD/SLIDE, Master patch is slightly larger than node based footprint so =2 may not be
necessary.
o ICOORD=3 is combination of ICOORD=1 and ICOORD=2.
COPTS(slave)/COPTM(master) controls how element topology is considered (if shell thickness is used).
o Setup is odd, sorry. See QRG but 10*B is likely what you want to interact with, you want to change. 1061
is common if ignore thickness
CINTERF is interference closure amount normal to contact surface. CINTERF >0 overlap, <0 gap.
o Solid elements no real hang-ups. Shell elements if property thickness is included (default) no problems
with CINTERF.
o Shell without thickness can be a problem. Nastran can get confused which side to offset. Best to keep
thickness and adjust CINTERF appropriately.
o CINTERF behavior is fixed offset across entire contact body. If your model is ‘lumpy’ I’m not sure if you
can mix this with ICOORD and get smooth/consistent contact face. It also brings up the point 3D contact
is based on proximity whereas P/CGAP and Linear Gap are based on displacement toward or way. To
mimic this will require a clearance type option, but for large sliding effects may not be desirable.
Potato Chip – Touch contact edges lift off unexpectedly.
o Still assessing this based on user input. But adjusting FNLTOL and LMFACT (N2S) or PENALT and AUGDIST
(S2S) can correct this. Likely only to be a problem with thin/soft structure face to face with much stiffer
structure. The problem goes back to the fact contact ‘stiffness’ should be calculated locally but that’s
computationally expense. So it’s generally based off of average model stiffness.
 Nastran 2013 reduced LMFACT and PENALT. Face to face models are less likely to ‘potato chip’
for no reason. But keep it in mind.
SOL 400 rigid=linear.
o This is not contact specific. But with contact I see more jobs with RBE2 (sometimes RBE3) with reduced
DOFs. Instead of 123456, 1246. With default rigid=lagran problem will have a difficult time converging. If
rigid=linear gets the job running consider keeping it or finding a non-RBE method to make the
connection, BUSH for example.
o Look up RBE3/RBE2 rules with regard to RIGID= under the RBE cards. RBE3 has limitations.
AUTOSPC (RESIDUAL)=YES in SOL 400
o
Not contact specific. This is roughly equivalent to SOL 101 AUTOSPC. It may help in similar manner,
particularly if 101 job runs but same 400 job does not.
Patran
 MPCs (from NLOPRM) can be read in with Patran Nastran import but you need to turn off node ID offset (on by
default). Make node, not MPC offset = 0. Otherwise they all end up at 0,0,0 and it has no physical meaning.
 MASTER/DBALL and ‘enhanced’ OP2 (PARAM,POST,+1) has Contact Status and other contact results, as opposed
to XDB or old OP2. Technically old OP2 attached as MASTER will give you same info but not supported.
 Contact Status is easier to see using Plot Marker/Scalar. Fringe plot can be misleading with averaging.
 ‘Contact Table’ can be converted to ‘Contact Pair’ but you have to play games under Analysis. Conversely you
can write ‘Contact Table’ from ‘Contact Pair’ by setting Nastran version to 2012, but not recommended. First
part of What’s New Patran/Nastran 2013 LnL Contact Pairs covers this.
Problems & Debugging
 BCPARA overwrites all unset/default contact pair or body-body interactions. If a specific contact interaction is
required for a pair, set it on that pair. Using BCPARA can have very unintended consequences. I do not
recommend it for complex/many contact body models.
 BCONTACT=ALLBODY is confusing and not recommended. Nastran does not look into corresponding BCTABLE,
BCTABL1 or BCONECT but uses the defaults for all entries on BCTABLE, BCONPRG or BCONPRP.
 NLOPRM NLDBG=ADVDBG,N3DBAS,N3DADV,MPCPUNCH=BEGN below CEND
o Writes substantially more information about contact settings and behavior in F06. See QRG for
information.
o MPCPUNCH= will write MPC to punch file for visualization in Patran or to be used with subsequent runs.
 MPCPUNCH=STEP will write MPCs at end of Subcase/Step, likely what you want.
 MPCPUNCH=BEGN write the MPCs at the start of the run, good for Permanent Glue or
understand start contact interaction but not generally what you want, end is better.
 Triple stack or more of contact surfaces is possible with N2S. But special care must be taken with regard to slavemaster setup. S2S removes some of this complexity but can get in trouble if contact distance, ERROR + BIAS is
too large. Best to take a look at Use Case. But general idea is make middle plate combo Master-Slave or MasterMaster. Slave-Slave is bad.
 Elements in contact bodies need to be mutually exclusive. Can’t have same element in multiple contact bodies.
Shared nodes from elements is generally okay but can cause odd behavior and F06 warning messages. Also
generally means some nodes where unintentionally equivalenced or merged. S2S does not have this shared not
problem.
 When touch contact model does not run, glue everything and try again. Half the time contact isn’t the culprit.
Can also run normal modes (SOL 103 (model needs mass)), which only allows glue contact, to catch
stiffness/connection problems.
 Glue contact has options to control if moment is included. If moment should be included has same arguments as
bolts when represented by BAR/BEAM. Should the BAR/BEAM omit rotation/moment using pin flags or RBEs
setup. No moment is conservative but technically not correct. Suggesting using IGLUE=4 and not =2 to include
moment.
 “Permanent Glue” is special case of general glue (Video overview). Turned on with BCPARA NLGLUE=0. Intended
for model assembly and linear analysis. Shouldn’t use if permanent glue location is subject to large displacement
effects. Glue connections does not update with load. Solution does not iterate.
o If any touch in the model (IGLUE=0) permanent glue will be ignored or deactivated.
o All intended permanent glue bodies must be in initial contact. Nastran has no idea if all contact is valid,
that is your job.
o You will get the following warning if no bodies are connected or IGLUE=0 indicating Permeant Glue isn’t
taking place.
*** USER WARNING MESSAGE 8156 (MCN1GCK)
GENERAL CONTACT JOB WITH THE GLUE OPTION WILL BE ACTIVATED INSTEAD OF PERMANENT GLUE.
NLGLUE IN BCPARA (ID=0) WILL BE SET TO 1.
User Information: The model has both of glue and non-glue contact definitions.
o





SOL101 and SOL400 support the mixed glued contact and the permanent glue contact changes to the mixed glue contact .
“Permanent Glue” does not report “contact force, Friction” or “contact force, Normal”. If you need this
type of data either:
 Use freebody
 Write MPCs that represent contact (if N2S) with NLOPRM and option MPCPUCH. Second run
turn off contact and use the MPC in subsequent run. Then you can look at MPC forces.
 Patran by default turns on “Permanent Glue”, NLGLUE = 0. If you have any touch contact as
mentioned above then analysis will turn it off. In Patran you can turn this off with NLGLUE=1 and
use ‘regular’ glue. This is under Analysis Solution Type/Solution Parameters/Contact
Parameters… and uncheck “Enable Initial Contact”
GROUNDCHECK(SET=ALL,DATAREC=YES)=YES. Only valid with Permanent Glue.
IBSEP=4 or =2 will get you past the follow FATAL (end of this video). Has to do with midside nodes. QRG
misleading about LINQUAD=-1.
*** USER FATAL MESSAGE 5 (CNX_BOUDRY)
Quadratic elements in contact can only be used in combination with BCPARA and IBSEP=1,2,3 or 4
Analytic contact (SPLINE) is required for better topology on coarse/jagged mesh sliding. As an example it will let
bolts spin in holes. (Activation of this option in Patran)
Rigid Body enforced transform + rotation is possible. But arbitrary rotation must be applied to auxiliary node…
very odd setup.
Touch or glue slow run time due to bad constraints or contact.
o The USER INFORMATION MESSAGE 4158 is a nice way to say FATAL 9050 but let your job run anyway. If
you see this message you should try to fix it. Something is loose in the model.
o In some cases, more likely with glue, this message could go away as parts get close enough to glue.
o Fix could be increasing ERROR, changing BIAS, etc. Maybe just move parts closer together.
*** USER INFORMATION MESSAGE 4158 (DFMSA)
---- STATISTICS FOR SPARSE DECOMPOSITION OF DATA BLOCK SCRATCH FOLLOW
NUMBER OF NEGATIVE TERMS ON FACTOR DIAGONAL = 97491
MAXIMUM RATIO OF MATRIX DIAGONAL TO FACTOR DIAGONAL = 4.5E+14 AT ROW NUMBER 2342287
o
An extension of this problem may be many listed separation nodes as shown below. Again the
problem could go away depending on nature of contact and model. It isn’t a hard rule if you see this
your model is bad, just suspect.
*** USER INFORMATION MESSAGE 4158 (DFMSA)
---- STATISTICS FOR SPARSE DECOMPOSITION OF DATA BLOCK SCRATCH FOLLOW
NUMBER OF NEGATIVE TERMS ON FACTOR DIAGONAL = 70180
MAXIMUM RATIO OF MATRIX DIAGONAL TO FACTOR DIAGONAL = 1.8E+16 AT ROW NUMBER 2342289
*** warning: node 255836 separated 2 times and will be skipped in separation check
*** warning: node 69803 separated 2 times and will be skipped in separation check
*** warning: node 78131 separated 2 times and will be skipped in separation check


SOL 101 with contact can use NLPARM or NLSTEP. But whatever is provided in the deck is converted back to
NLPARM and only some input is used.
SOL 400 with NLSTEP has far more options and is what you should use.
o NLSTEP CTRLDEF is keyword for ‘canned’ combination of error setting. Look at QRG NLSTEP for more
info.
o
CTRLDEF: SOL 101 options are LCPERF, LCACCU and LCNT (default)
o
CTRLDEF: SOL 400 the values "QLINEAR", "MILDLY", and "SEVERELY" are available along with the option
of leaving blank.

CQUAD8 and CTRIA6 K6ROT is not effective. For slightly curved surfaces (not flat or highly curves) high pivot
ratios can appear. With contact this may run but Nastran is chewing up resources dealing with it. Either drop the
mid-side nodes, change to CQUAD4 and CTRIA3 and let K6ROT deal with it, or AUTOSPC increase EPSSING (SOL
400 RESIDUAL) to fix corner nodes of CQUAD8 and CTRIA6.
o CQUAD8 and CTRIA6 may come from skinning solid elements, often to get 1D element (BAR, BEAM,
BUSH, etc.) rotations into a solid. As the GRIDs at 1D to 3D junction ‘could’ have rotation stiffness
AUTOSPC will not fix/constrain them. Generally what you want, but there can be unintended
consequences, namely large rotations you did not expect.
o K6ROT stiffness, if you switch to CQUAD4 and CTRIA3 is dependent on shell thickness. For getting 1D
rotations into a solid the shell thickness is generally very small (to not add much stiffness/mass). You
could play games with PSHELL T and 12I/T**3 to get high rotation stiffness but still thin. But this could
become a complex game. Alternative is RBE or more 1D elements to turn rotations into translations.

IREL or inertia relief (SOL 101 only functionality) does not appear to work with touch body to body contact.
Probably not with regular glue but Permanent Glue ‘should’ be okay. Linear Gaps also can’t be mixed with IREL.
Likely SOL 101 body to body contact non-permanent glue uses some aspect of IREL to function, like Linear Gaps,
so it can’t be mixed.
o Potential workaround is use Global-Local type approach. Get load close to IREL but with constraints, run
touch or regular glue, use NLOPRM MPCPCH=STEP to get end Lagrange multipliers as MPCs, run IREL
with MPCs. That easy
Video overview of these slides; ISEARCH or Master-Slave settings, ERROR and BIAS, NLOPRM to get Nastran calculated
ERROR.
Video of result in 1st of 3 Tipsheet videos; Introduction of tipsheets intent and contact compatibility.
Video overview of this slide; 2nd Tipsheet video:
Download

MSC Nastran & Patran Contact Tipsheet Start by: Mica Parks (mica