00001 /****************************************************************************** 00002 * SOFA, Simulation Open-Framework Architecture, version 1.0 beta 3 * 00003 * (c) 2006-2008 MGH, INRIA, USTL, UJF, CNRS * 00004 * * 00005 * This library is free software; you can redistribute it and/or modify it * 00006 * under the terms of the GNU Lesser General Public License as published by * 00007 * the Free Software Foundation; either version 2.1 of the License, or (at * 00008 * your option) any later version. * 00009 * * 00010 * This library is distributed in the hope that it will be useful, but WITHOUT * 00011 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * 00012 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * 00013 * for more details. * 00014 * * 00015 * You should have received a copy of the GNU Lesser General Public License * 00016 * along with this library; if not, write to the Free Software Foundation, * 00017 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * 00018 ******************************************************************************* 00019 * SOFA :: Modules * 00020 * * 00021 * Authors: The SOFA Team and external contributors (see Authors.txt) * 00022 * * 00023 * Contact information: contact@sofa-framework.org * 00024 ******************************************************************************/ 00025 00026 /*************************************************************************** 00027 * * 00028 * This program is free software; you can redistribute it and/or modify * 00029 * it under the terms of the GNU General Public License as published by * 00030 * the Free Software Foundation; either version 2 of the License, or * 00031 * (at your option) any later version. * 00032 * * 00033 ***************************************************************************/ 00034 00035 #include "PMLBody.h" 00036 #include "sofa/component/odesolver/CGImplicitSolver.h" 00037 #include "sofa/component/odesolver/EulerSolver.h" 00038 #include "sofa/component/odesolver/StaticSolver.h" 00039 #include "sofa/component/odesolver/RungeKutta4Solver.h" 00040 using namespace sofa::component::odesolver; 00041 00042 namespace sofa 00043 { 00044 00045 namespace filemanager 00046 { 00047 00048 namespace pml 00049 { 00050 00051 00052 PMLBody::PMLBody() 00053 { 00054 collisionsON = false; 00055 00056 mass=NULL; 00057 topology=NULL; 00058 forcefield=NULL; 00059 mmodel=NULL; 00060 solver = NULL; 00061 00062 AtomsToDOFsIndexes.clear(); 00063 } 00064 00065 PMLBody::~PMLBody() 00066 { 00067 if(mass) delete mass; 00068 if(topology) delete topology; 00069 if(forcefield) delete forcefield; 00070 if (solver) delete solver; 00071 } 00072 00073 void PMLBody::createSolver() 00074 { 00075 if(solverName == "Static") solver = new StaticSolver; 00076 else if(solverName == "Euler") solver = new EulerSolver; 00077 else if(solverName == "RungeKutta4") solver = new RungeKutta4Solver; 00078 else if(solverName == "None") return; 00079 else solver = new CGImplicitSolver; 00080 00081 parentNode->addObject(solver); 00082 } 00083 00084 00085 } 00086 } 00087 }
1.5.7.1