Commit 059eab99 authored by Leon Pyka's avatar Leon Pyka
Browse files

preparing for run with precrack

parent 4e0f6773
Loading
Loading
Loading
Loading
+73.1 KiB

File added.

No diff preview for this file type.

+45 −0
Original line number Diff line number Diff line
import mechnet as mn
import numpy as np
import matplotlib.pyplot as plt
import h5py
import sys
sys.path.append("/home/lpyka/hierarchical_interface")
from lib.push_data import push_data_to, push_ivcat 

def get_iv_data(filepath):
    grouppaths = mn.datman.bundle_all_sub_groups(filepath, ["simulationdata"])
    simdata = mn.datman.get_simdata(filepath, grouppaths[0], readpickled=False)
    simdata_dict = simdata.get_simdata_dict()
    iv_data = np.array(simdata_dict["logged_data"]["iv"])
    return iv_data

def plot_iv_curve(data):
    fig, ax = plt.subplots()
    x = data[:,1]
    y = data[:,0]
    ax.plot(x, y)
    plt.show()

def append_data_to_txt(data, seed):
    with open("ivcat.txt", 'a') as file:
        file.write(f"#seed_{seed}\n")
        for point in data:
            x, y = point 
            file.write(f"{x} {y}\n")

def clear_txt_file():
    with open("ivcat.txt", "w")  as f:
        f.write("")

if __name__ == "__main__":
    offset = input("Offset:  ")
    base_path = f"/FASTTEMP/p7/lpyka/hierarchical_interface/2_offset_hierarchical_struct/offset_{offset}"
    clear_txt_file()
    for seed in range(1000,1050):
        file_name = f"FDB_PARSOL_SIRC-FCVC_SOG-IVCG_HFBA_CPC-NIC_-_{seed}.h5" 
        full_path = base_path + "/" + file_name
        iv_data = get_iv_data(full_path)
        #plot_iv_curve(iv_data)
        append_data_to_txt(iv_data, seed)
    push_ivcat(base_path) 
    print("cutoff prev")
 No newline at end of file
+14 −11
Original line number Diff line number Diff line
@@ -9,9 +9,9 @@ from lib.my_plot_edges import plot_edges_mechnet_network

def get_parametercollection(seed,crack_length, offset):
    par = mn.ParameterCollection()
    nx = 8 # needs to == el**h
    nx = 128 # needs to == el**h
    ny = nx
    nz = 5 + offset # need to be >=  h +2 + o_set (+2 bc bound cond)    
    nz = 9 + offset # need to be >=  h +2 + o_set (+2 bc bound cond)    
    n = nx*ny*nz
    par.set_N(n)
    par.set_Nx(nx)
@@ -46,8 +46,9 @@ def run_a_simulation_fuse(seed, crack_length, offset):
    boundaries = mn.cubic3D.FixedLowerBoundaryDecorator(boundaries)
    boundaries = mn.cubic3D.UniformDisplacedUpperBoundaryDecorator(boundaries)
    
    parametercollection = get_parametercollection(seed, offset)
    parametercollection = get_parametercollection(seed,crack_length=crack_length, offset=offset)
    network = constructor.start_construction(parametercollection)
    bounded_network = boundaries.start_assign_boundaries(network)
    #switch to fuse simulation to make it easier to read the resulting stiffness matrix
    dict_of_simulation_parameters = {"niter":10_000_000, "externalV":1.0, "accuracy":12}
    builder = mn.sim.FuseDirichletBuilder()
@@ -72,7 +73,8 @@ def run_a_simulation_fuse(seed, crack_length, offset):
if __name__=="__main__":
    list_of_seeds =  []
    offset = 5
    crack_length = 5
    crack_lengths = [10, 20, 30, 40, 50,]
    for crack_length in crack_lengths:
        for seed in range(1000, 1010):
            list_of_seeds.append(seed) 
        with Pool(10) as p:
@@ -83,4 +85,5 @@ if __name__=="__main__":
        destination = f"/FASTTEMP/p7/lpyka/hierarchical_interface/5_precracked/a_{crack_length}"
        push_data_to(destination)
        copy_runfile_to(runfile_name=__file__, destination=destination)
        print(f"done with crack_lenght {crack_length}")
    print("\nRun successfull.")