Diagrammi di feynman

  • Creatore
    Topic
  • #105270
    Up
    0
    Down
    ::


    Buongiorno, ragazzi…spero possiate aiutarmi perchè è da ieri che sto cercando di fare dei diagrammi di feynman con i pacchetti feynmf/feynmp, feynmp-auto…ma… non ci riesco.

    Premetto che:
    1) Per questioni di comodità uso .lyx
    2) Pensando che fosse un problema di .lyx, ho provato scrivere il codice direttamente con TeXworks…ma ottenendo gli stessi risultati…
    3) Lyx ha come compilatore Miktex
    4) Poichè sto iniziando a imparare adesso a fare i diagrammi di Feynman con latex, per ora ho trovato qualche codice su internet e ho provato a compilare quelli…ma niente..

    Allora…consideriamo ad esempio questo codice:

    `\documentclass{article}
    \usepackage{feynmp}
    \begin{document}
    \begin{enumerate}
    \item Feynman diagram:
    \begin{fmffile}{fgraph_tau}
    \setlength{\unitlength}{1cm}
    \begin{fmfgraph*}(8,5)
    \fmfleft{i1,i0}
    \fmfright{o1,o0}
    \fmf{fermion,label=$e^+$}{i1,w1}
    \fmf{fermion,label=$\overline\nu_e$}{w1,o1}
    \fmf{boson,label=$W$}{w0,w1}
    \fmf{fermion,label=$\overline\nu_\mu$}{i0,w0}
    \fmf{fermion,label=$\mu^+$}{w0,o0}
    \end{fmfgraph*}
    \end{fmffile}

    \item Smaller Feynman diagram:
    \begin{fmffile}{fgraph_tau2}
    \setlength{\unitlength}{.75cm}\large
    \begin{fmfgraph*}(8,5)
    \fmfleft{i1,i0}
    \fmfright{o1,o0}
    \fmf{fermion,label=$e^+$}{i1,w1}
    \fmf{fermion,label=$\overline\nu_e$}{w1,o1}
    \fmf{boson,label=$W$}{w0,w1}
    \fmf{fermion,label=$\overline\nu_\mu$}{i0,w0}
    \fmf{fermion,label=$\mu^+$}{w0,o0}
    \end{fmfgraph*}
    \end{fmffile}
    \end{enumerate}
    \end{document}
    `

    Quando compilo ecco cosa succede:

    Quindi, come potete notare nel pdf non c’è il diagramma…e lo stesso per altri codici provati che utilizzano feynmp (o anche feynmp-auto)

    Prendiamo ora quest’altro codice:
    `\documentclass{article}
    \usepackage{feynmf}
    \begin{document}
    \begin{fmffile}{simple_labels}
    \begin{fmfgraph*}(40,25)
    \fmfleft{i1,i2}
    \fmfright{o1,o2}
    \fmflabel{$e^-$}{i1}
    \fmflabel{$e^+$}{i2}
    \fmflabel{$e^+,\mu^+$}{o1}
    \fmflabel{$e^-,\mu^-$}{o2}
    \fmflabel{$i\sqrt{\alpha}$}{v1}
    \fmflabel{$i\sqrt{\alpha}$}{v2}
    \fmf{fermion}{i1,v1,i2}
    \fmf{fermion}{o1,v2,o2}
    \fmf{photon,label=$\gamma,,Z^0$}{v1,v2}
    \end{fmfgraph*}
    \end{fmffile}
    \end{document}`

    Quando compilo ecco il risultato del pdf:

    Quindi, come potete notare in questo caso va un po’ meglio perchè almeno il diagramma esce però è troppo piccolo rispetto a come invece si vede nell’esempio trovato e inoltre non escono i nomi delle particelle…ovviamente stessa cosa su altri codici che utilizzano feynmf provati.

    Tutto quello che ho raccontato avviene sia scrivendo il codice in lyx, sia scrivendolo in texworks, sia compilando in pdflatex, sia in dvi…purtroppo ho bisogno di fare dei diagrammi di feynman ma, non so proprio come risolvere…ieri sono stato tutto il giorno a provare e riprovare ma niente…
    Ho anche attivato in miktex i pacchetti mgraphichs, metaobj, e mi sembra anche qualcun’altro…ma niente…non riesco a farli…spero che qualcuno sappia aiutarmi.
    grazie

