Skip to content

Commit

Permalink
Merge pull request #672 from MassimoPetracca/add-asd-absorbing-boundary
Browse files Browse the repository at this point in the history
Adding 2D and 3D Absorbing Boundary Elements
  • Loading branch information
fmckenna authored Oct 6, 2021
2 parents 4ff0314 + f63ae97 commit 09bda8b
Show file tree
Hide file tree
Showing 18 changed files with 4,555 additions and 3 deletions.
2 changes: 2 additions & 0 deletions SRC/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -647,6 +647,8 @@ ELE_LIBS = $(FE)/element/Element.o \
$(FE)/element/catenaryCable/CatenaryCable.o \
$(FE)/element/tetrahedron/FourNodeTetrahedron.o \
$(FE)/element/absorbentBoundaries/LysmerTriangle.o \
$(FE)/element/absorbentBoundaries/ASDAbsorbingBoundary2D.o \
$(FE)/element/absorbentBoundaries/ASDAbsorbingBoundary3D.o \
$(FE)/element/UWelements/EmbeddedBeamInterfaceL.o \
$(FE)/element/UWelements/EmbeddedBeamInterfaceP.o \
$(FE)/element/UWelements/EmbeddedEPBeamInterface.o \
Expand Down
9 changes: 9 additions & 0 deletions SRC/actor/objectBroker/FEM_ObjectBrokerAllClasses.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -307,6 +307,9 @@

#include "CEqElement/ASDEmbeddedNodeElement.h"

#include "absorbentBoundaries/ASDAbsorbingBoundary2D.h"
#include "absorbentBoundaries/ASDAbsorbingBoundary3D.h"

#include "LinearCrdTransf2d.h"
#include "LinearCrdTransf3d.h"
#include "PDeltaCrdTransf2d.h"
Expand Down Expand Up @@ -904,6 +907,12 @@ FEM_ObjectBrokerAllClasses::getNewElement(int classTag)
case ELE_TAG_ASDEmbeddedNodeElement:
return new ASDEmbeddedNodeElement();

case ELE_TAG_ASDAbsorbingBoundary2D:
return new ASDAbsorbingBoundary2D();

case ELE_TAG_ASDAbsorbingBoundary3D:
return new ASDAbsorbingBoundary3D();

default:
opserr << "FEM_ObjectBrokerAllClasses::getNewElement - ";
opserr << " - no Element type exists for class tag " ;
Expand Down
2 changes: 2 additions & 0 deletions SRC/classTags.h
Original file line number Diff line number Diff line change
Expand Up @@ -795,6 +795,8 @@
#define ELE_TAG_MasonPan3D 216
#define ELE_TAG_ASDEmbeddedNodeElement 217 // Massimo Petracca (ASDEA)
#define ELE_TAG_InertiaTruss 218 //Added by Xiaodong Ji, Yuhao Cheng, Yue Yu
#define ELE_TAG_ASDAbsorbingBoundary2D 219 // Massimo Petracca (ASDEA)
#define ELE_TAG_ASDAbsorbingBoundary3D 220 // Massimo Petracca (ASDEA)
#define ELE_TAG_ExternalElement 99990


Expand Down
24 changes: 24 additions & 0 deletions SRC/element/TclElementCommands.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,8 @@ extern void *OPS_ASDEmbeddedNodeElement(void); // Massimo Petracca (ASDEA)
extern void *OPS_ShellANDeS(void);
extern void *OPS_FourNodeTetrahedron(void);
extern void *OPS_LysmerTriangle(void);
extern void *OPS_ASDAbsorbingBoundary2D(void); // Massimo Petracca (ASDEA)
extern void *OPS_ASDAbsorbingBoundary3D(void); // Massimo Petracca (ASDEA)
extern void *OPS_TwoNodeLink(void);
extern void *OPS_LinearElasticSpring(void);
extern void *OPS_Inerter(void);
Expand Down Expand Up @@ -1279,6 +1281,28 @@ TclModelBuilderElementCommand(ClientData clientData, Tcl_Interp *interp,
}
}

else if (strcmp(argv[1], "ASDAbsorbingBoundary2D") == 0) {
void *theEle = OPS_ASDAbsorbingBoundary2D();
if (theEle != 0) {
theElement = (Element*)theEle;
} else {
opserr<<"tclelementcommand -- unable to create element of type : "
<<argv[1]<<endln;
return TCL_ERROR;
}
}

else if (strcmp(argv[1], "ASDAbsorbingBoundary3D") == 0) {
void *theEle = OPS_ASDAbsorbingBoundary3D();
if (theEle != 0) {
theElement = (Element*)theEle;
} else {
opserr<<"tclelementcommand -- unable to create element of type : "
<<argv[1]<<endln;
return TCL_ERROR;
}
}

else if (strcmp(argv[1], "FourNodeTetrahedron") == 0) {
void *theEle = OPS_FourNodeTetrahedron();
if (theEle != 0)
Expand Down
Loading

0 comments on commit 09bda8b

Please sign in to comment.