Spaces:
Runtime error
Runtime error
import os | |
os.environ['KMP_DUPLICATE_LIB_OK']='True' | |
import gradio as gr | |
from interface_connection import compute_supercell_a, compute_supercell_b, gpaw_calc_energy | |
with gr.Blocks() as latmatcher: | |
gr.Markdown( | |
"## Craft custom materials that precisely fit your needs wit our MaterialMattcher.\n Not sure from waht materials to start? Simply tell us your desired properties.") | |
with gr.Tabs(): | |
with gr.TabItem(label="file"): | |
with gr.Row(): | |
with gr.Column(scale=1, min_width=400): | |
file_source_a = gr.Dropdown(["c2db.json", ".xyz", "bespoke.json"], | |
label="format", info="Select file format") | |
file_material_a = gr.File(label="material A file", ) | |
with gr.Column(scale=1, min_width=400): | |
file_source_b = gr.Dropdown(["c2db.json", ".xyz", "bespoke.json"], | |
label="format", info="Select file format") | |
file_material_b = gr.File(label="material B file", ) | |
max_angle = gr.Slider(0, 180, label=" max Angle:", step=1) | |
max_strain = gr.Slider(0, 1, label=" max Strain:", step=0.05) | |
msc_button = gr.Button("Compute minimum super cel") | |
file_angle = gr.Text(label="Optimum Angle:") | |
file_strain = gr.Text(label="Best Strain:") | |
file_material_ab = gr.File(label="Result", ) | |
plot_overlap = gr.Plot() | |
msc_button.click(compute_supercell_a, | |
inputs=[file_material_a, file_material_b, file_source_a, file_source_b, max_angle, | |
max_strain], | |
outputs=[file_material_ab, file_angle, file_strain, plot_overlap]) | |
with gr.TabItem(label="data"): | |
with gr.Row(): | |
with gr.Column(scale=1, min_width=400): | |
gr.Markdown( | |
"## Host lattice:") | |
host_lattice = gr.Textbox(label="Host lattice:", lines=4) | |
host_atoms = gr.Textbox(label="Host atoms:", lines=50) | |
with gr.Column(scale=1, min_width=400): | |
gr.Markdown("## Guest lattice:") | |
guest_lattice = gr.Textbox(label="Guest lattice:", lines=4) | |
guest_atoms = gr.Textbox(label="Guest atoms:", lines=50) | |
max_angle = gr.Slider(0, 180, label=" max Angle:", step=1) | |
max_strain = gr.Slider(0, 1, label=" max Strain:", step=0.05) | |
msc_button = gr.Button("Compute minimum super cel") | |
file_angle = gr.Text(label="Optimum Angle:") | |
file_strain = gr.Text(label="Best Strain:") | |
msc_button.click(compute_supercell_b, | |
inputs=[host_lattice, guest_lattice, | |
host_atoms, guest_atoms, | |
max_angle, max_strain], | |
outputs=[file_angle, file_strain]) | |
with gr.Tabs(): | |
with gr.TabItem(label="GPAW calculator"): | |
file_gpaw_format = gr.Dropdown([".xyz", "bespoke.json"], | |
label="format", info="Select file format") | |
file_gpaw= gr.File(label="input file (xyz+celll or bespoke.json )", ) | |
with gr.Row(): | |
convergence_forces=gr.Slider(0.001,0.1, label="convergence forces", step=0.0001) | |
hund=gr.Dropdown(["True", "False"],label="hund", value="True" ) | |
xc=gr.Dropdown(["PBE","LDA"], allow_custom_value=True,label="xc", value="PBE") | |
basis=gr.Dropdown(["dzp", None], allow_custom_value=True,label="basis", value=None) | |
gr.Markdown("Mixer:") | |
with gr.Row(): | |
beta = gr.Slider(0.000, 0.05, label="beta:", step=0.0001,value=0.01 ) | |
method = gr.Dropdown(["sum","difference", None], allow_custom_value=True, label="method:") | |
weight = gr.Dropdown([100,200, None], allow_custom_value=True, label="weight:", value=100) | |
backend= gr.Dropdown(["pulay", None], allow_custom_value=True, label="backend:", value=None) | |
gr.Markdown("Mode:") | |
with gr.Row(): | |
ecut=gr.Slider(100, 1000, label="ecut:", step=10,value=800 ) | |
mode_name=gr.Dropdown(["pw", None], allow_custom_value=True, label="mode_name:", value="pw") | |
maxiter = gr.Slider(100, 2000, label="maxiter:", step=10,value=100 ) | |
kpts=gr.Textbox(label="KPTS:", info="kpts in dictionary list form") | |
gr.Markdown("log info:") | |
log_file_name=gr.Textbox(label="Name of log file",lines=1,value="gpaw_exp.log",) | |
mail=gr.Textbox( label="Mail:", | |
info="email at witch you wish to get the log file", | |
lines=1, | |
value="tomutvoicuandrei@gmail.com",) | |
gpaw_energy_button = gr.Button("Compute energy with GPAW calculator") | |
gpaw_energy=gr.Textbox(label="Potential energy:", info="computed energy:") | |
gpaw_energy_button.click(gpaw_calc_energy, | |
inputs=[file_gpaw_format, | |
file_gpaw, | |
convergence_forces, | |
hund, | |
xc, basis, | |
beta, method, | |
weight,backend, | |
ecut, mode_name, | |
maxiter, kpts, | |
log_file_name, mail], | |
outputs=[gpaw_energy]) | |
latmatcher.launch(share=False) | |