Simply, no. There is no (good, see my comment at the end) way to do this. The best you could do is assign it to another, shorter name:
s = simulation
s.addGroup("teapotarmy")
...
Which isn't too bad, although I'd argue the normal method is the one that is more readable.
As an extra, it's not strictly true that you can't do this. You could assign all of the methods of simulation to the local namespace programatically, however, this would be pretty confusing to follow, and I'd advise against it.
Example:
from contextlib import contextmanager
import inspect
class some_class:
def test(self):
print("test!")
@contextmanager
def map_to_local(inst, locals):
methods = inspect.getmembers(inst, inspect.ismethod)
for name, method in methods:
locals[name] = method
yield
for name, method in methods:
del locals[name]
inst = some_class()
with map_to_local(inst, locals()):
test()
Note this is pretty fragile - you would have to be careful and do stuff like checking you are not overwriting values, checking values haven't been deleted before the context manager exits, etc... It's also pretty unclear what is going on.
tl;dr: Yes, it's possible, no, you shouldn't do it. Your current code is fine and clear.