diff --git a/applications/utilities/mesh/manipulation/createBaffles/createBafflesDict b/applications/utilities/mesh/manipulation/createBaffles/createBafflesDict index 27ff9d287e..a9dae64b47 100644 --- a/applications/utilities/mesh/manipulation/createBaffles/createBafflesDict +++ b/applications/utilities/mesh/manipulation/createBaffles/createBafflesDict @@ -19,13 +19,18 @@ FoamFile // - or converting boundary faces into a boundary face // (internalFacesOnly=false)(though should use really createPatch // to do this) -// - can also create duplicate (overlapping) sets of baffles: -// - internalFacesOnly = false -// - have 4 entries in patches: -// - master -// - slave -// - additional master -// - additional slave +// - specification in one of two modes: +// - patchPairs : create two patches of same type, same input +// - patches : create patches separately, full control over what +// to create on what side +// (this mode can also create duplicate (overlapping) +// sets of baffles: +// - internalFacesOnly = false +// - have 4 entries in patches: +// - master +// - slave +// - additional master +// - additional slave) // Whether to convert internal faces only (so leave boundary faces intact). diff --git a/doc/Doxygen/css/doxyTabs.css b/doc/Doxygen/css/doxyTabs.css index 58f32ccf41..c97c25ee55 100644 --- a/doc/Doxygen/css/doxyTabs.css +++ b/doc/Doxygen/css/doxyTabs.css @@ -12,7 +12,8 @@ div.navigation div.tabs, -div.tabs2 +div.tabs2, +div.tabs3 { width : 100%; padding-top : 5px; @@ -22,7 +23,8 @@ div.tabs2 } div.tabs ul, -div.tabs2 ul +div.tabs2 ul, +div.tabs3 ul { margin: 0px; padding-left: 10px; @@ -33,7 +35,8 @@ div.tabs2 ul div.tabs li, div.tabs form, -div.tabs2 li, div.tabs2 form +div.tabs2 li, div.tabs2 form, +div.tabs3 li, div.tabs3 form { display : inline; margin : 0px; @@ -41,7 +44,8 @@ div.tabs2 li, div.tabs2 form } div.tabs ul li, -div.tabs2 ul li +div.tabs2 ul li, +div.tabs3 ul li { padding-top: 10px; padding-bottom: 10px; @@ -77,14 +81,19 @@ div.tabs a:hover, div.tabs2 a:link, div.tabs2 a:visited, div.tabs2 a:active, -div.tabs2 a:hover +div.tabs2 a:hover, +div.tabs3 a:link, +div.tabs3 a:visited, +div.tabs3 a:active, +div.tabs3 a:hover { color : #000000; color:#555; } div.tabs span, -div.tabs2 span +div.tabs2 span, +div.tabs3 span { display : inline; padding : 0px 9px; diff --git a/doc/Doxygen/css/doxygen.css b/doc/Doxygen/css/doxygen.css index c063349e6e..83787a71f9 100644 --- a/doc/Doxygen/css/doxygen.css +++ b/doc/Doxygen/css/doxygen.css @@ -11,49 +11,49 @@ body, table, div, p, dl { /* @group Heading Levels */ h1 { - text-align: center; - font-size: 150%; + text-align: center; + font-size: 150%; } h2 { - font-size: 120%; + font-size: 120%; } h3 { - font-size: 100%; + font-size: 100%; } dt { - font-weight: bold; + font-weight: bold; } div.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; } p.startli, p.startdd, p.starttd { - margin-top: 2px; + margin-top: 2px; } p.endli { - margin-bottom: 0px; + margin-bottom: 0px; } p.enddd { - margin-bottom: 4px; + margin-bottom: 4px; } p.endtd { - margin-bottom: 2px; + margin-bottom: 2px; } /* @end */ caption { - font-weight: bold; + font-weight: bold; } span.legend { @@ -67,47 +67,47 @@ h3.version { } div.qindex, div.navtab{ - background-color: #e8eef2; - border: 1px solid #84b0c7; - text-align: center; - margin: 2px; - padding: 2px; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; } div.qindex, div.navpath { - width: 100%; - line-height: 140%; + width: 100%; + line-height: 140%; } div.navtab { - margin-right: 15px; + margin-right: 15px; } /* @group Link Styling */ a { - color: #153788; - font-weight: normal; - text-decoration: none; + color: #153788; + font-weight: normal; + text-decoration: none; } .contents a:visited { - color: #1b77c5; + color: #1b77c5; } a:hover { - text-decoration: underline; + text-decoration: underline; } a.qindex { - font-weight: bold; + font-weight: bold; } a.qindexHL { - font-weight: bold; - background-color: #6666cc; - color: #ffffff; - border: 1px double #9295C2; + font-weight: bold; + background-color: #6666cc; + color: #ffffff; + border: 1px double #9295C2; } .contents a.qindexHL:visited { @@ -115,90 +115,92 @@ a.qindexHL { } a.el { - font-weight: bold; + font-weight: bold; } a.elRef { } a.code { - color: #3030f0; + color: #3030f0;; + font-family: "Courier New", Courier, monospace, fixed; } a.codeRef { - color: #3030f0; + color: #3030f0;; + font-family: "Courier New", Courier, monospace, fixed; } /* @end */ dl.el { - margin-left: -1cm; + margin-left: -1cm; } .fragment { - font-family: monospace, fixed; - font-size: 105%; + font-size: 105%; + font-family: "Courier New", Courier, monospace, fixed; } pre.fragment { - border: 1px solid #CCCCCC; - background-color: #f5f5f5; - padding: 4px 6px; - margin: 4px 8px 4px 2px; - overflow: auto; - word-wrap: break-word; - font-size: 9pt; - line-height: 125%; + border: 1px solid #CCCCCC; + background-color: #f5f5f5; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; } div.ah { - background-color: black; - font-weight: bold; - color: #ffffff; - margin-bottom: 3px; - margin-top: 3px + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px } div.groupHeader { - margin-left: 16px; - margin-top: 12px; - margin-bottom: 6px; - font-weight: bold; + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold; } div.groupText { - margin-left: 16px; - font-style: italic; + margin-left: 16px; + font-style: italic; } body { - background: white; - color: black; - margin-right: 20px; - margin-left: 20px; + background: white; + color: black; + margin-right: 20px; + margin-left: 20px; } td.indexkey { - background-color: #e8eef2; - font-weight: bold; - border: 1px solid #CCCCCC; - margin: 2px 0px 2px 0; - padding: 2px 10px; + background-color: #e8eef2; + font-weight: bold; + border: 1px solid #CCCCCC; + margin: 2px 0px 2px 0; + padding: 2px 10px; } td.indexvalue { - background-color: #e8eef2; - border: 1px solid #CCCCCC; - padding: 2px 10px; - margin: 2px 0px; + background-color: #e8eef2; + border: 1px solid #CCCCCC; + padding: 2px 10px; + margin: 2px 0px; } tr.memlist { - background-color: #f0f0f0; + background-color: #f0f0f0; } p.formulaDsp { - text-align: center; + text-align: center; } img.formulaDsp { @@ -206,113 +208,124 @@ img.formulaDsp { } img.formulaInl { - vertical-align: middle; + vertical-align: middle; } div.center { - text-align: center; + text-align: center; margin-top: 0px; margin-bottom: 0px; padding: 0px; } div.center img { - border: 0px; + border: 0px; } img.footer { - border: 0px; - vertical-align: middle; + border: 0px; + vertical-align: middle; } /* @group Code Colorization */ span.keyword { - color: #008000 + color: #008000; + font-family: "Courier New", Courier, monospace, fixed; } span.keywordtype { - color: #604020 + color: #604020; + font-family: "Courier New", Courier, monospace, fixed; } span.keywordflow { - color: #e08000 + color: #e08000; + font-family: "Courier New", Courier, monospace, fixed; } span.comment { - color: #800000 + color: #800000; + font-family: "Courier New", Courier, monospace, fixed; } span.preprocessor { - color: #806020 + color: #806020; + font-family: "Courier New", Courier, monospace, fixed; } span.stringliteral { - color: #002080 + color: #002080; + font-family: "Courier New", Courier, monospace, fixed; } span.charliteral { - color: #008080 + color: #008080; + font-family: "Courier New", Courier, monospace, fixed; } span.vhdldigit { - color: #ff00ff + color: #ff00ff; + font-family: "Courier New", Courier, monospace, fixed; } span.vhdlchar { - color: #000000 + color: #000000; + font-family: "Courier New", Courier, monospace, fixed; } span.vhdlkeyword { - color: #700070 + color: #700070; + font-family: "Courier New", Courier, monospace, fixed; } span.vhdllogic { - color: #ff0000 + color: #ff0000; + font-family: "Courier New", Courier, monospace, fixed; } /* @end */ .search { - color: #003399; - font-weight: bold; + color: #003399; + font-weight: bold; } form.search { - margin-bottom: 0px; - margin-top: 0px; + margin-bottom: 0px; + margin-top: 0px; } input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; } td.tiny { - font-size: 75%; + font-size: 75%; } .dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid #84b0c7; + padding: 4px; + border-collapse: collapse; + border: 1px solid #84b0c7; } th.dirtab { - background: #e8eef2; - font-weight: bold; + background: #e8eef2; + font-weight: bold; } hr { - height: 0px; - border: none; - border-top: 1px solid #666; + height: 0px; + border: none; + border-top: 1px solid #666; } hr.footer { - height: 1px; + height: 1px; } /* @group Member Descriptions */ @@ -320,19 +333,19 @@ hr.footer { .mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #FAFAFA; - border: none; - margin: 4px; - padding: 1px 0 0 8px; + background-color: #FAFAFA; + border: none; + margin: 4px; + padding: 1px 0 0 8px; } .mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: #555; + padding: 0px 8px 4px 8px; + color: #555; } .memItemLeft, .memItemRight, .memTemplParams { - border-top: 1px solid #ccc; + border-top: 1px solid #ccc; } .memItemLeft, .memTemplItemLeft { @@ -340,7 +353,7 @@ hr.footer { } .memTemplParams { - color: #606060; + color: #606060; white-space: nowrap; } @@ -351,24 +364,24 @@ hr.footer { /* Styles for detailed member documentation */ .memtemplate { - font-size: 80%; - color: #606060; - font-weight: normal; - margin-left: 3px; + font-size: 80%; + color: #606060; + font-weight: normal; + margin-left: 3px; } .memnav { - background-color: #e8eef2; - border: 1px solid #84b0c7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; } .memitem { - padding: 0; - margin-bottom: 10px; + padding: 0; + margin-bottom: 10px; } .memname { @@ -415,19 +428,19 @@ hr.footer { } .paramkey { - text-align: right; + text-align: right; } .paramtype { - white-space: nowrap; + white-space: nowrap; } .paramname { - color: #602020; - white-space: nowrap; + color: #602020; + white-space: nowrap; } .paramname em { - font-style: normal; + font-style: normal; } /* @end */ @@ -437,21 +450,21 @@ hr.footer { /* for the tree view */ .ftvtree { - font-family: sans-serif; - margin: 0.5em; + font-family: sans-serif; + margin: 0.5em; } /* these are for tree view when used as main index */ .directory { - font-size: 9pt; - font-weight: bold; + font-size: 9pt; + font-weight: bold; } .directory h3 { - margin: 0px; - margin-top: 1em; - font-size: 11pt; + margin: 0px; + margin-top: 1em; + font-size: 11pt; } /* @@ -463,86 +476,86 @@ proper pixel height of your image. /* .directory h3.swap { - height: 61px; - background-repeat: no-repeat; - background-image: url("yourimage.gif"); + height: 61px; + background-repeat: no-repeat; + background-image: url("yourimage.gif"); } .directory h3.swap span { - display: none; + display: none; } */ .directory > h3 { - margin-top: 0; + margin-top: 0; } .directory p { - margin: 0px; - white-space: nowrap; + margin: 0px; + white-space: nowrap; } .directory div { - display: none; - margin: 0px; + display: none; + margin: 0px; } .directory img { - vertical-align: -30%; + vertical-align: -30%; } /* these are for tree view when not used as main index */ .directory-alt { - font-size: 100%; - font-weight: bold; + font-size: 100%; + font-weight: bold; } .directory-alt h3 { - margin: 0px; - margin-top: 1em; - font-size: 11pt; + margin: 0px; + margin-top: 1em; + font-size: 11pt; } .directory-alt > h3 { - margin-top: 0; + margin-top: 0; } .directory-alt p { - margin: 0px; - white-space: nowrap; + margin: 0px; + white-space: nowrap; } .directory-alt div { - display: none; - margin: 0px; + display: none; + margin: 0px; } .directory-alt img { - vertical-align: -30%; + vertical-align: -30%; } /* @end */ address { - font-style: normal; - color: #333; + font-style: normal; + color: #333; } table.doxtable { - border-collapse:collapse; + border-collapse:collapse; } table.doxtable td, table.doxtable th { - border: 1px solid #153788; - padding: 3px 7px 2px; + border: 1px solid #153788; + padding: 3px 7px 2px; } table.doxtable th { - background-color: #254798; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; - text-align:left; + background-color: #254798; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; } diff --git a/src/OpenFOAM/db/functionObjects/outputFilterOutputControl/outputFilterOutputControl.H b/src/OpenFOAM/db/functionObjects/outputFilterOutputControl/outputFilterOutputControl.H index e27a2507d2..240ec43645 100644 --- a/src/OpenFOAM/db/functionObjects/outputFilterOutputControl/outputFilterOutputControl.H +++ b/src/OpenFOAM/db/functionObjects/outputFilterOutputControl/outputFilterOutputControl.H @@ -56,12 +56,12 @@ public: //- The output control options enum outputControls { - ocTimeStep, /*!< execution is coupled to the time-step */ - ocOutputTime, /*!< execution is coupled to the output-time */ + ocTimeStep, /*!< execution is coupled to the time-step */ + ocOutputTime, /*!< execution is coupled to the output-time */ ocAdjustableTime, /*!< Adjust time step for dumping */ ocRunTime, /*!< run time for dumping */ ocClockTime, /*!< clock time for dumping */ - ocCpuTime /*!< cpu time for dumping */ + ocCpuTime /*!< cpu time for dumping */ }; @@ -82,7 +82,7 @@ private: // a value <= 1 means execute at every time step label outputInterval_; - //- Dumping counter for ocOutputTime + //- Dumping counter for ocOutputTime or index dump for ocAdjustableTime label outputTimeLastDump_; //- Dump each deltaT (adjust Ttime) @@ -123,19 +123,19 @@ public: bool output(); //- Return outputControl - outputControls outputControl() + outputControls outputControl() const { return outputControl_; } //- Return writeInterval - scalar writeInterval() + scalar writeInterval() const { return writeInterval_; } //- Return outputTimeLastDump - label outputTimeLastDump() + label outputTimeLastDump() const { return outputTimeLastDump_; } diff --git a/src/OpenFOAM/meshes/polyMesh/polyMesh.C b/src/OpenFOAM/meshes/polyMesh/polyMesh.C index 33c445f416..af15b5edf5 100644 --- a/src/OpenFOAM/meshes/polyMesh/polyMesh.C +++ b/src/OpenFOAM/meshes/polyMesh/polyMesh.C @@ -1351,8 +1351,10 @@ bool Foam::polyMesh::pointInCell case FACECENTRETETS: { - const point& cc = cellCentres()[cellI]; + // only test that point is on inside of plane defined by cell face + // triangles const cell& cFaces = cells()[cellI]; + forAll(cFaces, cFaceI) { label faceI = cFaces[cFaceI]; @@ -1376,31 +1378,62 @@ bool Foam::polyMesh::pointInCell nextPointI = f[fp]; } - if + triPointRef faceTri ( - tetPointRef - ( - points()[nextPointI], - points()[pointI], - fc, - cc - ).inside(p) - ) + points()[pointI], + points()[nextPointI], + fc + ); + + vector proj = p - faceTri.centre(); + + if ((faceTri.normal() & proj) > 0) { - return true; + return false; } } } - return false; + return true; } break; case FACEDIAGTETS: { - label tetFaceI, tetPtI; - findTetFacePt(cellI, p, tetFaceI, tetPtI); + // only test that point is on inside of plane defined by cell face + // triangles + const cell& cFaces = cells()[cellI]; - return tetFaceI != -1; + forAll(cFaces, cFaceI) + { + label faceI = cFaces[cFaceI]; + const face& f = faces_[faceI]; + + for (label tetPtI = 1; tetPtI < f.size() - 1; tetPtI++) + { + // Get tetIndices of face triangle + tetIndices faceTetIs + ( + polyMeshTetDecomposition::triangleTetIndices + ( + *this, + faceI, + cellI, + tetPtI + ) + ); + + triPointRef faceTri = faceTetIs.faceTri(*this); + + vector proj = p - faceTri.centre(); + + if ((faceTri.normal() & proj) > 0) + { + return false; + } + } + } + + return true; } break; } diff --git a/src/OpenFOAM/meshes/polyMesh/polyMeshTetDecomposition/tetIndices.H b/src/OpenFOAM/meshes/polyMesh/polyMeshTetDecomposition/tetIndices.H index 7c2102ff55..cd03b21d69 100644 --- a/src/OpenFOAM/meshes/polyMesh/polyMeshTetDecomposition/tetIndices.H +++ b/src/OpenFOAM/meshes/polyMesh/polyMeshTetDecomposition/tetIndices.H @@ -85,12 +85,12 @@ class tetIndices label faceBasePtI_; //- point on the face such that the right-hand circulation - // {faceBasePtI_, facePtIA_, facePtBI_} + // {faceBasePtI_, facePtAI_, facePtBI_} // forms a triangle that points out of the tet label facePtAI_; //- point on the face such that the right-hand circulation - // {faceBasePtI_, facePtIA_, facePtBI_} + // {faceBasePtI_, facePtAI_, facePtBI_} // forms a triangle that points out of the tet label facePtBI_; diff --git a/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshFindCell.C b/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshFindCell.C index bfa67c5574..edb261c601 100644 --- a/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshFindCell.C +++ b/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshFindCell.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -66,8 +66,6 @@ bool Foam::primitiveMesh::pointInCell(const point& p, label celli) const const vectorField& cf = faceCentres(); const vectorField& Sf = faceAreas(); - bool inCell = true; - forAll(f, facei) { label nFace = f[facei]; @@ -77,10 +75,14 @@ bool Foam::primitiveMesh::pointInCell(const point& p, label celli) const { normal = -normal; } - inCell = inCell && ((normal & proj) <= 0); + + if ((normal & proj) > 0) + { + return false; + } } - return inCell; + return true; } diff --git a/src/OpenFOAM/primitives/functions/DataEntry/DataEntry/DataEntryNew.C b/src/OpenFOAM/primitives/functions/DataEntry/DataEntry/DataEntryNew.C index dfbb95674b..8a355ca9a6 100644 --- a/src/OpenFOAM/primitives/functions/DataEntry/DataEntry/DataEntryNew.C +++ b/src/OpenFOAM/primitives/functions/DataEntry/DataEntry/DataEntryNew.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -34,7 +34,7 @@ Foam::autoPtr > Foam::DataEntry::New const dictionary& dict ) { - Istream& is(dict.lookup(entryName)); + Istream& is(dict.lookup(entryName, false)); token firstToken(is); diff --git a/src/dynamicMesh/Make/files b/src/dynamicMesh/Make/files index f769607f94..c9c748ec4a 100644 --- a/src/dynamicMesh/Make/files +++ b/src/dynamicMesh/Make/files @@ -84,7 +84,9 @@ polyMeshAdder/polyMeshAdder.C fvMeshTools/fvMeshTools.C motionSmoother/motionSmoother.C -motionSmoother/motionSmootherCheck.C +motionSmoother/motionSmootherAlgo.C +motionSmoother/motionSmootherAlgoCheck.C +motionSmoother/motionSmootherData.C motionSmoother/polyMeshGeometry/polyMeshGeometry.C motionSmoother/badQualityToCell/badQualityToCell.C motionSmoother/badQualityToFace/badQualityToFace.C diff --git a/src/dynamicMesh/motionSmoother/motionSmoother.C b/src/dynamicMesh/motionSmoother/motionSmoother.C index 3e87fbd7d5..d30ee35732 100644 --- a/src/dynamicMesh/motionSmoother/motionSmoother.C +++ b/src/dynamicMesh/motionSmoother/motionSmoother.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -24,14 +24,6 @@ License \*---------------------------------------------------------------------------*/ #include "motionSmoother.H" -#include "twoDPointCorrector.H" -#include "faceSet.H" -#include "pointSet.H" -#include "fixedValuePointPatchFields.H" -#include "pointConstraint.H" -#include "syncTools.H" -#include "meshTools.H" -#include "OFstream.H" // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // @@ -41,473 +33,6 @@ namespace Foam } -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -void Foam::motionSmoother::testSyncPositions -( - const pointField& fld, - const scalar maxMag -) const -{ - pointField syncedFld(fld); - - syncTools::syncPointPositions - ( - mesh_, - syncedFld, - minEqOp(), // combine op - point(GREAT,GREAT,GREAT) // null - ); - - forAll(syncedFld, i) - { - if (mag(syncedFld[i] - fld[i]) > maxMag) - { - FatalErrorIn - ( - "motionSmoother::testSyncPositions" - "(" - "const pointField&, " - "const scalar" - ")" - ) << "On point " << i << " point:" << fld[i] - << " synchronised point:" << syncedFld[i] - << abort(FatalError); - } - } -} - - -//Foam::tmp Foam::motionSmoother::sumWeights -//( -// const scalarField& edgeWeight -//) const -//{ -// tmp tsumWeight -// ( -// new scalarField -// ( -// mesh_.nPoints(), -// 0.0 -// ) -// ); -// scalarField& sumWeight = tsumWeight(); -// -// const edgeList& edges = mesh_.edges(); -// -// forAll(edges, edgeI) -// { -// if (isMasterEdge_.get(edgeI) == 1) -// { -// const edge& e = edges[edgeI]; -// const scalar w = edgeWeight[edgeI]; -// sumWeight[e[0]] += w; -// sumWeight[e[1]] += w; -// } -// } -// -// -// // Add coupled contributions -// // ~~~~~~~~~~~~~~~~~~~~~~~~~ -// syncTools::syncPointList -// ( -// mesh, -// sumWeight, -// plusEqOp(), -// scalar(0) // null value -// ); -// -// return tsumWeight; -//} - - -// From pointPatchInterpolation -void Foam::motionSmoother::makePatchPatchAddressing() -{ - if (debug) - { - Pout<< "motionSmoother::makePatchPatchAddressing() : " - << "constructing boundary addressing" - << endl; - } - - const polyBoundaryMesh& bm = mesh_.boundaryMesh(); - const pointBoundaryMesh& pbm = pMesh_.boundary(); - - // first count the total number of patch-patch points - - label nPatchPatchPoints = 0; - - forAll(bm, patchi) - { - if (!isA(bm[patchi])) - { - nPatchPatchPoints += bm[patchi].boundaryPoints().size(); - } - } - - - // Go through all patches and mark up the external edge points - Map