예제 #1
0
        self.runTest("test_C3D8R_schapery12")


    def test_C3D8R_matrixCompression(self):
        """ Simple compression in the matrix direction """
        self.runTest("test_C3D8R_matrixCompression")


    def test_C3D8R_elastic_matrixTension(self):
        """ Simple tension in the matrix direction, no damage """
        self.runTest("test_C3D8R_elastic_matrixTension")


    def test_C3D8R_elastic_fiberTension(self):
        """ Simple tension in the fiber direction, no damage """
        self.runTest("test_C3D8R_elastic_fiberTension")


    def test_C3D8R_elastic_simpleShear12(self):
        """ Simple shear in the 1-2 plane, no damage """
        self.runTest("test_C3D8R_elastic_simpleShear12")


    def test_CPS4R_elementSize(self):
        """ Characteristic element size test, plane stress element """
        self.runTest("test_CPS4R_elementSize")


if __name__ == "__main__":
    av.runTests(relPathToUserSub='../for/CompDam_DGD', double=True)
예제 #2
0
                        os.path.join(os.getcwd(), 'testOutput', propsFile))


class SingleElementTests(av.TestCase):
    """
    Single element models to tests the DGD code base with the VUMAT wrapper
    """

    # Class-wide methods
    @classmethod
    def setUpClass(cls):
        copyMatProps()

    # -----------------------------------------------------------------------------------------
    # Test methods
    def test_C3D8R_UMAT_elastic_matrixTension(self):
        """ Elastic matrix tension, Abaqus/Standard """
        self.runTest("test_C3D8R_UMAT_elastic_matrixTension")

    def test_C3D8R_UMAT_matrixTension(self):
        """ Matrix tension, Abaqus/Standard """
        self.runTest("test_C3D8R_UMAT_matrixTension")

    def test_C3D8R_UMAT_simpleShear12(self):
        """ Simple shear in the 1-2 plane, Abaqus/Standard """
        self.runTest("test_C3D8R_UMAT_simpleShear12")


if __name__ == "__main__":
    av.runTests(relPathToUserSub='../for/UMAT', double=True)
예제 #3
0
class DCB_fatigue(av.TestCase):
    """
    Demonstrates the cohesive fatigue model with double cantilever beam analyses under displacement control
    """

    # Specify meta class
    __metaclass__ = av.ParametricMetaClass

    # Refers to the template input file name
    baseName = "test_DCB_fatigue"

    # disp is the maximum applied displacement during each fatigue cycle
    parameters = {'disp': [1.48, 1.70, 1.92, 2.25]}

    # staticLoad is the maximum reaction force in the initial static loading step
    expectedpy_parameters = {'staticLoad': [1.813, 2.083, 2.352, 2.754]}

    @classmethod
    def setUpClass(cls):
        modifyParametersFile(fatigue_step='2',
                             fatigue_R_ratio='0.1d0',
                             cycles_per_increment_init='1.d-5',
                             cycles_per_increment_mod='0.1d0',
                             fatigue_damage_min_threshold='5.d-5',
                             fatigue_damage_max_threshold='1.d-3')


if __name__ == "__main__":
    av.runTests(relPathToUserSub='../for/CompDam_DGD', double=True)
예제 #4
0

    def test_C3D8R_UMAT_matrixTension(self):
        """ Matrix tension, Abaqus/Standard """
        self.runTest("test_C3D8R_UMAT_matrixTension")


    def test_C3D8R_UMAT_simpleShear12(self):
        """ Simple shear in the 1-2 plane, Abaqus/Standard """
        self.runTest("test_C3D8R_UMAT_simpleShear12")


    def test_C3D8R_UMAT_nonlinearShear12(self):
        """ Nonlinear shear model, loading and unloading in 1-2 plane, Abaqus/Standard """
        self.runTest("test_C3D8R_UMAT_nonlinearShear12")


    def test_C3D8R_UMAT_nonlinearShear13(self):
        """ Nonlinear shear model, loading and unloading in 1-3 plane, Abaqus/Standard """
        self.runTest("test_C3D8R_UMAT_nonlinearShear13")


    def test_C3D8R_UMAT_fiberCompression_FKT(self):
        """ Fiber kinking model, Abaqus/Standard """
        self.runTest("test_C3D8R_UMAT_fiberCompression_FKT")



