# I developed an FEM toolkit in Java: FuturEye

 Register Blogs Members List Search Today's Posts Mark Forums Read

 April 29, 2011, 16:23 I developed an FEM toolkit in Java: FuturEye #1 New Member   Yueming Liu Join Date: Apr 2011 Location: USA Posts: 5 Rep Power: 6 FuturEye is a Java based Finite Element Method (FEM) Toolkit, providing concise, natural and easy understanding programming interfaces for users who wish to develop researching and/or engineering FEM algorithms for Forward and/or Inverse Problems. The essential components of FEM are abstracted out, such as nodes, elements, meshes, degrees of freedom and shape function etc. The data and operations of these classes are encapsulated together properly. The classes that different from other existing object-oriented FEM softwares or libraries are function classes. The behavior of the function classes in Futureye is very similar to that in mathematical context. For example algebra of functions, function derivatives and composition of functions. Especially in FEM environment, shape functions, Jacobin of coordinate transforms and numerical integration are all based on the function classes. This feature leads to a more close integration between theory and computer implementation. FuturEye is designed to solve 1D,2D and 3D partial differential equations(PDE) of scalar and/or vector valued unknown functions. The start point of development of this toolkit is solving inverse problems of PDE. In order to solve inverse problems, usually some forward problems must be solved first and many exterior data manipulations should be performed during the solving processes. There are many classes defined for those data operations. However, the data processes are complicated in actual applications, we can not write down all the tools for manipulating data. The design of the basic classes allows operations to all aspect of data structure directly or indirectly in an easily understanding way. This is important for users who need write their own operations or algorithms on the bases of data structure in FuturEye. Some other existing FEM softwares or libraries may over encapsulate the data and operations for such inverse applications. The toolkit can be used for various purposes: Teaching: The feature of close integration between FEM theory and computer implementation of this toolkit helps a student to understand basic FEM concepts, e.g. shape functions, Jacobin and assembly process. Researching: Helps researchers quickly develop and test their models, experiment data and algorithms. e.g. new equations, new finite elements and new solution methods. Engineering: The performance and efficiency may be unsatisfied for real applications, if an finite element class defined in a mathematical manner without optimization. Thanks to the interface conception in Java, we can implement the same interface in many different ways, thus a carefully optimized finite element class can be used in applications with huge number of elements. http://code.google.com/p/futureye/

 October 25, 2011, 22:47 update to version 2.1 #2 New Member   Yueming Liu Join Date: Apr 2011 Location: USA Posts: 5 Rep Power: 6 How to use WeakFormBuilder: http://code.google.com/p/futureye/wi...self_weakforms package edu.uta.futureye.tutorial; import java.util.HashMap; import edu.uta.futureye.algebra.SolverJBLAS; import edu.uta.futureye.algebra.intf.Matrix; import edu.uta.futureye.algebra.intf.Vector; import edu.uta.futureye.core.Element; import edu.uta.futureye.core.Mesh; import edu.uta.futureye.core.NodeType; import edu.uta.futureye.function.AbstractFunction; import edu.uta.futureye.function.Variable; import edu.uta.futureye.function.basic.FC; import edu.uta.futureye.function.basic.FX; import edu.uta.futureye.function.intf.Function; import edu.uta.futureye.function.intf.ScalarShapeFunction; import edu.uta.futureye.io.MeshReader; import edu.uta.futureye.io.MeshWriter; import edu.uta.futureye.lib.assembler.AssemblerScalar; import edu.uta.futureye.lib.element.FEBilinearRectangle; import edu.uta.futureye.lib.element.FEBilinearRectangleRegular; import edu.uta.futureye.lib.element.FELinearTriangle; import edu.uta.futureye.lib.weakform.WeakFormBuilder; import edu.uta.futureye.util.container.ElementList; public class UseWeakFormBuilder { /** *
* Solve  * -k*\Delta{u} = f in \Omega  * u(x,y) = 0, on boundary x=3.0 of \Omega  * u_n + u = 0.01, on other boundary of \Omega  * where  * \Omega = [-3,3]*[-3,3]  * k = 2  * f = -4*(x^2+y^2)+72  * u_n = \frac{\partial{u}}{\partial{n}}  * n: outer unit normal of \Omega  *

 June 20, 2012, 02:25 Update #3 New Member   Yueming Liu Join Date: Apr 2011 Location: USA Posts: 5 Rep Power: 6 FuturEye3.0 http://code.google.com/p/futureye/ Scala Language Version: ScalaFEM0.1

June 20, 2012, 02:48
#4
Senior Member

cfdnewbie
Join Date: Mar 2010
Posts: 551
Rep Power: 11
Quote:
 Originally Posted by nkliuyueming FuturEye3.0 http://code.google.com/p/futureye/ Scala Language Version: ScalaFEM0.1

just a quick remark: In your plot, it should be Lagrange multiplier, not language multiplier

 June 20, 2012, 10:02 thanks #5 New Member   Yueming Liu Join Date: Apr 2011 Location: USA Posts: 5 Rep Power: 6 many thanks!

 July 30, 2012, 02:22 Does anyone interested in developing this project? #6 New Member   Yueming Liu Join Date: Apr 2011 Location: USA Posts: 5 Rep Power: 6 I have a plan to extend and optimize the toolkit, FuturEye, if you are interested in developing FEM code, please contact me

 August 3, 2012, 05:26 #7 Senior Member   Albrecht vBoetticher Join Date: Aug 2010 Location: Zürich, Swizerland Posts: 178 Rep Power: 6 So it is OpenSource (MIT) right? At ETH Zürich we developed once a Software for simulating soil salinisation (SimSalin) in Java including groundwater flow, evapotranspiration and transport, and we came to the point to see that Java is too slow. Since Java is so close related to C++, would it be worth the effort to rewrite part of your code in C++ and call the methods from Java? The discrete element software FARO for Rockfall protection nets for which I implement new Elements has a Java3D Interface and calls C++ methods and is among the fastest codes of its kind.

 Thread Tools Display Modes Linear Mode

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts BB code is On Smilies are On [IMG] code is On HTML code is OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post kenn Main CFD Forum 2 July 18, 2004 18:28 Astrid Main CFD Forum 18 December 15, 2000 01:02 kai Main CFD Forum 39 April 7, 2000 12:48

All times are GMT -4. The time now is 01:33.