Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "setToCellZone.H"
00027 #include <OpenFOAM/polyMesh.H>
00028 #include <meshTools/cellZoneSet.H>
00029
00030 #include <OpenFOAM/addToRunTimeSelectionTable.H>
00031
00032
00033
00034 namespace Foam
00035 {
00036
00037 defineTypeNameAndDebug(setToCellZone, 0);
00038
00039 addToRunTimeSelectionTable(topoSetSource, setToCellZone, word);
00040
00041 addToRunTimeSelectionTable(topoSetSource, setToCellZone, istream);
00042
00043 }
00044
00045
00046 Foam::topoSetSource::addToUsageTable Foam::setToCellZone::usage_
00047 (
00048 setToCellZone::typeName,
00049 "\n Usage: setToCellZone <cellSet>\n\n"
00050 " Select all cells in the cellSet.\n\n"
00051 );
00052
00053
00054
00055
00056
00057 Foam::setToCellZone::setToCellZone
00058 (
00059 const polyMesh& mesh,
00060 const word& setName
00061 )
00062 :
00063 topoSetSource(mesh),
00064 setName_(setName)
00065 {}
00066
00067
00068
00069 Foam::setToCellZone::setToCellZone
00070 (
00071 const polyMesh& mesh,
00072 const dictionary& dict
00073 )
00074 :
00075 topoSetSource(mesh),
00076 setName_(dict.lookup("set"))
00077 {}
00078
00079
00080
00081 Foam::setToCellZone::setToCellZone
00082 (
00083 const polyMesh& mesh,
00084 Istream& is
00085 )
00086 :
00087 topoSetSource(mesh),
00088 setName_(checkIs(is))
00089 {}
00090
00091
00092
00093
00094 Foam::setToCellZone::~setToCellZone()
00095 {}
00096
00097
00098
00099
00100 void Foam::setToCellZone::applyToSet
00101 (
00102 const topoSetSource::setAction action,
00103 topoSet& set
00104 ) const
00105 {
00106 if (!isA<cellZoneSet>(set))
00107 {
00108 WarningIn
00109 (
00110 "setToCellZone::applyToSet(const topoSetSource::setAction"
00111 ", topoSet"
00112 ) << "Operation only allowed on a cellZoneSet." << endl;
00113 }
00114 else
00115 {
00116 cellZoneSet& fzSet = refCast<cellZoneSet>(set);
00117
00118 if ((action == topoSetSource::NEW) || (action == topoSetSource::ADD))
00119 {
00120 Info<< " Adding all cells from cellSet " << setName_
00121 << " ..." << endl;
00122
00123
00124 cellSet fSet(mesh_, setName_);
00125
00126
00127 DynamicList<label> newAddressing(fzSet.addressing());
00128
00129 forAllConstIter(cellSet, fSet, iter)
00130 {
00131 label cellI = iter.key();
00132
00133 if (!fzSet.found(cellI))
00134 {
00135 newAddressing.append(cellI);
00136 }
00137 }
00138
00139 fzSet.addressing().transfer(newAddressing);
00140 fzSet.updateSet();
00141 }
00142 else if (action == topoSetSource::DELETE)
00143 {
00144 Info<< " Removing all cells from cellSet " << setName_
00145 << " ..." << endl;
00146
00147
00148 cellSet loadedSet(mesh_, setName_);
00149
00150
00151 DynamicList<label> newAddressing(fzSet.addressing().size());
00152
00153 forAll(fzSet.addressing(), i)
00154 {
00155 if (!loadedSet.found(fzSet.addressing()[i]))
00156 {
00157 newAddressing.append(fzSet.addressing()[i]);
00158 }
00159 }
00160 fzSet.addressing().transfer(newAddressing);
00161 fzSet.updateSet();
00162 }
00163 }
00164 }
00165
00166
00167