#include <bridging_interface.h>
Inheritance diagram for BridgingInterface:

Public Member Functions | |
| BridgingInterface () | |
| virtual void | Dump (char *prefix)=0 |
| function to dump bridging situation to file | |
| virtual void | Init ()=0 |
| function for initiation | |
| void | SetName (char *nom) |
| set the name of the bridging zone (usefull for dumped files) | |
| virtual void | SetParam (char *key, double value)=0 |
| generic parameters passing interface | |
| virtual void | Stucking ()=0 |
| function for applying the coupling | |
| virtual | ~BridgingInterface () |
Static Public Member Functions | |
| static BridgingInterface * | build (unsigned int bridging_code, DomainAtomicInterface &domA, DomainContinuumInterface &domC, int geomID, unsigned int Dim, Communicator &comm) |
| static build responsible for the build | |
Protected Attributes | |
| char | name [256] |
Definition at line 49 of file bridging_interface.h.
| BridgingInterface::BridgingInterface | ( | ) | [inline] |
Definition at line 52 of file bridging_interface.h.
References name.
00052 { 00053 strcpy(name,"default-name"); 00054 };
| virtual BridgingInterface::~BridgingInterface | ( | ) | [inline, virtual] |
| BridgingInterface * BridgingInterface::build | ( | unsigned int | bridging_code, | |
| DomainAtomicInterface & | domA, | |||
| DomainContinuumInterface & | domC, | |||
| int | geomID, | |||
| unsigned int | Dim, | |||
| Communicator & | comm | |||
| ) | [static] |
static build responsible for the build
Definition at line 54 of file bridging_interface.cpp.
References _BELYTSCHKO, _BELYTSCHKO_FULL, _FORMEFAIBLE, _LAMMPS, _LEAST_SQUARE, _LIBMESH, _MD1D, _MYMETHOD, _STAMP, and FATAL.
Referenced by DomainMultiScale::ParseLine().
00059 { 00060 00061 BridgingInterface * rec=NULL; 00062 00063 00064 unsigned int md_code=_STAMP; 00065 00066 if (dynamic_cast<DomainMD1D*>(&domA)) 00067 md_code = _MD1D; 00068 #ifdef USING_STAMP 00069 else if (dynamic_cast<DomainStamp*>(&domA)) 00070 md_code = _STAMP; 00071 #endif 00072 #ifdef USING_LAMMPS 00073 else if (dynamic_cast<DomainLammps*>(&domA)) 00074 md_code = _LAMMPS; 00075 #endif 00076 else {FATAL("domaine atomique non reconnu " << md_code << " " << &domA);} 00077 00078 unsigned int elast_code; 00079 00080 if (dynamic_cast<DomainLibMesh<1>*>(&domC) || 00081 dynamic_cast<DomainLibMesh<2>*>(&domC) || 00082 dynamic_cast<DomainLibMesh<3>*>(&domC)) 00083 elast_code = _LIBMESH; 00084 else {FATAL("domaine continu non reconnu");} 00085 00086 00087 00088 00089 switch(bridging_code) 00090 { 00091 case _BELYTSCHKO: 00092 00093 if (world_size > 1){ 00094 // FATAL("Le parallele c pas encore pret"); 00095 #ifdef USING_STAMP 00096 if(Dim == 1 && md_code == _STAMP && elast_code == _LIBMESH) 00097 rec = new BelytschkoPar<DomainStamp,DomainLibMesh<1>,1>(domA,domC,geomID,comm); 00098 else if(Dim == 2 && md_code == _STAMP && elast_code == _LIBMESH) 00099 rec = new BelytschkoPar<DomainStamp,DomainLibMesh<2>,2>(domA,domC,geomID,comm); 00100 else if(Dim == 3 && md_code == _STAMP && elast_code == _LIBMESH) 00101 rec = new BelytschkoPar<DomainStamp,DomainLibMesh<3>,3>(domA,domC,geomID,comm); 00102 #endif 00103 #ifdef USING_LAMMPS 00104 if(Dim == 2 && md_code == _LAMMPS && elast_code == _LIBMESH) 00105 rec = new BelytschkoPar<DomainLammps,DomainLibMesh<2>,2>(domA,domC,geomID,comm); 00106 if(Dim == 3 && md_code == _LAMMPS && elast_code == _LIBMESH) 00107 rec = new BelytschkoPar<DomainLammps,DomainLibMesh<3>,3>(domA,domC,geomID,comm); 00108 #endif 00109 break; 00110 00111 } 00112 00113 if(Dim == 1 && md_code == _MD1D && elast_code == _LIBMESH) 00114 rec = new Belytschko<DomainMD1D,DomainLibMesh<1>,1>(domA,domC,geomID); 00115 #ifdef USING_STAMP 00116 else if(Dim == 1 && md_code == _STAMP && elast_code == _LIBMESH) 00117 rec = new Belytschko<DomainStamp,DomainLibMesh<1>,1>(domA,domC,geomID); 00118 else if(Dim == 2 && md_code == _STAMP && elast_code == _LIBMESH) 00119 rec = new Belytschko<DomainStamp,DomainLibMesh<2>,2>(domA,domC,geomID); 00120 else if(Dim == 3 && md_code == _STAMP && elast_code == _LIBMESH) 00121 rec = new Belytschko<DomainStamp,DomainLibMesh<3>,3>(domA,domC,geomID); 00122 #endif 00123 #ifdef USING_LAMMPS 00124 else if(Dim == 2 && md_code == _LAMMPS && elast_code == _LIBMESH) 00125 rec = new Belytschko<DomainLammps,DomainLibMesh<2>,2>(domA,domC,geomID); 00126 else if(Dim == 3 && md_code == _LAMMPS && elast_code == _LIBMESH) 00127 rec = new Belytschko<DomainLammps,DomainLibMesh<3>,3>(domA,domC,geomID); 00128 #endif 00129 break; 00130 case _BELYTSCHKO_FULL: 00131 if(Dim == 1 && md_code == _MD1D && elast_code == _LIBMESH) 00132 rec = new BelytschkoFull<DomainMD1D,DomainLibMesh<1>,1>(domA,domC,geomID); 00133 #ifdef USING_STAMP 00134 else if(Dim == 1 && md_code == _STAMP && elast_code == _LIBMESH) 00135 rec = new BelytschkoFull<DomainStamp,DomainLibMesh<1>,1>(domA,domC,geomID); 00136 else if(Dim == 2 && md_code == _STAMP && elast_code == _LIBMESH) 00137 rec = new BelytschkoFull<DomainStamp,DomainLibMesh<2>,2>(domA,domC,geomID); 00138 #endif 00139 #ifdef USING_LAMMPS 00140 else if(Dim == 2 && md_code == _LAMMPS && elast_code == _LIBMESH) 00141 rec = new BelytschkoFull<DomainLammps,DomainLibMesh<2>,2>(domA,domC,geomID); 00142 #endif 00143 break; 00144 00145 break; 00146 case _LEAST_SQUARE: 00147 #if defined(USING_STAMP) && defined(EXPERIMENTAL_COUPLING) 00148 if (Dim > 1 || md_code != _STAMP){ 00149 FATAL("Erreur : il faut utiliser un autre mode de couplage car celui ci ne fonctionne que en 1D"); 00150 } 00151 rec = new LeastSquare<DomainStamp,DomainLibMesh<1>,1>(domA,domC,geomID,1); 00152 #else 00153 FATAL("pour least square recompiler avec le support stamp"); 00154 #endif 00155 break; 00156 00157 case _FORMEFAIBLE: 00158 #if defined(USING_STAMP) && defined(EXPERIMENTAL_COUPLING) 00159 if (Dim > 1){ 00160 FATAL("Erreur : il faut utiliser un autre mode de couplage car celui ci ne fonctionne que en 1D"); 00161 } 00162 rec = new FormeFaible<DomainStamp,DomainLibMesh<1>,1>(domA,domC,geomID); 00163 #else 00164 FATAL("pour least square recompiler avec le support stamp"); 00165 #endif 00166 break; 00167 00168 case _MYMETHOD: 00169 #if defined(USING_STAMP) && defined(EXPERIMENTAL_COUPLING) 00170 if (Dim > 1){ 00171 FATAL("Erreur : il faut utiliser un autre mode de couplage car celui ci ne fonctionne que en 1D"); 00172 } 00173 rec = new MyMethodFull<DomainStamp,DomainLibMesh<1>,1>(domA,domC,geomID); 00174 #else 00175 FATAL("pour least square recompiler avec le support stamp/lammps"); 00176 #endif 00177 break; 00178 } 00179 00180 if (rec == NULL){ 00181 FATAL("Erreur : la combinaison demandee n'est pas jouable pour le moment"); 00182 } 00183 00184 return rec; 00185 }
| virtual void BridgingInterface::Dump | ( | char * | prefix | ) | [pure virtual] |
function to dump bridging situation to file
Implemented in Bridging< DomainA, DomainC, Dim, Pond >, Bridging< DomainA, DomainC, Dim, 1 >, Bridging< DomainA, DomainC, Dim, LINEAR >, Bridging< DomainA, DomainC, Dim, Pond >, and Bridging< DomainA, DomainC, Dim, CUSTOM >.
| virtual void BridgingInterface::Init | ( | ) | [pure virtual] |
function for initiation
Implemented in Belytschko< DomainA, DomainC, Dim >, BelytschkoFull< DomainA, DomainC, Dim >, BelytschkoPar< DomainA, DomainC, Dim >, FormeFaible< DomainA, DomainC, Dim >, LeastSquare< DomainA, DomainC, Dim >, MyMethodFull< DomainA, DomainC, Dim >, BelytschkoTemplate< DomainA, DomainC, Dim, BridgingPar< DomainA, DomainC, Dim, 1 > >, and BelytschkoTemplate< DomainA, DomainC, Dim, Bridging< DomainA, DomainC, Dim, 1 > >.
Referenced by DomainMultiScale::ParseLine().
| void BridgingInterface::SetName | ( | char * | nom | ) | [inline] |
set the name of the bridging zone (usefull for dumped files)
Definition at line 77 of file bridging_interface.h.
References name.
Referenced by DomainMultiScale::ParseLine().
00077 { 00078 strncpy(name,nom,255); 00079 }
| virtual void BridgingInterface::SetParam | ( | char * | key, | |
| double | value | |||
| ) | [pure virtual] |
generic parameters passing interface
Implemented in Bridging< DomainA, DomainC, Dim, Pond >, Bridging< DomainA, DomainC, Dim, 1 >, Bridging< DomainA, DomainC, Dim, LINEAR >, Bridging< DomainA, DomainC, Dim, Pond >, and Bridging< DomainA, DomainC, Dim, CUSTOM >.
Referenced by DomainMultiScale::ParseLine().
| virtual void BridgingInterface::Stucking | ( | ) | [pure virtual] |
function for applying the coupling
Implemented in Belytschko< DomainA, DomainC, Dim >, BelytschkoFull< DomainA, DomainC, Dim >, BelytschkoPar< DomainA, DomainC, Dim >, FormeFaible< DomainA, DomainC, Dim >, LeastSquare< DomainA, DomainC, Dim >, MyMethodFull< DomainA, DomainC, Dim >, BelytschkoTemplate< DomainA, DomainC, Dim, BridgingPar< DomainA, DomainC, Dim, 1 > >, and BelytschkoTemplate< DomainA, DomainC, Dim, Bridging< DomainA, DomainC, Dim, 1 > >.
char BridgingInterface::name[256] [protected] |
Definition at line 83 of file bridging_interface.h.
Referenced by BridgingInterface(), Bridging< DomainA, DomainC, Dim, Pond >::Dump(), and SetName().
1.5.2