1. Erhan Turan
  2. porfe


# PorFE # PorFE is an extension on [ParFE](http://parfe.sourceforge.net) to cope with poroelasticity. PorFE is licensed under GPL. The solver is coded in C++ over [Trilinos](http://www.trilinos.org) framework. In addition to the [requirements](http://parfe.sourceforge.net/install.php) listed for [ParFE](http://parfe.sourceforge.net), Belos package should also be activated within Trilinos to able to run PorFE. Currently, test runs are in process on [Swiss National Supercomputing Centre](http://www.cscs.ch). #Installation# In order to build porfe, several packages should be installed. Other than MPI and a valid C++ compiler, [Trilinos](http://www.trilinos.org) is needed which is the basis of the code that gives the ability to code for parallel environments. Please enable belos package, while configuring Trilinos for which cmake is invoked. [ParMETIS 3.x](http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview) is needed for graph partitioning. Please do not use version 4.x since it is not compatible with Trilinos, yet. [HDF5](http://www.hdfgroup.org/) libraries version 1.8.x are needed to read and write on the mesh files that are used with PorFE. #Parameters# New command line parameters introduced with PorFE are, --precdir =[left]/right : to select the preconditioner direction. --krylov =[gmres]/minres : to use either gmres(100) or minres. --printmatlab = [no]/yes : to print out the vectors and matrices for matlab. --totaltime = [1.0] : total transient simulation time. --deltat = [0.1] : time increment. --maxtimeiters = [10] : maximum number of time iterations, can be used to limit transient run. --auutolerance=[1e-5] : PCG tolerance for inner solver on Auu in precB. --afftolerance=[1e-5] : PCG tolerance for inner solver on Aff in precB. --spptolerance=[1e-5] : PCG tolerance for inner solver on Spp in precB. --maxauuiters=[50] : PCG max number of iterations for inner solver on Auu in precB. --maxaffiters=[10] : PCG max number of iterations for inner solver on Aff in precB. --maxsppiters=[3] : PCG max number of iterations for inner solver on Spp in precB. --(no)printresult : [printresult] into the hdf file or noprintresult. --type=a/[b]/c/d : type of the preconditioner. --noinitial : prevents the initial condition to be activated. --test1 : performs matrix-vector product 1000 times on all blocks and stops. --repart =[none]/parmetis/rcb/poro : to create partitioning. --uweight =[3]: weight for displacement in graph partitioning. --fweight =[1]: weight for flux in graph partitioning. --pweight =[1]: weight for pressure in graph partitioning. #TO-DO List# - cyclic Force. - recomputepreconditioner. - initial condition as a class rather than being coded directly in main. - new material property path to define. avoid B declaration, calculate. - add incompressibility as an extra option. #Latest Configuration# PorFE is successfuly tested with: - Trilinos 10.10.3 - HDF5 1.8.8 - ParMetis 3.2.0 - ParaView 3.14.1 - gcc 4.4.3 - OpenMPI 1.4.1 #Running PorFE# After a successfully building PorFe, one should invoke the following command: mpirun -np 2 example/pbnew_pfaim.exe --filename=mesh/bench1H_1.mesh.h5 --maxtimeiters=1 --repart=poro #Licensing# PorFE is released under the GNU Public License reported below. PorFE: A poroelastic extension on ParFE Copyright (C) 2012, ETH Zurich, Theoretical Computer Science, Erhan Turan, Peter Arbenz, Cyril Flaig. [https://bitbucket.org/erhanturan/porfe](https://bitbucket.org/erhanturan/porfe) ParFE: A Scalable Micro Finite Element Solver for Bone Modeling Copyright (C) 2006 ETH Zurich, Institute of Computational Science, Uche Mennel, Marzio Sala, and all other ParFE developers; see [http://parfe.sourceforge.net/developers.php](http://parfe.sourceforge.net/developers.php) for the complete list. This library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA