User Tools


"Membrane" border type

Membranes are declared by setting the border type to “membrane”. They consist of single-sided separate mesh surfaces which do not belong to a closed 3D object. In that sense, they are virtual surfaces that can be used for sampling the energy distribution function in free-space. Membranes can act as particle sources and can perform all plain reactions. However surface chemistry reactions are excluded for membranes, since virtual surfaces are not supposed to have a deposition material coverage. There are further possible functions for a membrane, which are listed in the following.

For simulations with many species and a membrane which should be fully transparent for all of these, you can use the following command:

reactions: { 
  Transparent_Membrane;
};

Internally a loop over all used species is applied for which and the transmission is set to 1.

  • Fully transparent membrane (for sampling purposes, for more details please refer to energy and angular sampling):
      Border Sensor = {
        icodec =   2;                       # Codec number from meshfile
        type = "membrane";                      
        T = PAR.T0;                         # Wall temperature
        reactions: {
          add_transmission("Ar", 1.0, [], []);
          add_transmission("O2", 1.0, [], []);
          add_energy_histogram("Ar", 0, 1, 1000);
          add_angular_histogram("O2", 9, 36,     1, 0, 0);
        };
      };
  • Membrane acting as reflector
      Border Barrier = {
        icodec =   2;                       # Codec number from meshfile
        type = "membrane";                      
        T = PAR.T0;                         # Wall temperature
        reactions: {
          # The default behaviour of membranes is 100% diffuse reflection for all species
        };
      };
  • Transparent membrane which transforms 30% of NH3 into NH3ex
    Important note: For membranes it is implicitely assumed that the sum of reaction products masses is the same as the mass of the incoming species. Thus, for maintaining momentum conservation the reaction products are inserted with the same velocity vector as the incoming gas particle. This behaviour is unlike a regular “wall” where the reaction products get a Maxwellian velocity distribution by default.
      Border Activator = {
        icodec =   2;                       # Codec number from meshfile
        type = "membrane";                      
        T = PAR.T0;                         # Wall temperature
        reactions: {
          # Provide 100% transmission for all other species:
          add_transmission("SiH4",  1, [], []);
          add_transmission("NH3ex", 1, [], []);
          add_transmission("H2",    1, [], []);
     
          # 30% probability for conversion of NH3 to NH3ex
          add_plain_reaction("NH3", 1, 0.3, ["NH3ex"], [1]);
     
          # 100% transmission for the non-converted NH3
          add_transmission("NH3", 1);
        };
      };
  • Membrane acting as barrier and absorbing Zn with 100% sticking coefficient
      Border Barrier = {
        icodec =   2;                       # Codec number from meshfile
        type = "membrane";                      
        T = PAR.T0;                         # Wall temperature
        reactions: {
          add_absorption("Zn", 1);
        };
      };

Two membranes should be separated by a small value, so that the distance between them is not zero. Which means that you can not use the same Line Loop from GMSH only with different signs for two membranes aiming to sample particles from both directions. For the distance a millionth of the cell width should be sufficient.