


notes for mc92


***********************************************************************
Installation notes:

To set up for sun:
	cp mcutils.f.sun mcutils.f
	cp makefile.sun makefile
	make

To set up for cray:
	cp mcutils.f.cray mcutils.f
	cp makefile.cray makefile
	make



***********************************************************************
User notes:

Short description of the various namelist options for MC92
(also see mc92.i in the example)

Default values are in parentheses.


"prntcard"
	These options control what is included in the outfile files and what output files are created

	ipinter (0)
		should tables of the embedding function, etc. be printed
	ipatoms (3) (print out positions, etc. ?)
		0, do not print out listing of atom positions
		1, print out only initial positions
		2, print out only final positions
		3, print out both initial and final positions
		if negative, print out a brief list of positions
	ipave (0) (print out average values of the positions, etc.)
		0, do not print out information about averages
		1, print average position and composition of each atom
		2, add standard deviations of positions
	ipitera (1)
		how often should thermo. data be written to the listing file
	printf  name of file for the listing
	rstrtf  name of file for the final positions
	avef	name of file that contains average positions
	conff	name of file that contains periodic listing of current positions

"headcard"
	header	informational string to be placed in listing file 

"funccard"
	Specifies files that contain the listing of the embedding functions, etc.
	funcfl(i) file with data in old (for example, "u3") format
	setfl	file containing data in "set" format

"initcard"
	Specifies how the initial positions are determined.
	initf	file name of file with initial positions
		(format consistent with file produced by rstrtf above)
		if "none", the program will create a lattice
	scale 	three element array with scaling factor to be applied to the 
		x, y and z coordinates of the initial positions
	sort	logical value of whether to sort the atoms by position

"latcard"
	Specifies how the code will generate its own lattice.  These values are 
ignored if initf (see above) is not equal to 'none'.
	lattype	'fcc' or 'bcc' specifies which crystal structure
	avec,bvec,cvec: primitive lattice vectors of the lattice if not one of the
			above
	ncell	number of basis atoms
	rcell	the positions of the basis atoms
	ccell	the average composition of each atom in the basis
		(if not 0 or 1, type chosen with this probability)
	alat	lattice constant to use in generating the lattice
	xrot,yrot,zrot: rotate the crystal to align the x, y and z directions with
			these crystallographic directions
	perub	vector of the upper bounds of the periodic cell
	perlb	same for lower bounds
	aperub,aperlb: same except in units of alat
	xbound	pair of values, only create atoms in this range of x values
	ybound	same for y
	zbound	same for z
	axbnd,aybnd,azbnd: same except in units of alat
	(if bounds not specified in a given direction, fill the entire 
	periodic region)

"defcard"
	Provide a means of changing (creating 'defects' in) the initial positions
The atoms changed can be specified either by their number, or by the position and
type.  Any number of defcards can be included.  The last one must be a blank to 
end the list.
	num	number of atom to be changed
		or a range of atom numbers to change (for example, 1,10)
	oldtype	only change atoms of this initial type
	xmin,xmax: change atoms in this range of x
	ymin,ymax: same for y
	zmin,zmax: same for z
	
	newtype	change type of atom to newtype
	type	obsolete, sort of like newtype
	pos	position vector for the atom
	delpos	vector specifying a displacement of the atoms

"neicard"
	Specifies the method used to find the neighbors of each atom.  This does not
affect the results but can change the speed.  One almost always uses nmeth=2.
	nmeth	1, simple and slow method used for debugging
		2, save a list of the possible neighbors of each atom.
	dradn	the neighbor lists contain all atoms within (dradn+rcut) of each
		atom.  Larger values reduce the number of times the neighbor
		lists must be recomputed. (Computing the neighbor lists is 
		time consuming.), but also add more extraneous atoms to the list
		of posible neighbors which slows the code down.  A value of
		1 angstrom is usually close to a good compromise.  Some 
		experimentation may be in order to determine the value for 
		the optimal speed.

"simcard"
	Specifies the conditions and length of the simulation.  Not all of the 
values are used in a given simulation, it depends on the type of simulation being 
performed.
	nstep	the number of Monte Carlo steps in the simulation.  A step as
		defined here is an individual change
	ioutput	frequency for producing 'output'.  The units are in munber of steps
		An 'output' consists of incrementing the averages with the 
		current values, writing the current positions to conff, and 
		every ipitera time putting a line in the listing file of the 
		current conditions.
	temp	desired external temperature
	press	desired external pressure
	chmpot	chemical potential of each species
	idbrog	whether factors involving the DeBroglie wavelength should be 
		included in the transition probabilities.  This roughly corresponds
		to whether one is using excess chemical potentials or full chemical
		potentials.

"avecard"
	Specifies what type of averaging is to be performed by the code.
	nequil	do not average over the first ioutput*nequil steps.  This provides
		a way to skip over the equilibration period if one knows about
		how long it is.
	nsubav	The code computes averages over different parts of the simulation.
		This parameter determines how many such "subaverages" are computed.
		(default: 10)
	iclcvp	1 calculate the virial pressure during the simulation
		0 do not calculate the virial pressure
		(Note: the virial pressure only makes sense for a bulk system.)
	iclimp	calculate impurity free energies (1 do it, 0 don't)
	imptyp	a vector of length ntypes which specifies what type of impurity
		to change each element into. (use 0 for a vacancy)

"jmpcard"
	This is where the input to the "user-supplied" routines that determine 
what the cahnges are and whether they are accepted.  See The routines in the
file mcuser.f


	
		


	
