Skip to content

Commit

Permalink
Magnetic Load Interface added
Browse files Browse the repository at this point in the history
  • Loading branch information
Ondřej Faltus committed Aug 21, 2024
1 parent 1de692d commit 678c677
Show file tree
Hide file tree
Showing 3 changed files with 126 additions and 1 deletion.
4 changes: 3 additions & 1 deletion src/oofemlib/interfacetype.h
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,9 @@ enum InterfaceType {

QCMaterialExtensionInterfaceType,

MixedPressureMaterialExtensionInterfaceType
MixedPressureMaterialExtensionInterfaceType,

MagneticLoadElementInterfaceType
};
} // end namespace oofem
#endif // interfacetype_h
47 changes: 47 additions & 0 deletions src/sm/Loads/magneticloadinterface.C
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
/*
*
* ##### ##### ###### ###### ### ###
* ## ## ## ## ## ## ## ### ##
* ## ## ## ## #### #### ## # ##
* ## ## ## ## ## ## ## ##
* ## ## ## ## ## ## ## ##
* ##### ##### ## ###### ## ##
*
*
* OOFEM : Object Oriented Finite Element Code
*
* Copyright (C) 1993 - 2013 Borek Patzak
*
*
*
* Czech Technical University, Faculty of Civil Engineering,
* Department of Structural Mechanics, 166 29 Prague, Czech Republic
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/

#include "magneticloadinterface.h"

namespace oofem {
MagneticLoadElementInterface :: MagneticLoadElementInterface(Element *e) : Interface(), element(e)
{
}

MagneticLoadElementInterface :: ~MagneticLoadElementInterface()
{}



} // end namespace oofem
76 changes: 76 additions & 0 deletions src/sm/Loads/magneticloadinterface.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
/*
*
* ##### ##### ###### ###### ### ###
* ## ## ## ## ## ## ## ### ##
* ## ## ## ## #### #### ## # ##
* ## ## ## ## ## ## ## ##
* ## ## ## ## ## ## ## ##
* ##### ##### ## ###### ## ##
*
*
* OOFEM : Object Oriented Finite Element Code
*
* Copyright (C) 1993 - 2013 Borek Patzak
*
*
*
* Czech Technical University, Faculty of Civil Engineering,
* Department of Structural Mechanics, 166 29 Prague, Czech Republic
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/

#pragma once

#include "interface.h"
#include "floatarray.h"
#include "floatmatrix.h"
#include "element.h"
#include "feinterpol.h"
#include "gausspoint.h"


namespace oofem {
class GaussPoint;
class IntegrationRule;
class TimeStep;
/**
* Provides Pressure Follower Load for an element.
* @author Martin Horak
*/
class OOFEM_EXPORT MagneticLoadElementInterface : public Interface
{
public:
Element *element;


/// Constructor.
MagneticLoadElementInterface(Element *e);
virtual ~MagneticLoadElementInterface();

virtual const char *giveClassName() const { return "MagneticLoadElementInterface"; }



// private:
virtual void surfaceEvalNmatrixAt( FloatMatrix &answer, int iSurf, GaussPoint *gp ) = 0;
virtual void surfaceEvaldNdxi( FloatMatrix &answer, int iSurf, GaussPoint *gp ) = 0;
virtual void surfaceEvalNormalAt(FloatArray &answer, FloatArray &dxdksi, FloatArray &dxdeta, int iSurf, GaussPoint *gp, TimeStep *tStep){;}
virtual void surfaceEvalDeformationGradientAt( FloatArray &answer, int isurf, GaussPoint *gp, TimeStep *tStep ) { ; }

virtual IntegrationRule* surfaceGiveIntegrationRule(int order, int iSurf) = 0;

};
} // end namespace oofem

0 comments on commit 678c677

Please sign in to comment.