CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Installation (https://www.cfd-online.com/Forums/openfoam-installation/)
-   -   OpenFOAM on tablet (iPad)?? (https://www.cfd-online.com/Forums/openfoam-installation/106384-openfoam-tablet-ipad.html)

1/153 August 27, 2012 16:26

OpenFOAM on tablet (iPad)??
 
Hmm, just want to know before I go to buy an tablet, is there anyone be able to compile and run openfoam on tablet? Like iPad or android, etc.

Any comments or experience on the current status or developing status of topics like "run an mesh generator on tablet" or "run paraview on tablet" are also welcome. :D

Thanks

-----------
1/153 dw

wyldckat August 27, 2012 16:54

Hi 1/153 dw,

:eek: I love this topic!

Personally I've investigated about the possibility of building OpenFOAM on Android. And yes, I wanted to be the first to launch OpenFOAM on Android.
But there were two main problems:
  1. Setting up a build and test system can be a very big pain. Or at least it was 1 year ago.
  2. Last time I checked, Android uses it's own libc, instead of the GNU one that Linux uses. This translates to something very simple: too many unknowns. Basically, it's a "Schroedinger's cat" situation.


On the other hand, if we're talking about rooted tablet devices, the story is completely different: if you can root Ubuntu or Fedora or any other Linux distribution onto your tablet, then you can run the whole Linux world in it... in theory, that is. And AFAIK, the rooted section is slower when compared to the original OS installed in the tablet.

Similarly, there's always the "KDE tablet" - which has changed names a few times - which should run Linux natively, making it more plausible to run OpenFOAM in one.


But then comes into play the paradigm shift:
  1. Tablets are meant to be used as doorways, not as houses. If you study what the main focus drives these very portable machines is simple: Multi-touch Graphical User Interfaces.
    Period. Nothing more and nothing less.
  2. Not many tablets have multi-core.
  3. AFAIK, they rarely have more than 1GB of RAM.
  4. 64bit ARM processors are still being developed.
Which means that most of the software and tools developed for them is for helping create neat and powerful GUIs, not for developing neat and powerful server applications to run in them.

Although, there are already several game console emulators already available for iPad and Android... but these emulate old consoles, not the latest generation of PS3 or XBox.


Therefore, AFAIK, tablets can nowadays be used with OpenFOAM as follows:
  1. Install a remote terminal application - preferably one that can handle ssh - and then connect to your big desktop workstation and run the commands remotely.
  2. Maybe you can have NFS or Samba client running on your tablet, for direct network file sharing, so you can edit directly on your tablet.
  3. As for visual representation of the results, there's already Kitware's ParaviewWeb and Kiwi viewer:It's not perfect yet, but it's heading in the right direction.
  4. Last but not least, for interacting with Cloud Services, where you can interact with a remote server that you're paying per usage and use solely the web browser with a Java application.

And with this I conclude my knowledge in this area. :rolleyes:

Best regards,
Bruno

1/153 August 27, 2012 17:10

Hmm, it seems to me, from a long term point of view,

Remote application (like ssh) has better potentiality than native applications.

And I vote for remote applications on a high speed wifi or on board network.

andras April 24, 2014 05:34

OpenFOAM on Android
 
Hi Foamers!

I have ported OpenFOAM-2.3.0 to run on (rooted) Android 4. Have a look:
http://rheologic.at/?q=node/54&language=en

Your feedback is highly appreciated. :)

Cheers
Andras

wyldckat April 25, 2014 16:03

Greetings Andras,

Many thanks for sharing!
I know this is a bit troublesome to perform, as I have done some work on a tablet to have a Debian chrooted without explicit root directly on the tablet, by using the adb application from the Android SDK to run as root for setting it up. But I ended up giving up on it (partially on standby), as it was a bit too much trouble for something with such a small screen :(

Although this feels a bit like cheating... you're using a rooted Android installation and you're technically using a Debian installation via jail-root, because the Android kernel is somewhat compatible with a jail rooted installation of Debian (if the right ARM build is used). And since you didn't provide any specific instructions on what modifications had to be done to OpenFOAM's source code, I can only guess that you didn't need to change much, as GCC probably did most of the work.


The reaaaaally big challenge is to port OpenFOAM to build with Android's tools... so that we can then use a normal 500MB-1GB APK package for installing OpenFOAM on any Android device :D

Best regards,
Bruno

andras April 28, 2014 10:21

Bruno,
you are absolutely right...

The biggest modifications were in wmake/rules and a bit of assembly to get OpenMPI working on ARM (I had to remove some memcopy functions). I was also able to reuse the changes in wmake/rules from the previous OpenFOAM build for the Raspberry Pi.

As I understand it a real 'Android'-application is in the hierarchy above the kernel, drivers, binders, flingers and all the hardware specific code. It is also written in Java to be portable across the plethora of mobile handsets, tablets, wearables, ... you-name-it and running as byte-code in Google's Dalvik Virtual Machine.

I don't know if it is possible to glue Java and OpenFOAM's C++ via JNI (or something similar) together in a way to make OpenFOAM run 'natively' on Android. Even if it was possible the question remains: why do I want to spend time on porting _Open_FOAM to a mostly _closed_ OS like Android that changes it's API every 5 minutes or so? ;)


For me it was a fun project and proof of concept. Also I found out that ARM7 cores were faster than I thought. :)


Cheers
Andras

wyldckat April 28, 2014 14:27

Hi Andras,

Yep, you're right! Spending time in a port of OpenFOAM for a pure Android package is way too much of a bother, specially since the outcome would only be to have something that won't handle much more than a million cells and that's assuming that it is a pretty massive tablet/phone.

As far as I've researched into this, the C++ part would require building the GCC-C++ part of GCC or using Clang, and be linked to the Bionic C library.
As for interface, either it would be necessary to bind the installation to a terminal application or have a specific GUI that would request the command line strings, for running the applications.

Best regards,
Bruno

Grimler February 21, 2020 03:54

Hi,

A lot has changed with the android platform since 2014.

It is fairly easy to compile openfoam on android 7 and newer (android 6 lacks some things in it's libc version, but it is possible to get it working here. Android 5 cannot handle a LD_LIBRARY_PATH that's longer than 128 (see https://github.com/termux/termux-app/issues/213)).

I cross-compiled openfoam 1906 for the terminal emulator termux for the fun of it. The necessary patches and build recipe is available here: https://github.com/termux/science-pa...ages/openfoam/.

If you have an android device and want to test it, simply install termux and then run
Code:

apt update && apt install openfoam
from the terminal.

Note that gui applications like parafoam are not available.


All times are GMT -4. The time now is 00:50.