QuantumATK Forum

QuantumATK => General Questions and Answers => Topic started by: esp on August 30, 2012, 22:00

Title: geometry optimization for graphene
Post by: esp on August 30, 2012, 22:00
i am getting segmentation fault when trying to optimize geometry for a device ... is there a basic example of optimizing the geometry of a 2 probe graphene system?
Title: Re: geometry optimization for graphene
Post by: Nordland on August 31, 2012, 06:59
If your are getting a segmentation fault, then is something wrong. If your system is confidential, please send it by email to support.
Title: Re: geometry optimization for graphene
Post by: Anders Blom on August 31, 2012, 16:26
Please note you cannot use Huckel for optimizations.
Title: Re: geometry optimization for graphene
Post by: esp on August 31, 2012, 18:36
I know .. I was able to try in VNL on windows, I got memory error .. then I tried on a very powerful linux machine with tons of memory ... segmentation fault ... I made the script first using VNL, following a tutorial ... my code looks like this:

Code
device_configuration = nlread(<filename>, object_id="cfg")[0]
calculator2 = my_DeviceLCAOCalculator(oList, bias, 0.0*Volt)
device_configuration.setCalculator(calculator2)
device_configuration.update()
device_configuration = OptimizeGeometry(
device_configuration, max_forces=0.05*eV/Ang, max_steps=100, max_step_length=0.5*Ang,
trajectory_filename=None, disable_stress=True, optimizer_method=QuasiNewton())

where my_DeviceLCAOCalculator is:

Code
def my_DeviceLCAOCalculator(oList, leftBias, rightBias):

#----------------------------------------
# Basis Set
#----------------------------------------
basis_set = [
LDABasis.Carbon_SingleZeta,
LDABasis.Boron_SingleZeta,
LDABasis.Hydrogen_SingleZeta,
LDABasis.Nitrogen_SingleZeta,
]


# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------

if oList["SCF"] == 1:

#----------------------------------------
# Electrode Calculators
#----------------------------------------
left_electrode_calculator = LCAOCalculator(
basis_set=basis_set,
numerical_accuracy_parameters=oList["numerical_accuracy_parameters"],
# set these for SCF
iteration_control_parameters=oList["iteration_control_parameters"],
)


right_electrode_calculator = LCAOCalculator(
basis_set=basis_set,
numerical_accuracy_parameters=oList["numerical_accuracy_parameters"],
# set these for SCF
iteration_control_parameters=oList["iteration_control_parameters"],
)

#----------------------------------------
# Device Calculator
#----------------------------------------
calculator = DeviceLCAOCalculator(
basis_set=basis_set,
# set these for SCF
numerical_accuracy_parameters=oList["numerical_accuracy_parameters"],
iteration_control_parameters=oList["iteration_control_parameters"],
electrode_calculators=
[left_electrode_calculator, right_electrode_calculator],
electrode_voltages=( leftBias, rightBias )
)

else:
#----------------------------------------
# Electrode Calculators
#----------------------------------------
left_electrode_calculator = LCAOCalculator(
basis_set=basis_set,
iteration_control_parameters=NonSelfconsistent,
numerical_accuracy_parameters=oList["numerical_accuracy_parameters"],
)

right_electrode_calculator = LCAOCalculator(
basis_set=basis_set,
iteration_control_parameters=NonSelfconsistent,
numerical_accuracy_parameters=oList["numerical_accuracy_parameters"],
)

#----------------------------------------
# Device Calculator
#----------------------------------------
device_algorithm_parameters = DeviceAlgorithmParameters(
initial_density_type=NeutralAtom(electrode_constraint_length=0.0*Ang),
)
calculator = DeviceLCAOCalculator(
basis_set=basis_set,
numerical_accuracy_parameters=oList["numerical_accuracy_parameters"],
iteration_control_parameters=NonSelfconsistent,
device_algorithm_parameters = device_algorithm_parameters,
electrode_calculators= [left_electrode_calculator, right_electrode_calculator],
electrode_voltages=( leftBias, rightBias)
)

return calculator
Title: Re: geometry optimization for graphene
Post by: Anders Blom on September 1, 2012, 19:17
The only unusual setting I see is the electrode_constrain_length, try not setting it to zero. Where is the segfault? Insert some print statements to check when it actually occurs.
Title: Re: geometry optimization for graphene
Post by: esp on September 1, 2012, 19:23
it is on the OptimizeGeometry call
Title: Re: geometry optimization for graphene
Post by: esp on September 1, 2012, 19:32
actually hat portion is not being run because I have it using the self-consistent portion ..
Title: Re: geometry optimization for graphene
Post by: Anders Blom on September 2, 2012, 21:27
This is too complex to troubleshoot without exact script.
Title: Re: geometry optimization for graphene
Post by: esp on September 2, 2012, 22:41
well that is the very basic script, and i think the only thing needed is the nc file, but i will send by email thank you