分区网格的一小段代码
-
codedSource { type vectorCodedSource; selectionMode cellZone; cellZone BANANA; fields (U); name codedSource; codeAddSup #{ const label cellZoneID = mesh().cellZones().findZoneID("BANANA"); // find ID for the cellZone "BANANA" const cellZone& zone = mesh().cellZones()[cellZoneID]; const cellZoneMesh& zoneMesh = zone.zoneMesh(); const labelList& cellsZone = zoneMesh[cellZoneID]; //list of all cellZone cell ID's const scalarField& V = mesh_.V(); // Cell volume Foam::Field<Foam::Vector<double> >& USource = eqn.source(); // get source from fvMatrix //scalarField & Udiag = eqn.diag(); // get diagonal of fvMatrix const scalarField& rho = mesh().lookupObject<scalarField>("rho"); // get density field const vector g (0,-9.81,0) // gravitational vector forAll(cellsZone,i) { const label celli = cellsZone[i]; USource[celli] -= rho[celli]*g/V[celli]; } #}; codeCorrect #{ Pout<< "**codeCorrect**" << endl; #}; codeSetValue #{ Pout<< "**codeSetValue**" << endl; #}; code #{ $codeInclude $codeCorrect $codeAddSup $codeSetValue #};
CFD中文网2016-2023 | 京ICP备15017992号-2