Nonsymmetric Map Error with CONTACT b... Log Out | Topics | Search
Moderators | Register | Edit Profile

FlexPDE User's Forum » User Postings » Nonsymmetric Map Error with CONTACT boundary conditions « Previous Next »

Author Message
Top of pagePrevious messageNext messageBottom of page Link to this message

Steven E. Williamson (sew)
Member
Username: sew

Post Number: 11
Registered: 02-2008
Posted on Friday, March 14, 2008 - 08:58 pm:   

I have run into a problem with CONTACT boundary conditions. The symptom is the cryptic error message: "NONSYMMETRIC MAP". The trace-back is as follows:

NONSYMMETRIC MAP
An internal processing error has occurred.
Please contact PDE Solutions Inc.
---Called from sparsemx::inchol_factor
---Called from coupling::build_precon
---Called from cgsolve::do_linear
---Called from control::do_runjob
---Called from ccontrol::runphase

To find where this error was coming from I pared down my much larger script and eventually isolated the problem to a pair of CONTACT boundary conditions specified on SURFACES in a limited region. Commenting out one or the other (or both) SURFACE boundary condition allows the problem to run. But with both conditions in place, the problem fails.

I have attached the "pared-down" script that produces the error. The geometry consists of a rectangular region of material 1, which is overlaid by a smaller rectangular region of material 2 centered in the first region. Both regions have the same length in X. Originally, I had placed both surface and side wall CONTACT boundary conditions in the second region definition so that there was a boundary resistance for the entire interface between the two materials. I eliminated the side wall boundary conditions while trying to zero in on where the error was coming from. I realize that the remaining geometry is not particularly physically realistic.

Am I doing something wrong with this geometry, or is this a bug?
application/octet-stream
nonsymmetric-map-test.pde (1.2 k)
Top of pagePrevious messageNext messageBottom of page Link to this message

Steven E. Williamson (sew)
Member
Username: sew

Post Number: 13
Registered: 02-2008
Posted on Friday, March 14, 2008 - 09:18 pm:   

I noticed that in another post, refining the mesh eliminated a NONSYMMETRIC MAP error in a problem with contact boundary conditions (though the geometry was quite different I think). I tried setting "MESH_SPACING = 0.05" and indeed, the problem ran with no error. So I have a work-around -- but I would like to understand what happened to cause the error in the first place.
Top of pagePrevious messageNext messageBottom of page Link to this message

Steven E. Williamson (sew)
Member
Username: sew

Post Number: 14
Registered: 02-2008
Posted on Friday, March 14, 2008 - 10:55 pm:   

I added back the contact boundary conditions on the side walls of the central region in my example, and now, with one such side wall condition I am again getting NONSYMMETRIC MAP errors. With both side wall conditions, I get a Memory Protection Fault with the following trace-back:

Memory Protection Fault
---Called from init::init_ss
---Called from init::initial_val
---Called from control::do_runjob
---Called from CControl:runphase
---Called from ccontrol::control_loop

So I take it back. I do NOT have a work-around. I have played with the mesh spacing but making it smaller seems not to help. This is getting frustrating.

I have attached a modified version of the script with the side-wall boundary conditions. (Note that I included a LAYER qualifier on each to be sure that I did not have the problem mentioned in my earlier thread).
application/octet-stream
nonsymmetric-map-test-1.pde (1.3 k)
Top of pagePrevious messageNext messageBottom of page Link to this message

Robert G. Nelson (rgnelson)
Moderator
Username: rgnelson

Post Number: 1084
Registered: 06-2003
Posted on Saturday, March 15, 2008 - 01:23 pm:   

This error occurs in the Incomplete Choleski factoring procedure, because the Contact boundary condition processing is not building a symmetric storage structure for the matrix.

We have corrected this problem, and the correction will be in the next maintenance release.

In the meantime, you can SELECT ICCG=OFF and the solution should proceed.

Top of pagePrevious messageNext messageBottom of page Link to this message

Robert G. Nelson (rgnelson)
Moderator
Username: rgnelson

Post Number: 1085
Registered: 06-2003
Posted on Saturday, March 15, 2008 - 01:50 pm:   

PS

Boundary condition specifications continue in force across subsequent path elements until explicitly changed.

This means your sidewall CONTACT condition continues across the exterior wall, which encounters the problem discussed in your earlier post, that CONTACT BCs cannot be applied to exterior boundaries.

You will need to break the CONTACT specifications when tracing the exterior boundaries by inserting a NATURAL(temp)=0 or NOBC(temp) in the path sequence. See attached.



application/octet-stream
nonsymmetric-map-test-1.pde (1.5 k)
Top of pagePrevious messageNext messageBottom of page Link to this message

Steven E. Williamson (sew)
Member
Username: sew

Post Number: 15
Registered: 02-2008
Posted on Monday, March 17, 2008 - 06:37 pm:   

Setting ICCG = OFF did indeed remove the non-symmetric map error. And I certainly agree with the necessity of those extra natural side-wall boundary conditions -- I had them in some of my trials, but somehow managed to delete them at some point in my efforts to figure out what was causing the problem.

But I have another problem. I have attached a script which, it seems to me, should produce the same geometry as the previous test case (e.g. the attachment in your last post). I have broken up the original (non-limited) region into two regions, one non-limited and one limited. I still define the central region bounded by CONTACT boundary conditions in yet another limited region. When this script is run, the side-wall boundary conditions of the last region seem to be ignored. What is more strange (to me) is that if I reverse the order of definition of the last two limited regions, then the region with the CONTACT boundary conditions is totally ignored leaving a hole!

For this geometry, the original method of defining the regions is obviously simpler, but I'm trying to understand the intricacies of how the region definitions work. I don't understand why the attached script doesn't work just as well as the simpler 2-region version.
application/octet-stream
ignored-side-walls.pde (2.0 k)
Top of pagePrevious messageNext messageBottom of page Link to this message

Robert G. Nelson (rgnelson)
Moderator
Username: rgnelson

Post Number: 1088
Registered: 06-2003
Posted on Wednesday, March 19, 2008 - 12:04 am:   

A REGION (whether "limited" or not) describes a 2D figure in the (X,Y) projection plane.
REGIONS declared later hide any REGIONS declared earlier if they overlay them.
If a REGION is declared twice with the same boundaries, the earlier is hidden by the later one.
Your regions 2 and 3 are the same, and should be declared only once, with parameters declared for each layer.

Each extrusion surface is gridded as a 2D mesh problem, following the region overlay rules for all regions that exist in the surface (as controlled by "Limited" qualifiers). In any surface in which both of your regions 2 and 3 regions exist, the earlier declaration is overlayed and hidden by the later. This is the actual cause of your disappearing boundary conditions.

You also have the same trouble as discussed in another thread, namely that declaring a contact boundary condition where an Natural has already been declared will cause loss of the contact condition.

See attached.


application/octet-stream
ignored-side-walls1.pde (2.0 k)

Add Your Message Here
Post:
Username: Posting Information:
This is a private posting area. Only registered users and moderators may post messages here.
Password:
Options: Enable HTML code in message
Automatically activate URLs in message
Action:

Topics | Last Day | Last Week | Tree View | Search | Help/Instructions | Program Credits Administration