22from  conda_subprocess  import  check_output 
33import  shutil 
44
5- source_directory  =  os .path .join (os .path .dirname (os .path .abspath (__file__ )), "source" )
65
7- 
8- def  generate_mesh (domain_size : float  =  2.0 ) ->  str :
6+ def  generate_mesh (domain_size : float , source_directory : str ) ->  str :
97    stage_name  =  "preprocessing" 
108    gmsh_output_file_name  =  "square.msh" 
119    source_file_name  = "unit_square.geo" 
1210    os .makedirs (stage_name , exist_ok = True )
13-     _copy_file_from_source (stage_name = stage_name , source_file_name = source_file_name )
11+     _copy_file_from_source (stage_name = stage_name , source_file_name = source_file_name ,  source_directory = source_directory )
1412    _  =  check_output (
1513        [
1614            "gmsh" , "-2" , "-setnumber" , "domain_size" , str (domain_size ),
@@ -40,13 +38,13 @@ def convert_to_xdmf(gmsh_output_file : str) -> dict:
4038    }
4139
4240
43- def  poisson (meshio_output_xdmf : str , meshio_output_h5 : str ) ->  dict :
41+ def  poisson (meshio_output_xdmf : str , meshio_output_h5 : str ,  source_directory :  str ) ->  dict :
4442    stage_name  =  "processing" 
4543    poisson_output_pvd_file_name  =  "poisson.pvd" 
4644    poisson_output_numdofs_file_name  =  "numdofs.txt" 
4745    source_file_name  =  "poisson.py" 
4846    os .makedirs (stage_name , exist_ok = True )
49-     _copy_file_from_source (stage_name = stage_name , source_file_name = source_file_name )
47+     _copy_file_from_source (stage_name = stage_name , source_file_name = source_file_name ,  source_directory = source_directory )
5048    _copy_file (stage_name = stage_name , source_file = meshio_output_xdmf )
5149    _copy_file (stage_name = stage_name , source_file = meshio_output_h5 )
5250    _  =  check_output (
@@ -65,12 +63,12 @@ def poisson(meshio_output_xdmf: str, meshio_output_h5: str) -> dict:
6563    }
6664
6765
68- def  plot_over_line (poisson_output_pvd_file : str , poisson_output_vtu_file : str ) ->  str :
66+ def  plot_over_line (poisson_output_pvd_file : str , poisson_output_vtu_file : str ,  source_directory :  str ) ->  str :
6967    stage_name  =  "postprocessing" 
7068    pvbatch_output_file_name  =  "plotoverline.csv" 
7169    source_file_name  =  "postprocessing.py" 
7270    os .makedirs (stage_name , exist_ok = True )
73-     _copy_file_from_source (stage_name = stage_name , source_file_name = source_file_name )
71+     _copy_file_from_source (stage_name = stage_name , source_file_name = source_file_name ,  source_directory = source_directory )
7472    _copy_file (stage_name = stage_name , source_file = poisson_output_pvd_file )
7573    _copy_file (stage_name = stage_name , source_file = poisson_output_vtu_file )
7674    _  =  check_output (
@@ -82,14 +80,14 @@ def plot_over_line(poisson_output_pvd_file: str, poisson_output_vtu_file: str) -
8280    return  os .path .abspath (os .path .join ("postprocessing" , pvbatch_output_file_name ))
8381
8482
85- def  substitute_macros (pvbatch_output_file : str , ndofs : int , domain_size : float   =   2.0 ) ->  str :
83+ def  substitute_macros (pvbatch_output_file : str , ndofs : int , domain_size : float ,  source_directory :  str ) ->  str :
8684    stage_name  =  "postprocessing" 
8785    source_file_name  =  "prepare_paper_macros.py" 
8886    template_file_name  =  "macros.tex.template" 
8987    macros_output_file_name  =  "macros.tex" 
9088    os .makedirs (stage_name , exist_ok = True )
91-     _copy_file_from_source (stage_name = stage_name , source_file_name = source_file_name )
92-     _copy_file_from_source (stage_name = stage_name , source_file_name = template_file_name )
89+     _copy_file_from_source (stage_name = stage_name , source_file_name = source_file_name ,  source_directory = source_directory )
90+     _copy_file_from_source (stage_name = stage_name , source_file_name = template_file_name ,  source_directory = source_directory )
9391    _copy_file (stage_name = stage_name , source_file = pvbatch_output_file )
9492    _  =  check_output (
9593        [
@@ -104,12 +102,12 @@ def substitute_macros(pvbatch_output_file: str, ndofs: int, domain_size: float =
104102    return  os .path .abspath (os .path .join (stage_name , macros_output_file_name ))
105103
106104
107- def  compile_paper (macros_tex : str , plot_file : str ) ->  str :
105+ def  compile_paper (macros_tex : str , plot_file : str ,  source_directory :  str ) ->  str :
108106    stage_name  =  "postprocessing" 
109107    paper_output  =  "paper.pdf" 
110108    source_file_name  =  "paper.tex" 
111109    os .makedirs (stage_name , exist_ok = True )
112-     _copy_file_from_source (stage_name = stage_name , source_file_name = source_file_name )
110+     _copy_file_from_source (stage_name = stage_name , source_file_name = source_file_name ,  source_directory = source_directory )
113111    _copy_file (stage_name = stage_name , source_file = macros_tex )
114112    _copy_file (stage_name = stage_name , source_file = plot_file )
115113    _  =  check_output (
@@ -126,12 +124,12 @@ def _poisson_collect_output(numdofs_file: str) -> int:
126124        return  int (f .read ())
127125
128126
129- def  _copy_file (stage_name , source_file ):
127+ def  _copy_file (stage_name :  str , source_file :  str ):
130128    input_file  =  os .path .join (os .path .abspath (stage_name ), os .path .basename (source_file ))
131129    if  input_file  !=  source_file :
132130        shutil .copyfile (source_file , input_file )
133131
134132
135- def  _copy_file_from_source (stage_name , source_file_name ):
133+ def  _copy_file_from_source (stage_name :  str , source_file_name :  str ,  source_directory :  str ):
136134    source_file  =  os .path .join (source_directory , source_file_name )
137135    shutil .copyfile (source_file , os .path .join (stage_name , source_file_name ))
0 commit comments