yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #11876
[Branch ~yade-pkg/yade/git-trunk] Rev 3599: FlowEngine safely impose flux at every iteration without remeshing + documentation
------------------------------------------------------------
revno: 3599
committer: Bruno Chareyre <bruno.chareyre@xxxxxxxxxxx>
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_@TEMPLATE_FLOW_NAME@.blockCell`)"))
+ ((string,blockHook,"",,"Python command to be run when remeshing. Anticipated usage: define blocked cells (see also :yref:`TemplateFlowEngine_@TEMPLATE_FLOW_NAME@.blockCell`), 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();}