fedoo.problem.Linear

class Linear(assembly: Assembly, name: str = 'MainProblem')

Class that defines linear problems.

This simple class allow to build a linear problem from an assembly object. The discretized problem is written under the form: A*X = B+D where:

  • A is a square matrix build with the associated assembly object calling

    assembly.get_global_matrix()

  • X is the column vector containing the degrees of freedom (solution after solving)

  • B is a column vector used to set Neumann boundary conditions

  • D is a column vector build with the associated assembly object calling

    assembly.get_global_vector()

Parameters:
  • assembly (Assembly like object) – Assembly that construct the matrix A and column vector D.

  • name (str) – name of the problem.

__init__(assembly: Assembly, name: str = 'MainProblem')

Methods

Linear.GetElasticEnergy()

returns : sum (0.5 * U.transposed * K * U)

Linear.GetNodalElasticEnergy()

returns : 0.5 * K * U .

Linear.add_output(filename, assemblyname, ...)

Linear.apply_boundary_conditions([t_fact, ...])

Linear.change_assembly(assembling[, update])

Modify the assembly associated to the problem and update the problem (see Assembly.update for more information)

Linear.get_A()

Linear.get_B()

Linear.get_D()

Linear.get_X()

Linear.get_active()

Return the active Problem.

Linear.get_all()

Return the list of all problems.

Linear.get_disp([name])

Return the displacement components.

Linear.get_dof_solution([name])

Linear.get_ext_forces([name, include_mpc])

Return the nodal Forces in global coordinates system.

Linear.get_results(assemb, output_list[, ...])

Linear.get_rot([name])

Return the rotation components.

Linear.init_bc_start_value()

Linear.make_active()

Define the problem instance as the active Problem.

Linear.reset()

Linear.save_results([iterOutput])

Linear.set_A(A)

Linear.set_B(B)

Linear.set_D(D)

Linear.set_active(name)

Define the active Problem from its name.

Linear.set_dof_solution(name, value)

Linear.set_solver([solver])

Define the solver for the linear system resolution.

Linear.solve(**kargs)

Linear.update([dtime, compute])

Assemble the matrix including the following modification:

Linear.update_boundary_conditions()

Linear.active

Linear.assembly

Linear.n_dof

Linear.name

Return the name of the Problem.

Linear.results

Linear.solver

Return the current solver used for the problem.

Linear.space

Return the ModelingSpace associated to the Problem if defined.

Linear.bc

Boundary conditions defined on the problem.