if __name__ == "__main__":
    av.runTests(relPathToUserSub='../for/UMAT', double=True)
예제 #5
0
import abaverify as av


class SingleElementTests(av.TestCase):
    def test_CPS4R_tension(self):
        self.runTest('test_CPS4R_tension_implicit')

    def test_CPS4R_compression(self):
        self.runTest('test_CPS4R_compression_implicit')


# That's it for setup. Add as many tests as you want!
# See test_runner.py for a few other examples of how test cases can be setup.

# This last line is critical, it calls the abaverify code so that when you run this script
# abaverify is executed. The function takes one optional argument: a function to call to compile
# the subroutine code with abaqus make (not shown here).
if __name__ == "__main__":
    av.runTests(relPathToUserSub='../for/umat')


#class SingleC3D8RElementTests(av.TestCase): #Name of class irrelevant
    #def test_MaxStress_FiberDir(self):      #Name of def irrelevant
        #self.runTest('test_C3D8R_MaxStress_FiberDir')  #Name of test relevant!
    #def test_MaxStress_MatrixDir(self):
        #self.runTest('test_C3D8R_MaxStress_MatrixDir')    

class ParametricTests(av.TestCase):
    """
    Parametric IncrementSizeTest.
    """
    # Class-wide methods
    @classmethod
    def setUpClass(cls):
        copyMatProps()
    # Specify meta class
    __metaclass__ = av.ParametricMetaClass

    # Refers to the template input file name
    baseName = "test_C3D8R_IncrementSizeNASA" 

    # Range of parameters to test; all combinations are tested, but here
    parameters = {'IncrementSize': [0.01,0.02],'U1':[0.05,0.1]}

if __name__ == "__main__":
    
    #av.runTests(relPathToUserSub='../for/vumatWrapper')
    av.runTests(relPathToUserSub='../for')#, double=True)
예제 #7
0
        This input deck checks both forms of the tabular input (list tolerance
        and a single tuple tolerance)
        '''
        self.runTest('test_CPS4R_tension_tabular')

    def test_CPS4R_tension_tabular_with_eval(self):
        '''
        Confirm that the tabular query works with eval statements.
        Eval statements allow you to assign a label_name to the results
        defined by an identifying dict and then use those results in some
        algebraic combination. 
        
        For example, if there was a label = '1' and '2' these could be summed
        using the eval statement d['1'] + d['2'] (where d is an implicitly
        defined dictionary with keys of labels defined inside a ident dict using
        the "av_id" key
        '''
        self.runTest('test_CPS4R_tension_tabular_with_eval')

    def test_CPS4R_compression_with_eval(self):
        self.runTest('test_CPS4R_compression_with_eval')


# That's it for setup. Add as many tests as you want!

# This last line is critical, it calls the abaverify code so that when you run this script
# abaverify is executed. The function takes one optional argument: a function to call to compile
# the subroutine code with abaqus make (not shown here).
if __name__ == "__main__":
    av.runTests(relPathToUserSub='../for/vumat', double=True)
예제 #8
0
import os
import shutil
import abaverify as av


class SingleC3D8RElementTests(av.TestCase):  #Name of class irrelevant
    def test_MaxStress_FiberDir(self):  #Name of def irrelevant
        self.runTest('test_C3D8R_MaxStress_FiberDir')  #Name of test relevant!

    def test_MaxStress_MatrixDir(self):
        self.runTest('test_C3D8R_MaxStress_MatrixDir')


class ParametricTests(av.TestCase):
    """
    Parametric IncrementSizeTest.
    """

    # Specify meta class
    __metaclass__ = av.ParametricMetaClass

    # Refers to the template input file name
    baseName = "test_C3D8R_IncrementSize"

    # Range of parameters to test; all combinations are tested, but here
    parameters = {'IncrementSize': [0.01, 0.02], 'U1': [0.05, 0.1]}


if __name__ == "__main__":
    av.runTests(relPathToUserSub='../for/UMAT_1_3_MaxStress')