00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef PDH_PLAST_FLOW_BC_H
00026 #define PDH_PLAST_FLOW_BC_H
00027
00028 #include <stdio.h>
00029
00030 #ifdef __cplusplus
00031 extern "C"
00032 {
00033 #endif
00034
00035
00036
00037
00038
00039
00040
00041
00042 typedef enum {
00043 BC_PLAST_FLOW_NONE,
00044 BC_PLAST_FLOW_NOSLIP,
00045 BC_PLAST_FLOW_FREE,
00046 BC_PLAST_FLOW_SYMMETRY,
00047 BC_PLAST_FLOW_VELOCITY,
00048 BC_PLAST_FLOW_TRACTION,
00049 BC_PLAST_FLOW_FRICTION
00050 } pdt_forming_mixed_bctype;
00051
00052 typedef enum {
00053 BC_PLAST_FLOW_VEL_ORIENT_GLOB=0,
00054 BC_PLAST_FLOW_VEL_ORIENT_LOC=1
00055 } pdt_forming_mixed_bc_vel_orient;
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068 typedef struct {
00069 int bnum;
00070 double v[3];
00071 int vel_orient;
00072 } pdt_forming_mixed_bc_velocity;
00073
00074 typedef struct {
00075 int bnum;
00076 double t[3];
00077 } pdt_forming_mixed_bc_traction;
00078
00079 typedef struct {
00080 int bnum;
00081 double n[3];
00082
00083 } pdt_forming_mixed_bc_friction;
00084
00085 typedef struct {
00086 double p;
00087 double pin_node_coor[3];
00088 } pdt_forming_mixed_pin_stress;
00089
00090 typedef struct {
00091 double v[3];
00092 double pin_node_coor[3];
00093 } pdt_forming_mixed_pin_velocity;
00094
00095
00096
00097
00098
00099 typedef struct {
00100 int bnum;
00101 pdt_forming_mixed_bctype bc_plast_flow;
00102 int bc_forming_mixed_data_idx;
00103 } pdt_forming_mixed_bc_assignments;
00104
00105
00106 typedef struct {
00107 pdt_forming_mixed_bc_assignments *bc_assignments;
00108 int bc_assignments_count;
00109
00110 pdt_forming_mixed_bc_velocity *bc_velocity;
00111 int bc_velocity_count;
00112
00113 pdt_forming_mixed_bc_traction *bc_traction;
00114 int bc_traction_count;
00115
00116 pdt_forming_mixed_bc_friction *bc_friction;
00117 int bc_friction_count;
00118
00119 pdt_forming_mixed_pin_stress *pin_stress;
00120 int pin_stress_count;
00121
00122 pdt_forming_mixed_pin_velocity *pin_velocity;
00123 int pin_velocity_count;
00124
00125
00126 } pdt_forming_mixed_bc;
00127
00128
00129
00130
00131
00132
00133
00134
00135
00139 int pdr_forming_mixed_bc_read(
00140 char *Work_dir,
00141 char *Filename,
00142 FILE *Interactive_output,
00143 pdt_forming_mixed_bc *Bc_db);
00144
00148 int pdr_forming_mixed_bc_free(pdt_forming_mixed_bc *Bc_db);
00149
00153 int pdr_forming_mixed_get_stress_pins_count(const pdt_forming_mixed_bc *Bc_db);
00154
00155
00159 int pdr_forming_mixed_get_velocity_pins_count(const pdt_forming_mixed_bc *Bc_db);
00160
00161
00165 int pdr_forming_mixed_get_bc_assign_count(const pdt_forming_mixed_bc *Bc_db);
00166
00167
00171 pdt_forming_mixed_pin_stress* pdr_forming_mixed_get_stress_pin(
00172 const pdt_forming_mixed_bc *Bc_db,
00173 int Idx
00174 );
00175
00179 pdt_forming_mixed_pin_velocity* pdr_forming_mixed_get_velocity_pin(
00180 const pdt_forming_mixed_bc *Bc_db,
00181 int Idx
00182 );
00183
00187 pdt_forming_mixed_bctype pdr_forming_mixed_get_bc_type(
00188 const pdt_forming_mixed_bc *Bc_db,
00189 int Bnum
00190 );
00191
00192
00196 void* pdr_forming_mixed_get_bc_data(
00197 const pdt_forming_mixed_bc *Bc_db,
00198 int Bnum
00199 );
00200
00201
00205 int pdr_forming_mixed_update_timedep_bc(
00206 const pdt_forming_mixed_bc *Bc_db,
00207 double Time
00208 );
00209
00210
00211 #ifdef __cplusplus
00212 }
00213 #endif
00214
00215 #endif