Mercurial > repos > public > sbplib
view +noname/Discretization.m @ 1347:ac54767ae1fb feature/poroelastic tip
Add interface, not fully compatible.
author | Martin Almquist <martin.almquist@it.uu.se> |
---|---|
date | Tue, 30 Apr 2024 14:58:35 +0200 |
parents | 484b48e95c83 |
children |
line wrap: on
line source
classdef Discretization < handle properties (Abstract) name %Short description description %Longer description order %Order of accuracy % h % scalar desciribing the grid spacing.. (IS THIS THE RIGHT PLACE FOR THIS?) end methods (Abstract) % Prints some info about the discretisation printInfo() % Return the number of DOF n = size(obj) % Returns a timestepper for integrating the discretisation in time % method is a string that states which timestepping method should be used. % The implementation should switch on the string and deliver % the appropriate timestepper. It should also provide a default value. % k is a desired timestep % cfl is a choses cfl constant used to set the timestep. ignored if k is set. ts = getTimestepper(obj, opt) % Calculates a timestep for the discretization and a given timestepping method. % Can take order, differnt types of scaling in h, or other parameters in Discr into % account. opt is a struct that among other things may contain % method -- time stepping method for which to give a timestep. % cfl -- [optioanal] a cfl constant to use to calculate the timetep. % if skipped getTimestep should use a precomputed value. % k -- timestep to use k = getTimestep(obj, opt) % getTimeSnapshot returns a struct which represents the solution in ts at current time. % if ts is empty or 0 a representation of the initial conditions be returned. repr = getTimeSnapshot(obj, ts) % Sets up a plot of the discretisation % update is a function_handle accepting a timestepper that updates the plot to the % state of the timestepper % type allows for different kinds of plots. Some special values are used by the lib. 'animate' and 'plot' for example [update,hand] = setupPlot(obj, type) end end