예제 #1
0
def test_fc3dnsgs():
    N.setNumericsVerbose(2)
    FCP = N.FrictionContactProblem(3,M,q,mu)
    SO=N.SolverOptions(N.SICONOS_FRICTION_3D_NSGS)
    r=N.frictionContact3D_nsgs(FCP, reactions, velocities, SO)
    assert SO.dparam[1] < 1e-10
    assert not r
예제 #2
0
def test_fc3dnsgs():
    N.setNumericsVerbose(2)
    FCP = N.FrictionContactProblem(3,M,q,mu)
    SO=N.SolverOptions(N.SICONOS_FRICTION_3D_NSGS)
    r=N.fc3d_nsgs(FCP, reactions, velocities, SO)
    assert SO.dparam[1] < 1e-10
    assert not r
예제 #3
0
def test_fc3dfischer():
    N.setNumericsVerbose(2)
    FCP = N.FrictionContactProblem(3,M,q,mu)
    SO=N.SolverOptions(N.SICONOS_FRICTION_3D_LOCALFB)

    r = N.frictionContact3D_localFischerBurmeister(FCP, reactions, velocities, SO)
    assert SO.dparam[1] < 1e-10
    assert not r
예제 #4
0
def test_fc3dlocalac():
    N.setNumericsVerbose(2)
    FCP = N.FrictionContactProblem(3,M,q,mu)
    SO=N.SolverOptions(N.SICONOS_FRICTION_3D_LOCALAC)

    r = N.frictionContact3D_localAlartCurnier(FCP, reactions, velocities, SO)
    assert SO.dparam[1] < 1e-10
    assert not r
예제 #5
0
def test_fc3dfischer():
    N.setNumericsVerbose(2)
    FCP = N.FrictionContactProblem(3,M,q,mu)
    SO=N.SolverOptions(N.SICONOS_FRICTION_3D_NSN_FB)

    r = N.fc3d_nonsmooth_Newton_FischerBurmeister(FCP, reactions, velocities, SO)
    assert SO.dparam[1] < 1e-10
    assert not r
예제 #6
0
def test_fc3dlocalac():
    N.setNumericsVerbose(2)
    FCP = N.FrictionContactProblem(3,M,q,mu)
    SO=N.SolverOptions(N.SICONOS_FRICTION_3D_NSN_AC)

    r = N.fc3d_nonsmooth_Newton_AlartCurnier(FCP, reactions, velocities, SO)
    assert SO.dparam[1] < 1e-10
    assert not r
예제 #7
0
import numpy as np
import siconos.numerics as sn


NC = 1

M = np.eye(3 * NC)

q = np.array([-1.0, 1.0, 3.0])

mu = np.array([0.1])

reactions = np.array([0.0, 0.0, 0.0])
velocities = np.array([0.0, 0.0, 0.0])
sn.setNumericsVerbose(2)
FCP = sn.FrictionContactProblem(3, M, q, mu)


def solve(problem, solver, options):
    """Solve problem for a given solver
    """
    reactions[...] = 0.0
    velocities[...] = 0.0
    r = solver(problem, reactions, velocities, options)
    assert options.dparam[1] < 1e-10
    assert not r


def test_fc3dnsgs():
    """Non-smooth Gauss Seidel, default