Source code for phasefieldx.Element.Phase_Field.Input
"""
Input: Phase-Field
==================
"""
[docs]
class Input:
"""
Class for managing phase-field simulation parameters.
This class encapsulates parameters related to phase-field fracture simulations
and provides methods for setting, logging, and exporting these parameters.
Attributes
----------
l : float
Length scale parameter.
save_solution_xdmf : bool
Indicates whether to save solutions in XDMF format.
save_solution_vtu : bool
Indicates whether to save solutions in VTU format.
results_folder_name : str
Name of the folder to save simulation results.
Methods
-------
__init__(l=1.0, save_solution_xdmf=False, save_solution_vtu=True, results_folder_name="results")
Initialize the Input class with default parameters.
save_log_info(logger)
Log the simulation parameters using the provided logger.
save_parameters_to_csv(filename="parameters.input")
Save the simulation parameters to a two-column text file (tab-separated) for easy loading with pandas.
__str__()
Return a string representation of the simulation parameters.
"""
def __init__(self,
l=1.0,
save_solution_xdmf=False,
save_solution_vtu=True,
results_folder_name="results"):
"""
Initialize the Input class with default parameters.
"""
self.l = l
self.save_solution_xdmf = save_solution_xdmf
self.save_solution_vtu = save_solution_vtu
self.results_folder_name = results_folder_name
[docs]
def save_log_info(self, logger):
"""
Log the simulation parameters using the provided logger.
Parameters:
logger: An instance of a logging object.
"""
logger.info("Parameters:")
logger.info(f" l: {self.l}")
[docs]
def save_parameters_to_csv(self, filename="parameters.input"):
"""
Save the simulation parameters to a CSV file for easy loading with pandas.
Parameters:
filename (str): The name of the CSV file to save the parameters.
"""
params = {
"l": self.l,
"save_solution_xdmf": self.save_solution_xdmf,
"save_solution_vtu": self.save_solution_vtu,
"results_folder_name": self.results_folder_name
}
with open(filename, "w") as f:
for key, value in params.items():
f.write(f"{key}\t{value}\n")
def __str__(self):
"""
Return a string representation of the simulation parameters.
Returns:
str: A formatted string containing simulation parameter information.
"""
parameter_info = [
"Parameters:",
f" l: {self.l}",
]
return "\n".join(parameter_info)