I want to write a model file in FeynArts and I came across ModelMaker which takes in the Lagrangian as Input and then generates the .mod file. I am trying to make a model file for $\phi^4$ theory as a start. I have a couple of questions as I cannot yet use it:

  1. What is the content of the .mmod file ?
  2. The syntax for writing the Lagrangian:
    a) Fields are specified by Field[...]
    b) How do I write expressions like $\partial_\mu\phi\partial^\mu\phi$ ?

  3. ModelMaker starts with BeginPackage["ModelMaker`", {"FeynArts`", "Global`"}] but there is no File or Folder Called Global in the FeynArts folder.

It would be very helpful if someone who has already written a model posts a demo of the code.


1 Answer 1


AFAIK ModelMaker is not a very commonly used tool in model building. If you insist on using that, you probably should better contact Thomas Hahn directly.

What people usually use in FeynRules. Here is an example on implementing $\phi^4$-model and exporting in to FeynArts:


M$ModelName = "Phi4";

M$Information = {
  Authors      -> {"vsht"},
  Institutions -> {"TUM"},
  Emails       -> {""},
  Date         -> "September 15, 2016"

M$Parameters = {

  lambda == {
    ParameterType    -> External,
    ParameterName    -> \[Lambda],
    Description      -> "self-interaction coupling"

M$ClassesDescription = {

  S[1] == {
      ClassName     -> phi,
      ParticleName    -> "\[Phi]",
      PropagatorLabel -> "\[Phi]",
      SelfConjugate -> True,
      Mass -> mphi


LPhi4 = 1/2 del[phi, mu] del[phi, mu] - 1/(4!) lambda*phi^4 - 1/2 mphi^2*phi^2;

Then you save the following as a notebook to the same directory where you put Phi4.fr and run it to generate the model


enter image description here Finally you copy the created Phi4-directory to the Models directory of FeynArts and can start using the model

$FAVerbose = 0;
top2To2 = CreateTopologies[1, 2 -> 2,ExcludeTopologies->{WFCorrections}];
diags2To2 = InsertFields[top2To2,  {S[1],S[1]}-> {S[1],S[1]},
        InsertionLevel -> {Classes}, Model -> FileNameJoin[{"Phi4","Phi4"}]];
Paint[diags2To2, ColumnsXRows -> {3, 1}, Numbering -> None,SheetHeader->None,ImageSize->{768,256}];

enter image description here

  • $\begingroup$ thank you very much for the code. Actually, i have a windows system so I was trying to use ModelMaker. Anyway I will try to run FeynRule. $\endgroup$ Commented Sep 15, 2016 at 11:49
  • $\begingroup$ ok I got it untarred for windows. Once again thanks $\endgroup$ Commented Sep 15, 2016 at 11:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.