Visualizzazione 12 filoni di risposte
  • Autore
    Risposte
    • #105271
      Up
      0
      Down
      ::


      Se cambio, nel primo codice, [tt]\usepackage{feynmp}[/tt] in [tt]\usepackage{feynmp-auto}[/tt] e compilo due volte, ottengo questo:

      [attachment=1547]ScreenShot2016-02-23at10.17.23.png[/attachment]

      Ciao
      Enrico

      Attachments:
      You must be logged in to view attached files.
    • #105272
      Up
      0
      Down
      ::


      Ciao e benvenuto/a!

      Ti consiglio un’alternativa, a mio parere molto migliore: da poche settimane è disponibile su CTAN, e anche in TeX Live e MikTeX, un nuovissimo pacchetto per disegnare diagrammi di Feynman, TikZ-Feynman. Ha una sintassi molto semplice e chiara, come feynmf/feynmp permette di utilizzare un posizionamento automatico dei vertici (compilando però con [tt]lualatex[/tt]), ma anche manuale a richiesta. E soprattutto è basato su Ti[tt]k[/tt]Z, che per quanto mi riguarda considero moooolto più semplice rispetto a metafont/metapost. In più feynmf ha un manuale che è tutto meno che chiaro. Per esempio, per il tuo ultimo diagramma devi specificare il valore di [tt]\unitlength[/tt], è una cosa fondamentale citata di sfuggita una sola nel manuale a pagina 9 e mai più menzionata. Puoi ottenere il grafico completo con questo codice
      `\documentclass{article}
      \usepackage{feynmp-auto}
      \begin{document}
      \unitlength = 1mm
      \begin{fmffile}{simple_labels}
      \begin{fmfgraph*}(40,25)
      \fmfleft{i1,i2}
      \fmfright{o1,o2}
      \fmflabel{$e^-$}{i1}
      \fmflabel{$e^+$}{i2}
      \fmflabel{$e^+,\mu^+$}{o1}
      \fmflabel{$e^-,\mu^-$}{o2}
      \fmflabel{$i\sqrt{\alpha}$}{v1}
      \fmflabel{$i\sqrt{\alpha}$}{v2}
      \fmf{fermion}{i1,v1,i2}
      \fmf{fermion}{o1,v2,o2}
      \fmf{photon,label=$\gamma,,Z^0$}{v1,v2}
      \end{fmfgraph*}
      \end{fmffile}
      \end{document}`
      Devi compilare due volte.

      Invece, usando TikZ-Feynman il codice da usare è
      `\documentclass{article}
      \usepackage{tikz}
      \usepackage[compat=1.1.0]{tikz-feynman}
      \begin{document}
      \feynmandiagram [horizontal=b to a] {
      f1 [particle=\({\textup{e}^{+}, \mu^{+}}\)] — [fermion] a — [fermion] f2
      [particle=\({\textup{e}^{-}, \mu^{-}}\)],
      a — [photon,edge label=\({\gamma,Z^{0}}\)] b,
      i1 [particle=\(\textup{e}^{-}\)] — [fermion] b — [fermion] i2
      [particle=\(\textup{e}^{+}\)],
      };
      \end{document}`
      Devi compilare con lualatex. Ti lascio decidere quale dei due codici è più semplice 😉

    • #105273
      Up
      0
      Down
      ::


      Innanzitutto ringrazio entrambi!

      egreg9″ post=105329Se cambio, nel primo codice, [tt]\usepackage{feynmp}[/tt] in [tt]\usepackage{feynmp-auto}[/tt] e compilo due volte, ottengo questo:

      [attachment=1547]ScreenShot2016-02-23at10.17.23.png[/attachment]

      Ciao
      Enrico

      Enrico, quello che hai ottenuto è proprio quello che si dovrebbe ottenere (come avevo visto nell’esempio)…. ma cosa intendi per compilare 2 volte? come si fa? Cioè adesso, leggendo la tua risposta ho provato a compilare e come al solito mi è uscito il pdf senza diagrammi, poi ho ripremuto sul cerchietto verde….ma niente..ancora tutto bianco…!

      Ciao e benvenuto/a!

      Ti consiglio un’alternativa, a mio parere molto migliore: da poche settimane è disponibile su CTAN, e anche in TeX Live e MikTeX, un nuovissimo pacchetto per disegnare diagrammi di Feynman, TikZ-Feynman. Ha una sintassi molto semplice e chiara, come feynmf/feynmp permette di utilizzare un posizionamento automatico dei vertici (compilando però con [tt]lualatex[/tt]), ma anche manuale a richiesta. E soprattutto è basato su Ti[tt]k[/tt]Z, che per quanto mi riguarda considero moooolto più semplice rispetto a metafont/metapost. In più feynmf ha un manuale che è tutto meno che chiaro. Per esempio, per il tuo ultimo diagramma devi specificare il valore di [tt]\unitlength[/tt], è una cosa fondamentale citata di sfuggita una sola nel manuale a pagina 9 e mai più menzionata. Puoi ottenere il grafico completo con questo codice
      `\documentclass{article}
      \usepackage{feynmp-auto}
      \begin{document}
      \unitlength = 1mm
      \begin{fmffile}{simple_labels}
      \begin{fmfgraph*}(40,25)
      \fmfleft{i1,i2}
      \fmfright{o1,o2}
      \fmflabel{$e^-$}{i1}
      \fmflabel{$e^+$}{i2}
      \fmflabel{$e^+,\mu^+$}{o1}
      \fmflabel{$e^-,\mu^-$}{o2}
      \fmflabel{$i\sqrt{\alpha}$}{v1}
      \fmflabel{$i\sqrt{\alpha}$}{v2}
      \fmf{fermion}{i1,v1,i2}
      \fmf{fermion}{o1,v2,o2}
      \fmf{photon,label=$\gamma,,Z^0$}{v1,v2}
      \end{fmfgraph*}
      \end{fmffile}
      \end{document}`
      Devi compilare due volte.

      Invece, usando TikZ-Feynman il codice da usare è
      `\documentclass{article}
      \usepackage{tikz}
      \usepackage[compat=1.1.0]{tikz-feynman}
      \begin{document}
      \feynmandiagram [horizontal=b to a] {
      f1 [particle=\({\textup{e}^{+}, \mu^{+}}\)] — [fermion] a — [fermion] f2
      [particle=\({\textup{e}^{-}, \mu^{-}}\)],
      a — [photon,edge label=\({\gamma,Z^{0}}\)] b,
      i1 [particle=\(\textup{e}^{-}\)] — [fermion] b — [fermion] i2
      [particle=\(\textup{e}^{+}\)],
      };
      \end{document}`
      Stessa domanda…come si compila 2 volte? invece il secondo codice sembra funzionare!!! grazie

      —————————————–
      EDIT Ho anche provato a compilare con TeXstudio che qui ho letto dovrebbe compilare 2 volte automaticamente…ma niente…steso risultato…cioè bianco!

    • #105274
      Up
      0
      Down
      ::


      Ho provato ambo i codici (io ho installato TeXLive 2015 appena aggiornata). Il primo output e’ identico al tuo il secondo no:

      [attachment:1]C:\fakepath\feynman.png[/attachment]

      Ma dubito sia quello che cerchi.

      Non so usare i pacchetti che hai nominato per disegnare diagrammi di Feynman, di recente ho risposto ad un post dove ho utilizzato TikZ per ricrearne uno “manualmente”, potrebbe essere d’aiuto se hai gia’ familiarita’ con il pacchetto TikZ.
      Se non hai controindicazioni a compilare i tuoi documenti con LuaLatex potresti utilizzare`tikz-feynman` che sembra funzionare molto bene. Il pacchetto e’ piuttosto recente e dovrai quasi sicuramente installarlo.
      Riporto un esempio di codice (e output) che ho copiato dalla documentazione al pacchetto:
      `
      \documentclass

      {standalone}
      \usepackage{tikz-feynman}
      \begin{document}
      \feynmandiagram [horizontal=a to b] {
      i1 [particle=\(e^{-}\)] — [fermion, very thick] a — [fermion, opacity=0.2] i2 [particle=\(e^{+}\)],
      a — [red, photon, edge label=\(\gamma\), momentum'={[arrow style=red]\(k\)}] b,
      f1 [particle=\(\mu^{+}\)] — [fermion, opacity=0.2] b — [fermion, very thick] f2 [particle=\(\mu^{-}\)],
      };
      \end{document}
      `


    • #105275
      Up
      0
      Down
      ::

      8ffcc7″ post=105332EDIT Ho anche provato a compilare con TeXstudio che qui ho letto dovrebbe compilare 2 volte automaticamente…ma niente…steso risultato…cioè bianco!

      Normalmente puoi compilare due volte eseguendo letteralmente due volte il comando di compilazione. Se usi un editor di testo che ha un pulsante per compilare, premilo una volta, quando il processo finisce premilo una seconda volta. Non so se TeXstudio compili sempre due volte, però puoi capire quante volte è stato eseguito il compilatore guardando la finestra dei messaggi in basso (troverai due volte “Processo avviato…”), a scanso di equivoci puoi comunque compilare due volte come spiegato prima.

    • #105276
      Up
      0
      Down
      ::


      grazie…il problema è anche premendo 2 volte quel tasto verde per compilare …il risultato non cambia…

    • #105277
      Up
      0
      Down
      ::

      8ffcc7″ post=105337grazie…il problema è anche premendo 2 volte quel tasto verde per compilare …il risultato non cambia…

      Usi MikTeX, vero? Credo che in MikTeX [tt]feymp-auto[/tt] non sia granché utile, il manuale sembra confermare questa ipotesi. Allora dovresti attivare la shell escape in qualche modo (non ho idea di come si faccia in TeXstudio) oppure iniziare a pensare seriamente di usare TikZ-Feynman 🙂

      Edit: per attivare la shell escape in TeXstudio puoi dare un’occhiata qui: http://tex.stackexchange.com/q/99475/31416

    • #105278
      Up
      0
      Down
      ::


      Finalmente ho risolto il problema! ho disinstallato e reinstallato mik tek e ora funziona!!!!

    • #105279
      robitex
      Amministratore del forum
        Up
        0
        Down
        ::

        8ffcc7″ post=105337grazie…il problema è anche premendo 2 volte quel tasto verde per compilare …il risultato non cambia…

        Ciao.
        La doppia compilazione è necessaria perché con il primo passaggio vengono creati e compilati i file ausiliari necessari. Nelle compilazioni successive questi file prendono posto nel tuo documento, in particolare quello con estensione 1 (il numero progressivo di figura creata con il pacchetto).
        Sospetto quindi che ci sia un problema nella compilazione automatica che avviene dietro le quinte e che non siano processati i file per mancanza di permessi (deve essere lanciata una compilazione METAPOST sul file .mp).

        Potrebbe essere la tua distribuzione, MiKTeX per esempio, a mettere i bastoni tra le ruote a feynmp-auto.
        Confermo che con TeX Live 2015 due compilazioni con pdflatex sono sufficienti per creare il diagramma, come ha detto Enrico, senza interventi particolari dell’utente.

        Puoi però compilare a mano il file mp creato.
        Compilalo con il comando:
        `mpost nomefile.mp`

        Controlla i file che vengono prodotti dopo la prima compilazione. Controlla anche il log di questa compilazione dovresti capire cosa non funziona.

        Perdona l’espressione di questa risposta. In questo momento non riesco a produrre frasi in italiano decente. 🙂
        R.

      • #105280
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::



          @Elrond
          , ho esegutio entrambi i tuoi file allegati.
          In effetti quello che esegui con TikZ viene al primo colpo, ma è sbagliato, non replica affatto quello che si ottiene con feinmp


          @8ffcc7
          , Non mi riusulta che TeXstudio abbai un bottone verde epr compilare, mentre mi risulta che ce l’abbia TeXworks. Stiamo parlando della stessa cosa?

          In ogni caso compilare due volte vuol dire eseguire due volte la compilazione: scusa la tautologia, ma la cosa è proprio banale.
          Posso ipotizzare una spiegazione al fatto che questa tautologia a te non funzioni. Se hai configurato il tuo shell editor in modo che dopo ogni compilazione cancelli tutti i file di servizio, è possibile che nemmeno alla terza, quarta, quinta,… compilazione ti esca mai qualcosa.

          Se hai configurato il tuo editor in quel modo ripristina il modo normale in cui tutti i file di servizio restano a disposizione per le compilazioni successive.

          In ogni caso hai un’altra possibilità: compila senza premere bottoni, ma usando la finestra comandi.

          La “finestra comandi”è quella particolare finestra chesi chiama terminal con alcuni sistemi operativi e prompt dei comandi con i sistemi Windows; è una finestra molto comoda per fare le cose che le finestre interattive non riescono a fare.
          Apri perciò una finestra comandi; eventualmente vai a vedere nell’help del tuo particolare sistema operativo come si fa; io te lo so dire per il Mac e genericamante per Windows:

          Mac) apri il Finder, cerca la cartella Applicazioni; in basso dovresti avere una cartella Utilities (non so come sia chiamata in italiano) clicca sulla sua icona; in fondo alla nuova colonna c’è Terminal.app; cliccaci sopra e ti si apre il terminale.

          Windows) clicca su Start/Avvio; nella finestra in basse c’è Esegui e una finestrella dove scrivere il nome del programma da eseguire; scrivici dentro cmd e premi invio; ti si apre il prompt dei comandi

          Linux) non lo so perché ogni Linux ha le sue maniere per farlo.

          Una volta aperta la finestra comandi, usando il comando cd imposta il path per la cartella dove si trova il tuo file da compilare. Poi
          se il tuo file si chiama feynman.tex, scrivi nella finestra comandi il comando pdflatex feymnann ; dopo che saranno usciti un certo numero di messaggi, il tutto si ferma con il segno che la finestra è pronta a ricevere un altro comando; a questo punto premi una volta la freccia in alto; nella finestra ti compare l’ultimo comando che avevi eseguito; premi il tasto invio e parte la seconda compilazione. A questo punto ritorna al Finder se sei su Mac, o apri l’Explorer se sei sei su windows (se non sai coma fare clicca su Avvio e nela finestrina accanto a Esgui scrivici dentro Explorer e premi invio); con finder o con Explore vai a visualizzare la cartella dove riseiede feymnan.te e guarda se c’è feinman.pdf, se c’è cliccaci sopra due volte (doppio click) e ti si dovrebbe aprire il tuo visualizzatore predefinito per i file PDF e lì puoi vedere se i diagrammi di Feynman ti sono venuti.

          Se si, sei a posto e sai che ma mancata doppia compilazione è colpa dell’ediotr; se no, il tuo problema è grave.

          A questo punto devi dirci:

          1) che editor usi e come è impostato
          2) che sistema operativo usi
          3) che installazione del sistema TeXèla tua (MiKTeX? TeXLive? altro?)
          4) Se sei su Linux con una versione in cui i pacchetti si installano con apt-get, i Synaptic o simili, conformi alle specifiche del consorzio Debian, specificalo bene e in particolare dicci che cosa contengono le prime 10 righe del file feinman.log che c’è nelal solita cartella dove hai eseguito la prova che ti ho detto.

          Scusa se sono stato prolisso, ma credo di averti dato gli strumenti necessari per analizzare il tuo problema e forse anche a risolverlo.

        • #105281
          Up
          0
          Down
          ::

          OldClaudio” post=105341 @Elrond, ho esegutio entrambi i tuoi file allegati.
          In effetti quello che esegui con TikZ viene al primo colpo, ma è sbagliato, non replica affatto quello che si ottiene con feinmp

          Compilato con lualatex? Se non l’hai fatto dovrebbe anche essere apparso un avviso del tipo
          `Package tikz-feynman Warning: LuaTeX is required if you wish to have vertices automatically placed.`

          OldClaudio” post=105341 @8ffcc7, Non mi riusulta che TeXstudio abbai un bottone verde epr compilare, mentre mi risulta che ce l’abbia TeXworks. Stiamo parlando della stessa cosa?

          Anche a me il pulsante di compilazione è verde, non è che c’è un colore diverso su OS X?

        • #105282
          Up
          0
          Down
          ::


          Si…il bottone verde è di texwork…stavo provando con entrambi nella speranza di risolvere!

          Comunque avrei un’altra domanda…c’è anche la possibilità di non mettere le frecce nei diagrammi? se si come?

        • #105283
          robitex
          Amministratore del forum
            Up
            0
            Down
            ::

            8ffcc7″ post=105344Si…il bottone verde è di texwork…stavo provando con entrambi nella speranza di risolvere!

            Non è una questione di bottoni, verdi per di più…
            Una domanda: nel log di compilazione trovi questo messaggio?
            `The automatic feature can’t be used
            because ‘shell escape’ is disabled`

            Per le frecce leggi documentazione pacchetto, ma tikz-feynman ha una documentazione migliore.
            R.

        Visualizzazione 12 filoni di risposte
        • Devi essere connesso per rispondere a questo topic.

        Go to top