Changeset View
Changeset View
Standalone View
Standalone View
intern/mantaflow/intern/manta_develop/preprocessed/omp/vortexpart.h
- This file was added.
| // DO NOT EDIT ! | |||||
| // This file is generated using the MantaFlow preprocessor (prep generate). | |||||
| /****************************************************************************** | |||||
| * | |||||
| * MantaFlow fluid solver framework | |||||
| * Copyright 2011 Tobias Pfaff, Nils Thuerey | |||||
| * | |||||
| * This program is free software, distributed under the terms of the | |||||
| * Apache License, Version 2.0 | |||||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||||
| * | |||||
| * Vortex particles | |||||
| * (warning, the vortex methods are currently experimental, and not fully supported!) | |||||
| * | |||||
| ******************************************************************************/ | |||||
| #ifndef _VORTEXPART_H | |||||
| #define _VORTEXPART_H | |||||
| #include "particle.h" | |||||
| namespace Manta { | |||||
| class Mesh; | |||||
| struct VortexParticleData { | |||||
| VortexParticleData() : pos(0.0),vorticity(0.0),sigma(0),flag(0) {} | |||||
| VortexParticleData(const Vec3& p, const Vec3& v, Real sig) : pos(p),vorticity(v),sigma(sig),flag(0) {} | |||||
| Vec3 pos, vorticity; | |||||
| Real sigma; | |||||
| int flag; | |||||
| static ParticleBase::SystemType getType() { return ParticleBase::VORTEX; } | |||||
| }; | |||||
| //! Vortex particles | |||||
| class VortexParticleSystem : public ParticleSystem<VortexParticleData> {public: | |||||
| VortexParticleSystem(FluidSolver* parent); static int _W_0 (PyObject* _self, PyObject* _linargs, PyObject* _kwds) { | |||||
| PbClass* obj = Pb::objFromPy(_self); if (obj) delete obj; try { | |||||
| PbArgs _args(_linargs, _kwds); bool noTiming = _args.getOpt<bool>("notiming", -1, 0); pbPreparePlugin(0, "VortexParticleSystem::VortexParticleSystem" , !noTiming ); { | |||||
| ArgLocker _lock; FluidSolver* parent = _args.getPtr<FluidSolver >("parent",0,&_lock); obj = new VortexParticleSystem(parent); obj->registerObject(_self, &_args); _args.check(); } | |||||
| pbFinalizePlugin(obj->getParent(),"VortexParticleSystem::VortexParticleSystem" , !noTiming ); return 0; } | |||||
| catch(std::exception& e) { | |||||
| pbSetError("VortexParticleSystem::VortexParticleSystem",e.what()); return -1; } | |||||
| } | |||||
| void advectSelf(Real scale=1.0, int integrationMode=IntRK4); static PyObject* _W_1 (PyObject* _self, PyObject* _linargs, PyObject* _kwds) { | |||||
| try { | |||||
| PbArgs _args(_linargs, _kwds); VortexParticleSystem* pbo = dynamic_cast<VortexParticleSystem*>(Pb::objFromPy(_self)); bool noTiming = _args.getOpt<bool>("notiming", -1, 0); pbPreparePlugin(pbo->getParent(), "VortexParticleSystem::advectSelf" , !noTiming); PyObject *_retval = 0; { | |||||
| ArgLocker _lock; Real scale = _args.getOpt<Real >("scale",0,1.0,&_lock); int integrationMode = _args.getOpt<int >("integrationMode",1,IntRK4,&_lock); pbo->_args.copy(_args); _retval = getPyNone(); pbo->advectSelf(scale,integrationMode); pbo->_args.check(); } | |||||
| pbFinalizePlugin(pbo->getParent(),"VortexParticleSystem::advectSelf" , !noTiming); return _retval; } | |||||
| catch(std::exception& e) { | |||||
| pbSetError("VortexParticleSystem::advectSelf",e.what()); return 0; } | |||||
| } | |||||
| void applyToMesh(Mesh& mesh, Real scale=1.0, int integrationMode=IntRK4); static PyObject* _W_2 (PyObject* _self, PyObject* _linargs, PyObject* _kwds) { | |||||
| try { | |||||
| PbArgs _args(_linargs, _kwds); VortexParticleSystem* pbo = dynamic_cast<VortexParticleSystem*>(Pb::objFromPy(_self)); bool noTiming = _args.getOpt<bool>("notiming", -1, 0); pbPreparePlugin(pbo->getParent(), "VortexParticleSystem::applyToMesh" , !noTiming); PyObject *_retval = 0; { | |||||
| ArgLocker _lock; Mesh& mesh = *_args.getPtr<Mesh >("mesh",0,&_lock); Real scale = _args.getOpt<Real >("scale",1,1.0,&_lock); int integrationMode = _args.getOpt<int >("integrationMode",2,IntRK4,&_lock); pbo->_args.copy(_args); _retval = getPyNone(); pbo->applyToMesh(mesh,scale,integrationMode); pbo->_args.check(); } | |||||
| pbFinalizePlugin(pbo->getParent(),"VortexParticleSystem::applyToMesh" , !noTiming); return _retval; } | |||||
| catch(std::exception& e) { | |||||
| pbSetError("VortexParticleSystem::applyToMesh",e.what()); return 0; } | |||||
| } | |||||
| virtual ParticleBase* clone(); public: PbArgs _args; } | |||||
| #define _C_VortexParticleSystem | |||||
| ; | |||||
| } // namespace | |||||
| #endif | |||||