24#include "ppf_APP_interface.h"
33#define USER_PFM_PURE_SOLIDIFICATION_API
35#define USER_PFM_PURE_SOLIDIFICATION_API __declspec(dllexport)
40#ifndef EXTEND_PFM_SDK_OUTPUT
41#define EXTEND_PFM_SDK_OUTPUT
244 PFM_SDK_Variables svar;
245 double Random_parameter;
254 map<string, double> homogen_condition;
259 vector<int> dim_order_map;
261 TempCalculator m_thermal_stack;
264 vector<double> plot_time_stack;
268 string input_vtk_path;
270 double Cijkla, Cijklb, Cijklc;
283 double sigma_dimensional;
284 double Width_dimensional;
289 vector<string> comp_names;
293 vector<string> phase_names;
306 vtk_stream_utility::VTK_Stream vtk_stream;
311 vector<PFM_SDK_Input_Condition> sdk_input;
312 vector<PFM_SDK_Output_Data> sdk_output;
317 VectorMesh<double> conc;
318 VectorMesh<double> detadt;
319 VectorMesh<double> lap_eta;
320 VectorMesh<double> dfdeta;
321 VectorMesh<double> etar;
324 vector<double> Gibbs_energy_shift;
333 double dt_before_limited;
336#ifdef ENABLE_PANDAT_PROGRESS_MESSAGE
340 CALCULATION_PROGRESS m_progress_ptr;
343#ifdef ENABLE_PANDAT_RESULT_TABLE
347 vector<pair<string, string>> dbs;
349 string pandat_table_dir;
350 map<string, double> custom_property;
355 P_Result_Dict m_result;
358#ifdef ENABLE_PERFORMANCE_LOG
362 vector<double> sdk_api_call_cnt;
363 double thermodynamic_time;
406 void Delete(I_PFM_APP_Interface* user_app) {
407 if (user_app != NULL)
426 return "USER_PFM_PURE_SOLIDIFICATION";
435 return "A template plugin for solidification simulation";
Creator of this user-defined solidification model.
Definition: user_pfm_pure_solidification.h:391
void Delete(I_PFM_APP_Interface *user_app)
Definition: user_pfm_pure_solidification.h:406
const char * getDescription()
Definition: user_pfm_pure_solidification.h:433
float getVersion()
Definition: user_pfm_pure_solidification.h:416
I_PFM_APP_Interface * Create()
Definition: user_pfm_pure_solidification.h:397
const char * getName()
Definition: user_pfm_pure_solidification.h:424
An example phase-field model of solidification.
Definition: user_pfm_pure_solidification.h:107
bool model_update_field(double dt)
Definition: pfm_solidification_model.cpp:467
void sdk_get_chemical_mobility(double(*chemical_mobility)[PDN_BSZ][PDN_BSZ], double(*atomic_mobility), double(*composition))
Definition: pfm_solidification_property.cpp:44
~user_pfm_solidification()
Definition: pfm_solidification.cpp:410
void model_update_rate(int index)
Definition: pfm_solidification_model.cpp:450
void model_allocate_memory()
Definition: pfm_solidification_model.cpp:12
user_pfm_solidification()
Definition: pfm_solidification.cpp:392
bool sdk_update_prop(string &msg, int ip)
Definition: pfm_solidification_property.cpp:59
void model_update_laplace_operation(VectorMesh< double > &field, VectorMesh< double > &lap_field, int index)
Definition: pfm_solidification_model.cpp:415
void update_phase_equilibrium()
Definition: pfm_solidification_model.cpp:196
void load_arguments(PF_ARGS *m_args, char *msg_char)
Definition: pfm_solidification.cpp:148
bool model_initial_condition(string input_path, string irun="circle")
Definition: pfm_solidification_model.cpp:38
double model_get_driving_force()
Definition: pfm_solidification_model.cpp:376
bool model_update_PFDB_parameters()
This method updates the dynamic parameters of the plugin which can evolve with time.
Definition: pfm_solidification_model.cpp:492
void run_pfm_calculation(char *msg)
Definition: pfm_solidification_calculation.cpp:5
Configuration of user-defined plugin: pure solidification.
#define PDN_BSZ
Definition: pfm_solidification_config.h:65