------------------------------------------------------------ revno: 3599 committer: Bruno Chareyre <[email protected]> timestamp: Fri 2015-02-27 18:05:27 +0100 message: FlowEngine safely impose flux at every iteration without remeshing + documentation modified: pkg/pfv/FlowEngine.hpp.in pkg/pfv/FlowEngine.ipp.in
-- lp:yade https://code.launchpad.net/~yade-pkg/yade/git-trunk Your team Yade developers is subscribed to branch lp:yade. To unsubscribe from this branch go to https://code.launchpad.net/~yade-pkg/yade/git-trunk/+edit-subscription
=== modified file 'pkg/pfv/FlowEngine.hpp.in' --- pkg/pfv/FlowEngine.hpp.in 2014-10-29 16:49:20 +0000 +++ pkg/pfv/FlowEngine.hpp.in 2015-02-27 17:05:27 +0000 @@ -291,7 +291,7 @@ #endif ((vector<Real>, boundaryPressure,vector<Real>(),,"values defining pressure along x-axis for the top surface. See also :yref:`@TEMPLATE_FLOW_NAME@::boundaryXPos`")) ((vector<Real>, boundaryXPos,vector<Real>(),,"values of the x-coordinate for which pressure is defined. See also :yref:`@TEMPLATE_FLOW_NAME@::boundaryPressure`")) - ((string,blockHook,"",,"Python command to be run after triangulation to define blocked cells (see also :yref:`TemplateFlowEngine_@[email protected]`)")) + ((string,blockHook,"",,"Python command to be run when remeshing. Anticipated usage: define blocked cells (see also :yref:`TemplateFlowEngine_@[email protected]`), or apply exotic types of boundary conditions which need to visit the newly built mesh")) , /*deprec*/ ((meanK_opt,clampKValues,"the name changed")) === modified file 'pkg/pfv/FlowEngine.ipp.in' --- pkg/pfv/FlowEngine.ipp.in 2014-10-29 16:49:20 +0000 +++ pkg/pfv/FlowEngine.ipp.in 2015-02-27 17:05:27 +0000 @@ -179,6 +179,12 @@ template< class _CellInfo, class _VertexInfo, class _Tesselation, class solverT > void TemplateFlowEngine_@TEMPLATE_FLOW_NAME@<_CellInfo,_VertexInfo,_Tesselation,solverT>::imposeFlux ( Vector3r pos, Real flux){ solver->imposedF.push_back ( pair<CGT::Point,Real> ( CGT::Point ( pos[0],pos[1],pos[2] ), flux ) ); + CellHandle cell=solver->T[solver->currentTes].Triangulation().locate(CGT::Point(pos[0],pos[1],pos[2])); + if (cell->info().isGhost) cerr<<"Imposing pressure in a ghost cell."<<endl; + for (unsigned int kk=0;kk<solver->IPCells.size();kk++){ + if (cell==solver->IPCells[kk]) cerr<<"Both flux and pressure are imposed in the same cell."<<endl; + else if (cell->info().Pcondition) cerr<<"Imposed flux fall in a pressure boundary condition."<<endl;} + solver->IFCells.push_back(cell); } template< class _CellInfo, class _VertexInfo, class _Tesselation, class solverT > void TemplateFlowEngine_@TEMPLATE_FLOW_NAME@<_CellInfo,_VertexInfo,_Tesselation,solverT>::clearImposedPressure () { solver->imposedP.clear(); solver->IPCells.clear();}
_______________________________________________ Mailing list: https://launchpad.net/~yade-dev Post to : [email protected] Unsubscribe : https://launchpad.net/~yade-dev More help : https://help.launchpad.net/ListHelp

