Bsoft 2.1.4
Bernard's software package
bafm.cpp File Reference

Simulation of AFM experiments. More...

#include "rwimg.h"
#include "utilities.h"
#include "options.h"
#include "timer.h"

Functions

Bimageafm_generate_tip (Vector3< long > size, Vector3< double > sampling, double radius, double angle, double resolution)
 Generates a rounded conical AFM tip. More...
 
Bplotafm_simulate (Bimage *ptip, Bimage *p, double spring, double modulus, double thick)
 Simulates and AFM experiment. More...
 
Bimageafm_force_to_height (Bimage *pf, double force_step)
 Converts an AFM force map into a set of 2D height images at different constant force values. More...
 
int main (int argc, char **argv)
 
int afm_simulate_at_xy (Bimage *ptip, Bimage *p, long ii, float *force, double spring, double modulus, double thick)
 

Variables

int verbose
 
const char * use []
 

Detailed Description

Simulation of AFM experiments.

Author
Bernard Heymann
Date
Created: 19990124
Modified: 20170612

Function Documentation

◆ afm_force_to_height()

Bimage * afm_force_to_height ( Bimage pf,
double  force_step 
)

Converts an AFM force map into a set of 2D height images at different constant force values.

Parameters
*pfforce map.
force_stepforce intervals for height images
Returns
*ph height images.

◆ afm_generate_tip()

Bimage * afm_generate_tip ( Vector3< long >  size,
Vector3< double >  sampling,
double  radius,
double  angle,
double  resolution 
)

Generates a rounded conical AFM tip.

Parameters
sizesize of the tip density
samplingsampling/spacing (in angstrom/pixel)
radiusradius of the tip curvature (in angstrom)
angleangle of the tip side (in radians)
resolutionthe resolution affects the tip surface softness
Returns
Bimage* tip 3D map.
A 2D image of a conical tip is generated, with a 45 degree angle and
a rounding tip with the desired radius and softness.
The 2D image is then converted to a 3D surface using the function 
img_to_surface and returned.  The density of beta-silicon nitride
of 1.925 Da/A3 is used.

◆ afm_simulate()

Bplot * afm_simulate ( Bimage ptip,
Bimage p,
double  spring,
double  modulus,
double  thick 
)

Simulates and AFM experiment.

Parameters
*ptipAFM tip density map - converted to force map.
*pspecimen density map.
springAFM cantilever spring constant (N/m).
modulusbulk modules (N/m2).
thicksample thickness (angstrom).
Returns
Bplot* force curve.
The elastic force on an AFM tip is calculated as:
    F = kt*dz = kb*dV/d
where   kt is the cantilever spring constant, typically 0.01 - 0.1 N/m.
        dz is the tip displacement due to specimen interaction.
        kb is the bulk modulus of the specimen, typically 1e9 N/m2.
        dV is the volume of the specimen displaced by the tip. This
            volume is here approximated as the density overlap volume.
        d is the specimen thickness in angstrom.
The tip is positioned at each point (x,y,z) in the density map and the
overlap volume calculated (i.e., a type of convolution).  This tip
position corresponds to a zero displacement.  The correct tip position
is found by shifting the tip upwards (in the z-direction) until the 
displacement and elastic forces are approximately equal.  The tip 
displacement is refined by interpolation and the force calculated.  
The force map is returned in place of the original density map.
Forces are calculated in piconewton. 
The origin of the tip density is taken as nx/2, ny/2, 0.

◆ afm_simulate_at_xy()

int afm_simulate_at_xy ( Bimage ptip,
Bimage p,
long  ii,
float *  force,
double  spring,
double  modulus,
double  thick 
)

◆ main()

int main ( int  argc,
char **  argv 
)

Variable Documentation

◆ use

const char* use[]

◆ verbose

int verbose
extern