Topic: FEniCS  (Letto 1939 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Valentina91

  • python unicellularis
  • *
  • Post: 12
  • Punti reputazione: 0
    • Mostra profilo
FEniCS
« il: Aprile 27, 2015, 16:28 »
Salve a tutti,

innanzitutto spero di essere nella sezione giusta e spero che la mia domanda non sia fuori luogo.
Devo implementare in python un algoritmo per risolvere una PDE con grafico associato, tutto ciò in uno spazio 3D,
quindi 3 variabili più il tempo.
Il modo migliore per fare questo è utilizzare un software open source chiamato FEniCS project, basato appunto sulla
programmazione in Python ma, da quanto ho capito, con dei package in più, in particolare "dolfin".
Il problema è che, dopo averlo installato, non riesco a capire come si usa. Ho provato su Canopy (l'editor che sto usando
per python) e l'errore è:

ImportError: No module named dolfin

mentre se provo da linea di comando, scrivendo

pyton <nomefile>.py

ricevo come errore

Fatal Python error: PyThreadState_Get: no current thread
Abort trap: 6


forse dovrei installare un package esterno su Canopy?
Sapreste aiutarmi? Considerate che ho un Mac con versione 10.10 Yosemite.

Grazie mille,
Valentina

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 2.870
  • Punti reputazione: 9
    • Mostra profilo
Re: FEniCS
« Risposta #1 il: Aprile 27, 2015, 17:13 »
il problema è che dici veramente poco.... che cosa esattamente hai installato, e su quale sistema operativo? da quel che vedo, la pagina di download di fenics promette "everything needed to get started", se installi i package binari...
e poi: che cosa esattamente hai cercato di fare, per cui ottieni quell'import error? stai seguendo un tutorial? stai copiando qualche esempio? posta il codice che dà errore...

Offline Giornale di Sistema

  • python sapiens sapiens
  • ******
  • Post: 3.124
  • Punti reputazione: 4
    • Mostra profilo
    • Distillato di Python
Re: FEniCS
« Risposta #2 il: Aprile 27, 2015, 17:34 »
mentre se provo da linea di comando, scrivendo

pyton <nomefile>.py

ricevo come errore

Fatal Python error: PyThreadState_Get: no current thread
Abort trap: 6


forse dovrei installare un package esterno su Canopy?
Sapreste aiutarmi? Considerate che ho un Mac con versione 10.10 Yosemite.

Fermo restando quanto dice RicPol, e anche se è per la versione precedente del tuo SO, già visto questo?
http://fenicsproject.org/qa/3192/import-dolfin-failed-from-the-binary-package-for-fenics-1-3-0

Offline Valentina91

  • python unicellularis
  • *
  • Post: 12
  • Punti reputazione: 0
    • Mostra profilo
Re: FEniCS
« Risposta #3 il: Aprile 27, 2015, 19:47 »
Scusate, avete ragione. Il fatto è che il problema è proprio di base.
Comunque, qualsiasi codice inizi con

from dolphin import *

mi da quei due problemi che ho già detto.
Cerco di essere più chiara: ho installato FEniCS dal sito, seguendo quanto suggerito per il mio sistema operativo e ho
provato a compilare questo codice (preso da internet, quindi non escludo che ci siano errori, in ogni caso mi da errore alla prima riga
ovvero import dolfin):

from dolfin import *

# Create mesh and define function space
mesh = UnitSquare(6, 4)
#mesh = UnitCube(6, 4, 5)
V = FunctionSpace(mesh, 'Lagrange', 1)

# Define boundary conditions
u0 = Expression('1 + x[0]*x[0] + 2*x[1]*x[1]')

def u0_boundary(x, on_boundary):
    return on_boundary

bc = DirichletBC(V, u0, u0_boundary)

# Define variational problem
u = TrialFunction(V)
v = TestFunction(V)
f = Constant(-6.0)
a = inner(nabla_grad(u), nabla_grad(v))*dx
L = f*v*dx

# Compute solution
u = Function(V)
solve(a == L, u, bc)

# Plot solution and mesh
plot(u)
plot(mesh)

# Dump solution to file in VTK format
file = File('poisson.pvd')
file << u

# Hold plot
interactive()

Offline Giornale di Sistema

  • python sapiens sapiens
  • ******
  • Post: 3.124
  • Punti reputazione: 4
    • Mostra profilo
    • Distillato di Python
Re: FEniCS
« Risposta #4 il: Aprile 27, 2015, 20:00 »
Sii gentile, allo stesso modo in cui hai usato il pulsante per creare il corsivo del tuo codice,
usa il pulsante # e otterrai una formattazione come codice Python, così:
[codice]from dolphin import *[/codice]

ho installato FEniCS dal sito, seguendo quanto suggerito per il mio sistema operativo

Ci sono diverse modalità: quale hai usato? Quale versione? Hai tutti i Requirements richiesti?
L'installazione è andata a buon fine? Da cosa hai capito che è andata a buon fine?
« Ultima modifica: Aprile 27, 2015, 20:08 da Giornale di Sistema »

Offline Valentina91

  • python unicellularis
  • *
  • Post: 12
  • Punti reputazione: 0
    • Mostra profilo
Re: FEniCS
« Risposta #5 il: Aprile 27, 2015, 20:28 »
Pardon, va benissimo! Non vedendo il risultato finale dei tasti non sapevo quale fosse quello per ottenere un formato codice.

Allora io ho seguito quello che c'è scritto in http://fenicsproject.org/download/osx_details.html
scaricando FEniCS 1.5.0 (Mac OS X 10.10 binary).

In effetti, dopo aver digitato su terminale source /Applications/FEniCS.app/Contents/Resources/share/fenics/fenics.conf
si apre (sempre su terminale) la schermata di FEniCS, ma ho notato solo ora, alla fine compare il seguente messaggio:

*** Warning: Current Python is not set to system Python. This may or may
    not work correctly.

e da notare anche che cliccando su FEniCS tra le applicazioni, non riesco ad avviarlo.

Potrei aver sbagliato l'installazione?
Tra i requisiti su Yosemite, avevo letto la necessità di Java 6 e l'ho installato.

Grazie!

Offline Giornale di Sistema

  • python sapiens sapiens
  • ******
  • Post: 3.124
  • Punti reputazione: 4
    • Mostra profilo
    • Distillato di Python
Re: FEniCS
« Risposta #6 il: Aprile 27, 2015, 22:33 »
In effetti, dopo aver digitato su terminale source /Applications/FEniCS.app/Contents/Resources/share/fenics/fenics.conf
si apre (sempre su terminale) la schermata di FEniCS, ma ho notato solo ora, alla fine compare il seguente messaggio:

*** Warning: Current Python is not set to system Python. This may or may
    not work correctly.

e da notare anche che cliccando su FEniCS tra le applicazioni, non riesco ad avviarlo.

Potrei aver sbagliato l'installazione?

Leggiamo insieme le istruzioni per l'installazione:

"Click on the FEniCS icon in the Applications folder. This will bring up a terminal with everything set up to work with FEniCS."
Quando hai cliccato sull'icona del programma si è avviato il terminale? Tutto ok o eventuali messaggi d'errore?

Add the following line to the .profile file in your home directory:
source /Applications/FEniCS.app/Contents/Resources/share/fenics/fenics.conf
This will make FEniCS available whenever you start a new terminal.


Non devi scrivere quella riga nel terminale, la devi aggiungere al file indicato... l'hai fatto? Poi riavvia il terminale.

Tra i requisiti su Yosemite, avevo letto la necessità di Java 6 e l'ho installato.

Non lo vedo fra i requirements, vedo invece l'installazione degli "Xcode Command Line Developer Tools".

Fai comunque attenzione al fatto che Java 6 non viene più aggiornato da Oracle da molto tempo,
e dal 15 aprile 2015 neanche Java 7. Controlla se davvero serve, e se proprio devi, e puoi, installa Java 8.
« Ultima modifica: Aprile 27, 2015, 22:45 da Giornale di Sistema »

Offline Valentina91

  • python unicellularis
  • *
  • Post: 12
  • Punti reputazione: 0
    • Mostra profilo
Re: FEniCS
« Risposta #7 il: Aprile 28, 2015, 08:49 »
Allora, cliccando sull'icona di FEniCS ricevo questo messaggio di errore:

This package will only work with the Mac OS X system provided Python. Using Python installed manually from python.org or using Python from MacPorts, Fink, or similar will not work. Your copy of Python is located at /Users/valentina/Library/Enthought/Canopy_64bit/User.

Quel path al .profile l'ho aggiunto ora, e quello che succede quando apro il terminale è vedere la schermata di FEniCS su terminale.

Per Java 6 hai ragione, mi sono confusa con un altro programma che ho installato di recente.

Citazione
vedo invece l'installazione degli "Xcode Command Line Developer Tools".

ho fatto anche questo come indicato e mi dice che è aggiornato.

Offline Giornale di Sistema

  • python sapiens sapiens
  • ******
  • Post: 3.124
  • Punti reputazione: 4
    • Mostra profilo
    • Distillato di Python
Re: FEniCS
« Risposta #8 il: Aprile 28, 2015, 09:20 »
Allora, cliccando sull'icona di FEniCS ricevo questo messaggio di errore:

This package will only work with the Mac OS X system provided Python. Using Python installed manually from python.org or using Python from MacPorts, Fink, or similar will not work. Your copy of Python is located at /Users/valentina/Library/Enthought/Canopy_64bit/User.

Mi riferivo (come da documentazione che avevo riportato nel messaggio precedente) all'icona d'installazione di FEniCS.
Hai quindi cliccato sull'icona del programma d'installazione, questa è partita, e quando si è conclusa nel terminale è comparso quel messaggio?

Non mi sembra un errore, semmai un avviso: usa il Python di sistema, quello installato manualmente da python.org o con MacPorts e simili non funziona.

Quel path al .profile l'ho aggiunto ora, e quello che succede quando apro il terminale è vedere la schermata di FEniCS su terminale.

Cioè apri il terminale è magicamente compare la schermata di FEniCS? No, immagino dai un qualche comando.
Lo davi anche prima? Ed è cambiato qualcosa da prima ad adesso? Cosa?

E come va adesso se rifai le cose che dicevi all'inizio?

Ho provato su Canopy (l'editor che sto usando per python) e l'errore è:

ImportError: No module named dolfin

mentre se provo da linea di comando, scrivendo

pyton <nomefile>.py

ricevo come errore

Fatal Python error: PyThreadState_Get: no current thread
Abort trap: 6


Sempre gli stessi errori?

E a proposito di errori... hai dato un'occhiata a quanto ti avevo segnalato?

anche se è per la versione precedente del tuo SO, già visto questo?
http://fenicsproject.org/qa/3192/import-dolfin-failed-from-the-binary-package-for-fenics-1-3-0

Infine a proposito di Java:

Per Java 6 hai ragione, mi sono confusa con un altro programma che ho installato di recente.

Non ricordo esattamente come si comporta Apple con gli aggiornamenti di sicurezza di Java, se può e fa da se,
tieni presente che stai comunque viaggiando con una JVM che potenzialmente non ha aggiornamenti di sicurezza da Febbraio 2013.

Potenzialmente una bella porta aperta con tanto di cartello "Entrate pure" per tutti i malintenzionati.

Offline Valentina91

  • python unicellularis
  • *
  • Post: 12
  • Punti reputazione: 0
    • Mostra profilo
Re: FEniCS
« Risposta #9 il: Aprile 28, 2015, 09:43 »
Citazione
Hai quindi cliccato sull'icona del programma d'installazione, questa è partita, e quando si è conclusa nel terminale è comparso quel messaggio?


Esattamente.

Citazione
Cioè apri il terminale è magicamente compare la schermata di FEniCS? No, immagino dai un qualche comando.
Lo davi anche prima? Ed è cambiato qualcosa da prima ad adesso? Cosa?

Se apro ora il terminale, si apre direttamente il terminale con FENiCS, cerco di spiegarmi meglio: in un messaggio precedente ho detto
che scrivendo su terminale source /Applications/FEniCS.app/Contents/Resources/share/fenics/fenics.conf, si apre la schermata di FEniCS (sempre restando su
terminale). Ora in qualsiasi momento apro il terminale, c'è quella schermata di FEniCS (posso usarlo anche come terminale classico).

Apparte questo cambiamento, mi da gli stessi problemi di prima se provo a compilare un codice con dolfin.

Citazione
anche se è per la versione precedente del tuo SO, già visto questo?
http://fenicsproject.org/qa/3192/import-dolfin-failed-from-the-binary-package-for-fenics-1-3-0

Si, ho dato una occhiata ma l'instant clean non ha avuto risultati mentre il punto 1 non sono riuscita ad applicarlo,
ma rileggendo meglio credo di dover indagare proprio su quello, perché i mac di base hanno già una loro versione di python e probabilmente il fatto
di aver installato Canopy sta creando un qualche problema per FEniCS. O sono fuori strada?

Per quanto riguarda Java, provvederò ad aggiornarlo come mi hai suggerito.

Offline Giornale di Sistema

  • python sapiens sapiens
  • ******
  • Post: 3.124
  • Punti reputazione: 4
    • Mostra profilo
    • Distillato di Python
Re: FEniCS
« Risposta #10 il: Aprile 28, 2015, 10:13 »
Se apro ora il terminale, si apre direttamente il terminale con FENiCS, cerco di spiegarmi meglio: in un messaggio precedente ho detto
che scrivendo su terminale source /Applications/FEniCS.app/Contents/Resources/share/fenics/fenics.conf, si apre la schermata di FEniCS (sempre restando su
terminale). Ora in qualsiasi momento apro il terminale, c'è quella schermata di FEniCS (posso usarlo anche come terminale classico).

Arrrgh... leggere documentazione sul tardi non aiuta! Mea culpa, lo dice chiaramente:
aggiungere quella riga a .profile serve appunto a farlo partire ogni volta apri un terminale.

Tira pure via quella riga se non è il comportamento di default che vuoi.

Si, ho dato una occhiata ma l'instant clean non ha avuto risultati mentre il punto 1 non sono riuscita ad applicarlo,
ma rileggendo meglio credo di dover indagare proprio su quello, perché i mac di base hanno già una loro versione di python e probabilmente il fatto
di aver installato Canopy sta creando un qualche problema per FEniCS.

Non so se e come interagiscono i due, Canopy e FEniCS.
Se non hai motivo contrari, puoi provare a disinstallarli entrambi e reinstallare solo il secondo.

O comunque aspettare chi conosce meglio i sistemi Mac per darti una mano più circostanziata.

Ma il comando suggerito
[codice]sudo port select python python27-apple[/codice]
che dice?

Offline Valentina91

  • python unicellularis
  • *
  • Post: 12
  • Punti reputazione: 0
    • Mostra profilo
Re: FEniCS
« Risposta #11 il: Aprile 28, 2015, 10:23 »
Era per quel motivo che non avevo inserito nel .profile la stringa! Comunque figurati, poi la tolgo.

Si infatti avevo pensato di disinstallare Canopy, anche se mi dispiacerebbe nel caso dovesse funzionare..  :D

Il comando

[codice]sudo port select python python27-apple [/codice]

mi dice questo...

sudo: port: command not found

il che tra l'altro è molto strano...
Uffa!

Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Re: FEniCS
« Risposta #12 il: Aprile 28, 2015, 12:13 »
1. butta nel cesso ports (e no, non e' strano che non trovi il comando... a meno che tu non lo abbia installato). Non usarli se non li hai installati. Era un sistema di pacchetti che andava di moda tipo 10 anni fa. Adesso nessuno lo usa ed e' supportato malissimo. Se proprio, usa brew. Ma non credo ti serva per ste due cose.

2. Si, come vi sarete accorti, avete problemi di versioni multiple. Canopy si fa i fatti suoi (ed e' pure molto buono), ma l'altro aggeggio e' un mondo a se. Il target e' gente che non sa usare un computer (e non sa usare Python -- vedi dare come suggerimento "from dolfin import *" e spiegarlo come "il modulo dolphin e' importato"... il ca**o, fa ben altro). Fenics e' un mondo a se (con la scelta per inciso discutibile di appoggiarsi al Python di sistema).

3. In generale si riesce a legare tutto (http://stackoverflow.com/questions/11065082/how-can-i-get-fenics-working-in-ubuntu-12-04-with-epd-python), ma bisogna sapere quello che si fa. E non sono sicuro che sia una buona idea; ci si trova in un setup relativamente raro. Quelli di Canopy non lo supportano (sarebbe stato meglio mandargli una mail chiedendo loro di includere dolphin... a meno che non sia gia' disponibile come pacchetto di Canopy, cosa da controllare). Quelli di Fenics probabilmente nemmeno. E nella rete poche persone hanno lo stesso setup (e possono aiutare con i problemi).

Per cui io direi di lasciare Canopy per i fatti suoi (quello e' Python vero) e Fenics per i fatti suoi. Tra l'altro sto coso non sembra una normale libreria, ma qualcosa che gioca a fare il matlab de noartri. Quindi veramente, se non sai davvero quello che fai, e' meglio semplicemente usare l'affare cosi' come e' e non sbattersi piu' di tanto.

Offline Valentina91

  • python unicellularis
  • *
  • Post: 12
  • Punti reputazione: 0
    • Mostra profilo
Re: FEniCS
« Risposta #13 il: Aprile 28, 2015, 12:40 »
Ma infatti a me va anche bene lasciare le due cose separate, il problema è che non riesco a far funzionare FEniCS correttamente.

Dolfin su Canopy non esiste come pacchetto già disponibile, tuttavia ho scoperto che si può installare come pacchetto esterno, solo
che ho problemi con alcuni comandi.

Citazione
Tra l'altro sto coso non sembra una normale libreria, ma qualcosa che gioca a fare il matlab de noartri.

Lo hai descritto in maniera perfetta!

Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Re: FEniCS
« Risposta #14 il: Aprile 28, 2015, 19:27 »
ma quale e' il problema di sto coso? Cosa intendi con "non riesco a farlo funzionare"?