7 Replies Latest reply on Oct 30, 2014 10:17 AM by dan_liddell

    Calibre rule to measure separation based on an independent intervening layer

    terry.lalonde

      I'm struggling to implement the following rule and need help, I've tried many things but can't crack it.

       

      1.   Minimum WELL  space  … 10
      2.   WELLs spaced between 10 and 15 must be separated by any amount of both layer S1 and S2
      3.   WELLs spaced 15 or greater must be separated by any amount of layer S1

       

       

      I'm using Calibre 2009.  Any help is appreciated.

        • 1. Re: Calibre rule to measure separation based on an independent intervening layer
          dan_liddell

          Hi Terry,

           

          Do you have 2009.3 or later?

           

          Thanks,

          dan

          • 3. Re: Calibre rule to measure separation based on an independent intervening layer
            dan_liddell

            Hi Terry,

             

            Reason I asked is, DFM SPACE was introduced in 9.3. It is more efficient than EXTernal when it comes to large measurement constraints such as what you want to use. Since DFM SPACE isn't an option for you in 9.2, we'll go with EXT.

             

            For your item 3, I think you're going to have to specify an upper limit to the measurement constraint range. Right now you have no upper bound to your interval. In order to satisfy the condition of testing for the existence of S1 between well polygons, somehow you're going to have to construct regions to check for the presence of S1 between wells. The only way to do this that I know of is to have a bounded constraint interval.

             

            Here are some ideas to try out. You may need to modify them to get the exact thing you're looking for.

             

            // these edges are from wells that are inside the minimum spacing

            min_well_edge = EXT [well] < 10

             

            // filter out the polygons you've already checked to reduce the data set for following operations.

            // this is important, because using EXT with huge measurement constraint values is compute intensive.

            not_min_well = well NOT WITH EDGE min_well_edge

             

            // well edges in the "middle" measurement interval

            mid_well_edge = EXT [not_min_well] >= 10 < 15

             

            // form regions to test for the presence of S1 and S2; EXPAND EDGE has additional options that might be helpful to get the precise regions you want.

            mid_well_region = EXPAND EDGE mid_well_edge OUTSIDE BY 7.501

             

            // test for S1

            mid_well_region_S1 = mid_well_region INTERACT S1

             

            // test for S2

            mid_well_region_S1_S2 = mid_well_region_S1 INTERACT S2

             

            // these regions are bad.

            // if a polygonal result is OK for debug purposes, output this layer in a rule check.

            bad_mid_well_region = mid_well_region NOT mid_well_region_S1_S2

             

            // if you prefer an edge result layer, output the following derived edge layer instead of the previous one.

            bad_mid_well_edge = mid_well_edge COINCIDENT EDGE bad_mid_well_region

             

            // again, filter out the polygons that you don't need to check again. this reduces the data set.

            not_mid_well = not_min_well NOT WITH EDGE mid_well_edge

             

            To check your condition #3, you can proceed with pretty much the same ideas above for the "mid" derived layers. You don't need to check for S2, so that derivation you can skip. As I mention previously, you'll have to pick an upper bound for the measurement constraint interval in order to test for S1.

             

            Output the required layers using COPY in a rule check, or use DFM RDB if that works better.

             

            Hope this helps.

             

            dan

            • 4. Re: Calibre rule to measure separation based on an independent intervening layer
              terry.lalonde

              Hi Dan:

               

                Thanks so much for spending time on this.

               

                My concern with your solution, is the “interact” check.  I don’t think it will ensure that the S1 or S2 layers provide a complete shield in the region between the Wells.  The width of the shield is not important but it should shield the other edge completely.  I really hope my explanation is clear.  If nit please ask follow on questions.

               

              Terry

              • 5. Re: Calibre rule to measure separation based on an independent intervening layer
                dan_liddell

                Hi Terry,

                 

                You're welcome.

                 

                DFM SPACE is probably the best tool for shielded measurement applications. But it appeared in 9.3

                 

                Here are some other ideas just off the top of my head. Not really tested, but might help give some other insights into a solution.

                 

                There is the TDDRC operation which has the EXCLUDE_SHIELDED option. The shielding level is adjustable. The challenge with this operation for your check is, it checks only one layer. If you derive a layer such that it's the union of appropriate well, S1, and S2 polygons and then use TDDRC on that union, I think you'll be able to find true (unshielded) errors. I think you're well on your way to finding the appropriate polygons from all the layers.

                 

                The problem is, you'll also have false errors involving original polygons on S1 and S2. So you'll want to filter those out. Using  to ensure derived layer output or possibly some of the other output options may enable you to filter the false results. Otherwise whoever is looking at the results will have to determine which errors are true and which are false "shielding" errors involving S1 and S2 original polygons.

                 

                Ideally, it would be nice to use just topological operations to detect shielding. I had this thought:

                 

                 

                mid_well_region = EXPAND EDGE mid_well_edge OUTSIDE BY 7.501

                 

                // localize the interactions of S1 with mid_well_region.

                // need this in case an S1 polygon interacts with more than one mid_well_region polygon.

                a = S1  AND mid_well_region

                 

                // find the regions that are not "a". this includes regions completely split by "a" (shielding occurs), which is what we're after.

                b = mid_well_region NOT a

                 

                // these are the S1 intersections that split the mid_well_regions into 2

                c = a INTERACT b == 2

                 

                // these are the mid_well_region polygons that represent full S1 shielding

                mid_well_region_c = mid_well_region INTERACT c

                 

                This may be overly simplistic. But if it works, then carry it forward with the test for S2 and check just the non-shielded regions.

                 

                dan

                • 6. Re: Calibre rule to measure separation based on an independent intervening layer
                  terry.lalonde

                  Dan:

                   

                  Thanks again for spending time on this.  I think I have a solution.  I’m not 100% happy with it  but it does seem to work on my test cases. The “REGION” output can be messy;  I could not get EXPAND to cover the mid-well region properly with corner to corner test cases.

                   

                  Rule_1.2.B {@ NWELL (different potential) spaced between 21.0 and 25.0 must be separated by both S1 and S2.

                    xx = EXT z >=21 <25 REGION NOT CONNECTED // Some of these are violations
                  //(used REGION rather than EXPAND
                  // as it seems to output “directional”
                  // error polygons
                  x = SIZE xx BY .01 UNDEROVER // minor cleanup of “region” output
                  w = x AND S1 // S1 cuts violations
                  v = x NOT S1 // violations with S1 cut out
                  u = w INTERACT v>1 // S1 cuts which form complete shields
                  t = x NOT INTERACT u // violations which are not completely shielded by S1

                  s = x AND S2 // S2 cuts violations
                  r = x NOT S2 // violations with S2 cut out
                  q = s INTERACT r>1   // S2 cuts which form complete shields

                    p = x NOT INTERACT q  // violations which are not completely shielded by S2

                   

                    t OR p

                  }

                   

                  Terry

                  • 7. Re: Calibre rule to measure separation based on an independent intervening layer
                    dan_liddell

                    Hi Terry,

                     

                    Again, you're welcome.

                     

                    EXPAND EDGE does have the EXTEND BY and CORNER FILL options, which could help your corner-to-corner cases in certain situations. Whether they will cover all your cases is an open question. : )

                     

                    dan