Message: Re: Sputtering Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

Feedback Re: Sputtering 

Forum: Event and Track Management
Re: None Sputtering (Constantin Csato)
Date: 22 May, 2012
From: Gumplinger Peter <Gumplinger Peter>

Dear Constantin,

> Each recoil atom with a
> kinetic energy component which is parallel to the surface normal vector
> and greater than the surface binding energy, will lead to sputtered atom
> (atom will leave the solid body).
> I&#65533;m trying to run this simulation task by writing a UserSteppingAction
> class. Via the class G4steppoint I can get the kinetic energy of the
> atom, but I don&#65533;t know how to get surface normal vectors of my geometry
> at the surface boundary?

For simulation steps that end at a volume boundary, you can 'recycle' code that is found in G4OpBoundaryProcess:

G4StepPoint* pPostStepPoint = aStep.GetPostStepPoint();

if (pPostStepPoint->GetStepStatus() == fGeomBoundary){

G4ThreeVector theGlobalPoint = pPostStepPoint->GetPosition();

G4Navigator* theNavigator =



G4bool valid;

G4ThreeVector theLocalNormal = theNavigator->GetLocalExitNormal(&valid);

if (valid) {

G4ThreeVector theGlobalNormal = theNavigator->GetLocalToGlobalTransform().


const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle();

G4ThreeVector OldMomentum = aParticle->GetMomentumDirection();

if (OldMomentum * theGlobalNormal > 0.0) {

..... the momentum and normal should both point out of the surface ....

(I am pretty sure of this, but you should definitely confirm this convention for the surface normal at a volume boundary as is returned with theNavigator).

Hope this helps, Peter

 Add Message Add Message
to: "Re: Sputtering"

 Subscribe Subscribe

This site runs SLAC HyperNews version 1.11-slac-98, derived from the original HyperNews

[ Geant 4 Home | Geant 4 HyperNews | Search | Request New Forum | Feedback ]