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.
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); }; };
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 }; };
“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); }; };
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.